mirror of https://github.com/apache/archiva.git
Adding git site build changes for archiva-docs
This commit is contained in:
parent
d8b6d1ce00
commit
d29ac49e80
|
@ -0,0 +1,135 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
# Author: Martin Stockhammer <martin_s@apache.org>
|
||||
# Date: 2018-11-03
|
||||
#
|
||||
# This script runs a sparse git clone of a remote repository and
|
||||
# initializes the git configuration.
|
||||
#
|
||||
# It is mainly used for site content creation, because the main archiva-web-content repository
|
||||
# is rather large and we don't want to checkout the complete data.
|
||||
#
|
||||
|
||||
SITE_DIR=".site-content"
|
||||
GIT_REMOTE=""
|
||||
|
||||
GIT_USER=$(git config user.name)
|
||||
GIT_EMAIL=$(git config user.email)
|
||||
|
||||
GIT_PATTERN_FILE="git-sparse-checkout-pattern"
|
||||
GIT_PATTERN_DEST=".git/info/sparse-checkout"
|
||||
|
||||
MY_PWD=$(pwd)
|
||||
|
||||
CLONE=1
|
||||
FORCE=1
|
||||
MODULE_DIR="${MY_PWD}"
|
||||
PATTERN=""
|
||||
while [ ! -z "$1" ]; do
|
||||
case "$1" in
|
||||
-f)
|
||||
FORCE=0
|
||||
shift
|
||||
;;
|
||||
-d)
|
||||
shift
|
||||
SITE_DIR="$1"
|
||||
shift
|
||||
;;
|
||||
-p)
|
||||
shift
|
||||
if [ -z "${PATTERN}" ]; then
|
||||
PATTERN="${1}"
|
||||
else
|
||||
PATTERN="${PATTERN}\n${1}"
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
-m)
|
||||
shift
|
||||
MODULE_DIR="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
GIT_REMOTE="$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
print_usage() {
|
||||
echo "checkoutRepo [-m MODULE_DIR] [-d SITE_DIR] [-f] GIT_URL"
|
||||
echo " -m: The module directory where the pattern file can be found and the site dir will be created."
|
||||
echo " -d SITE_DIR: Use the given directory for checkout"
|
||||
echo " -f: Force clone, even if directory exists"
|
||||
}
|
||||
|
||||
if [ ! -f "${MODULE_DIR}/pom.xml" ]; then
|
||||
echo "Looks like the working directory is not a valid dir. No pom.xml found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "${MODULE_DIR}" || { echo "Could not change to module directory ${MODULE_DIR}"; exit 1; }
|
||||
|
||||
if [ -z "$GIT_REMOTE" ]; then
|
||||
print_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "${GIT_REMOTE:0:8}" == "scm:git:" ]; then
|
||||
GIT_REMOTE="${GIT_REMOTE:8}"
|
||||
fi
|
||||
|
||||
|
||||
if [ -d "${SITE_DIR}" ]; then
|
||||
if [ ! -d "${SITE_DIR}/.git" ]; then
|
||||
echo "Directory ${SITE_DIR} exist already, but is not a git clone. Aborting."
|
||||
exit 1
|
||||
elif [ "$FORCE" -eq 0 ]; then
|
||||
CLONE=0
|
||||
fi
|
||||
else
|
||||
CLONE=0
|
||||
fi
|
||||
|
||||
if [ $CLONE -eq 0 ]; then
|
||||
git clone "${GIT_REMOTE}" "${SITE_DIR}" --no-checkout
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Git clone failed"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${SITE_DIR}" || { echo "Could not change to site dir ${SITE_DIR}"; exit 1; }
|
||||
|
||||
git config core.sparsecheckout true
|
||||
git config user.name "${GIT_USER}"
|
||||
git config user.email "${GIT_EMAIL}"
|
||||
|
||||
if [ ! -z "${PATTERN}" ]; then
|
||||
echo -e "${PATTERN}" >"${GIT_PATTERN_DEST}"
|
||||
elif [ -f "../${GIT_PATTERN_FILE}" ]; then
|
||||
cp "../${GIT_PATTERN_FILE}" "${GIT_PATTERN_DEST}"
|
||||
fi
|
||||
|
||||
git checkout --
|
||||
|
||||
cd "${MY_PWD}"
|
||||
|
|
@ -0,0 +1 @@
|
|||
/docs
|
|
@ -34,6 +34,8 @@
|
|||
<scmPubCheckoutDirectory>${basedir}/.site-content</scmPubCheckoutDirectory>
|
||||
<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
|
||||
<releaseDate>${maven.build.timestamp}</releaseDate>
|
||||
<!-- The git repository, where the site content is placed -->
|
||||
<siteRepositoryUrl>scm:git:https://gitbox.apache.org/repos/asf/archiva-web-content-INVALID.git</siteRepositoryUrl>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
|
@ -55,10 +57,25 @@
|
|||
</pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<!--
|
||||
SCM Publish plugin.
|
||||
We deactivated the deletion, because the patterns for ignorePathsToDelete does only use the file/directory names
|
||||
not the relative paths.
|
||||
Site plugin is deploying into the subdirectory docs/${project.version} the publish plugin is copying from
|
||||
target directly.
|
||||
-->
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-scm-publish-plugin</artifactId>
|
||||
<configuration>
|
||||
<checkinComment>Apache Archiva Versionned docs for ${project.version}</checkinComment>
|
||||
<checkinComment>Apache Archiva Versioned docs for ${project.version}</checkinComment>
|
||||
<skipDeletedFiles>true</skipDeletedFiles>
|
||||
<content>${project.build.directory}/staging</content>
|
||||
<tryUpdate>true</tryUpdate>
|
||||
<!--
|
||||
<ignorePathsToDelete>
|
||||
<path>%regex[^(?!docs/).*$]</path>
|
||||
</ignorePathsToDelete>
|
||||
-->
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
|
@ -75,6 +92,7 @@
|
|||
<artifactId>maven-site-plugin</artifactId>
|
||||
<configuration>
|
||||
<skipDeploy>true</skipDeploy>
|
||||
<stagingDirectory>${project.build.directory}/staging/docs/${project.version}/</stagingDirectory>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
|
@ -155,8 +173,52 @@
|
|||
<distributionManagement>
|
||||
<site>
|
||||
<id>apache.website</id>
|
||||
<url>scm:svn:https://svn.apache.org/repos/asf/archiva/site-content/docs/${project.version}</url>
|
||||
<url>${siteRepositoryUrl}</url>
|
||||
</site>
|
||||
</distributionManagement>
|
||||
|
||||
<profiles>
|
||||
<!--
|
||||
This runs a sparse git checkout for the web site content repository that contains only the doc directory.
|
||||
The profile is activated only, if the checkout directory does not exist.
|
||||
The executor runs a shell script.
|
||||
-->
|
||||
<profile>
|
||||
<id>site-checkout</id>
|
||||
<activation>
|
||||
<file>
|
||||
<missing>${scmPubCheckoutDirectory}</missing>
|
||||
</file>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.6.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-checkout</id>
|
||||
<phase>pre-site</phase>
|
||||
<goals>
|
||||
<goal>exec</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<executable>checkoutSite.sh</executable>
|
||||
<workingDirectory>${project.basedir}</workingDirectory>
|
||||
<arguments>
|
||||
<argument>-d</argument>
|
||||
<argument>${scmPubCheckoutDirectory}</argument>
|
||||
<argument>${siteRepositoryUrl}</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
|
||||
</project>
|
||||
|
|
Loading…
Reference in New Issue