From bafeb8961bc2473e13253a0aec12ec29cc508cbb Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Fri, 1 Feb 2019 14:10:29 +0100 Subject: [HICN-25] Push ci-management script for building and deploying documentation Change-Id: I12fefd6352a468d3ce7b659b1f262e3d4c296e06 Signed-off-by: Mauro Sardara --- jjb/hicn/hicn-docs.yaml | 170 ++++++++++++++++++++++++++++++++++++++ jjb/hicn/include-raw-hicn-docs.sh | 72 ++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 jjb/hicn/hicn-docs.yaml create mode 100644 jjb/hicn/include-raw-hicn-docs.sh diff --git a/jjb/hicn/hicn-docs.yaml b/jjb/hicn/hicn-docs.yaml new file mode 100644 index 000000000..ea98f6fab --- /dev/null +++ b/jjb/hicn/hicn-docs.yaml @@ -0,0 +1,170 @@ +- project: + name: hicn-docs + jobs: + - 'hicn-docs-merge-{stream}' + - 'hicn-docs-verify-{stream}' + + project: 'hicn' + os: + - ubuntu1604: + repo-os-part: 'ubuntu.xenial.main' + + stream: + - master: + branch: 'master' + repo-stream-part: 'master' + type: + - short + - long + +- job-template: + name: 'hicn-docs-verify-{stream}' + + project-type: freestyle + node: ubuntu1604-us + concurrent: true + + build-discarder: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - os-parameter: + os: 'ubuntu1604' + - maven-exec: + maven-version: 'mvn33-new' + - stream-parameter: + stream: '{stream}' + + scm: + - gerrit-trigger-scm: + credentials-id: 'jenkins-gerrit-credentials' + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - fdio-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - gerrit-trigger-checkstyle: + name: '{project}' + branch: '{branch}' + + builders: + - maven-target: + maven-version: 'mvn33-new' + goals: '--version' + settings: 'hicn-settings' + settings-type: cfp + global-settings: 'global-settings' + global-settings-type: cfp + - provide-maven-settings: + settings-file: 'hicn-settings' + global-settings-file: 'global-settings' + - shell: + !include-raw-escape: include-raw-hicn-docs.sh + + publishers: + - archive: + artifacts: 'build/lib/doc/html/*' + allow-empty: 'true' + fingerprint: false + only-if-success: true + default-excludes: false + - fdio-infra-shiplogs: + maven-version: 'mvn33-new' + - naginator: + rerun-unstable-builds: false + max-failed-builds: 1 + fixed-delay: 90 + +- job-template: + name: 'hicn-docs-merge-{stream}' + + project-type: freestyle + node: ubuntu1604-us + concurrent: false + + build-discarder: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - os-parameter: + os: 'ubuntu1604' + - maven-exec: + maven-version: 'mvn33-new' + - stream-parameter: + stream: '{stream}' + + scm: + - gerrit-trigger-scm: + credentials-id: 'jenkins-gerrit-credentials' + refspec: '' + choosing-strategy: 'default' + + wrappers: + - fdio-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - reverse: + jobs: 'hicn-merge-{stream}-ubuntu1604' + result: 'success' + - gerrit: + server-name: 'Primary' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'run-docs' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true + + builders: + - maven-target: + maven-version: 'mvn33-new' + goals: '--version' + settings: 'hicn-settings' + settings-type: cfp + global-settings: 'global-settings' + global-settings-type: cfp + - provide-maven-settings: + settings-file: 'hicn-settings' + global-settings-file: 'global-settings' + - shell: + !include-raw-escape: include-raw-hicn-docs.sh + + publishers: + - archive: + artifacts: 'build/lib/doc/html/*' + allow-empty: 'true' + fingerprint: false + only-if-success: true + default-excludes: false + - fdio-infra-shiplogs: + maven-version: 'mvn33-new' + - naginator: + rerun-unstable-builds: false + max-failed-builds: 1 + fixed-delay: 90 diff --git a/jjb/hicn/include-raw-hicn-docs.sh b/jjb/hicn/include-raw-hicn-docs.sh new file mode 100644 index 000000000..e0120170d --- /dev/null +++ b/jjb/hicn/include-raw-hicn-docs.sh @@ -0,0 +1,72 @@ +#!/bin/bash +set -xe -o pipefail + +update_cmake_repo() { + cat /etc/resolv.conf + echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf + cat /etc/resolv.conf + + CMAKE_INSTALL_SCRIPT_URL="https://cmake.org/files/v3.8/cmake-3.8.0-Linux-x86_64.sh" + CMAKE_INSTALL_SCRIPT="/tmp/install_cmake.sh" + curl ${CMAKE_INSTALL_SCRIPT_URL} > ${CMAKE_INSTALL_SCRIPT} + + sudo mkdir -p /opt/cmake + sudo bash ${CMAKE_INSTALL_SCRIPT} --skip-license --prefix=/opt/cmake + export PATH=/opt/cmake/bin:$PATH +} + +[ "$DOCS_REPO_URL" ] || DOCS_REPO_URL="https://nexus.fd.io/content/sites/site" +[ "$PROJECT_PATH" ] || PROJECT_PATH="io/fd/hicn" +[ "$DOC_FILE" ] || DOC_FILE="hicn.docs.zip" +[ "$DOC_DIR" ] || DOC_DIR="build/lib/doc/html" +[ "$SITE_DIR" ] || SITE_DIR="build/doc/deploy-site/" +[ "$RESOURCES_DIR" ] || RESOURCES_DIR=${SITE_DIR}/src/site/resources +[ "$MVN" ] || MVN="/opt/apache/maven/bin/mvn" +[ "$VERSION" ] || VERSION=$(git describe --abbrev=0 | egrep -o "([0-9]{1,}\.)+[0-9]{1,}") + +echo "Current directory: $(pwd)" + +update_cmake_repo +mkdir -p build +pushd build +cmake -DBUILD_HICNPLUGIN=OFF -DBUILD_HICNLIGHT=OFF -DBUILD_LIBTRANSPORT=OFF -DBUILD_UTILS=OFF .. +make doc +popd + +if [[ ${JOB_NAME} == *merge* ]]; then + mkdir -p $(dirname ${RESOURCES_DIR}) + mv -f ${DOC_DIR} ${RESOURCES_DIR} + cd ${SITE_DIR} + find . -type f '(' -name '*.md5' -o -name '*.dot' -o -name '*.map' ')' -delete + cat > pom.xml << EOF + + 4.0.0 + io.fd.hicn + docs + 1.0.0 + pom + + + false + + + + + + org.apache.maven.wagon + wagon-webdav-jackrabbit + 2.9 + + + + + + fdio-site + dav:${DOCS_REPO_URL}/${PROJECT_PATH}/${VERSION} + + + +EOF + ${MVN} site:site site:deploy -gs "${GLOBAL_SETTINGS_FILE}" -s "${SETTINGS_FILE}" -T 4C + cd - +fi -- cgit 1.2.3-korg