- project: name: apex jobs: - 'apex-verify-{stream}' - 'apex-merge-{stream}' - 'apex-daily-{stream}' # stream: branch with - in place of / (eg. stable-arno) # branch: branch (eg. stable/arno) stream: - master: branch: 'master' gs-pathname: '' flags: '-fM' disabled: false project: 'apex' - job-template: name: 'apex-verify-{stream}' node: opnfv-jump-1 project-type: freestyle logrotate: daysToKeep: 30 numToKeep: 10 artifactDaysToKeep: -1 artifactNumToKeep: -1 parameters: - apex-parameter: gs-pathname: '{gs-pathname}' flags: '{flags}' - project-parameter: project: '{project}' - gerrit-parameter: branch: '{branch}' - string: name: GIT_BASE default: ssh://gerrit.opnfv.org:29418/$PROJECT description: "Used for overriding the GIT URL coming from parameters macro." scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' refspec: '$GERRIT_REFSPEC' choosing-strategy: 'gerrit' wrappers: - ssh-agent-credentials: user: '{ssh-credentials}' triggers: - gerrit: trigger-on: - patchset-created-event: exclude-drafts: 'false' exclude-trivial-rebase: 'false' exclude-no-code-change: 'false' - draft-published-event - comment-added-contains-event: comment-contains-value: 'recheck' - comment-added-contains-event: comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' project-pattern: 'apex' branches: - branch-compare-type: 'ANT' branch-pattern: '**/master' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**' builders: - 'apex-build' - 'apex-workspace-cleanup' - job-template: name: 'apex-merge-{stream}' # builder-merge job to run JJB update # # This job's purpose is to update all the JJB node: opnfv-jump-1 project-type: freestyle logrotate: daysToKeep: 30 numToKeep: 40 artifactDaysToKeep: -1 artifactNumToKeep: 5 parameters: - apex-parameter: gs-pathname: '{gs-pathname}' flags: '{flags}' - project-parameter: project: '{project}' - gerrit-parameter: branch: '{branch}' - string: name: GIT_BASE default: ssh://gerrit.opnfv.org:29418/$PROJECT description: "Used for overriding the GIT URL coming from parameters macro." scm: - gerrit-trigger-scm: credentials-id: '{ssh-credentials}' refspec: '' choosing-strategy: 'default' wrappers: - ssh-agent-credentials: user: '{ssh-credentials}' triggers: - gerrit: trigger-on: - change-merged-event - comment-added-contains-event: comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: 'apex' branches: - branch-compare-type: 'ANT' branch-pattern: '**/master' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**' builders: - 'apex-build' - 'apex-workspace-cleanup' - job-template: name: 'apex-daily-{stream}' # Job template for daily builders # # Required Variables: # stream: branch with - in place of / (eg. stable) # branch: branch (eg. stable) node: opnfv-jump-1 disabled: true project-type: freestyle logrotate: 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}' - apex-parameter: gs-pathname: '{gs-pathname}' flags: '{flags}' scm: - git-scm: credentials-id: '{ssh-credentials}' refspec: '' branch: '{branch}' wrappers: - ssh-agent-credentials: user: '{ssh-credentials}' triggers: - 'apex-{stream}' builders: - 'apex-build' - 'apex-upload-artifact' - 'apex-workspace-cleanup' ######################## # parameter macros ######################## - parameter: name: apex-parameter parameters: - string: name: BUILD_DIRECTORY default: $WORKSPACE/build_output description: "Directory where the build artifact will be located upon the completion of the build." - string: name: CACHE_DIRECTORY default: $HOME/opnfv/cache/{gs-pathname} description: "Directory where the cache to be used during the build is located." - string: name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." - string: name: GS_URL default: artifacts.opnfv.org/$PROJECT/{gs-pathname} description: "URL to Google Storage." - string: name: FLAGS default: '{flags}' description: "Build Flags" ######################## # builder macros ######################## - builder: name: 'apex-build' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail # log info to console echo "Starting the build of Apex using OpenStack Master packages. This will take some time..." echo "---------------------------------------------------------------------------------------" echo # create the cache directory if it doesn't exist [[ -d $CACHE_DIRECTORY ]] || mkdir -p $CACHE_DIRECTORY # set OPNFV_ARTIFACT_VERSION export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") # start the build cd $WORKSPACE/ci ./build.sh $FLAGS -v $OPNFV_ARTIFACT_VERSION -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY # list the contents of BUILD_OUTPUT directory ls -al $BUILD_DIRECTORY # save information regarding artifact into file ( echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION" echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)" echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)" echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" echo "OPNFV_ARTIFACT_MD5SUM=$(md5sum $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)" echo "OPNFV_BUILD_URL=$BUILD_URL" ) > $WORKSPACE/opnfv.properties echo echo "--------------------------------------------------------" - builder: name: 'apex-workspace-cleanup' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail # delete everything that is in $WORKSPACE /bin/rm -rf $WORKSPACE - builder: name: 'apex-upload-artifact' builders: - shell: | #!/bin/bash set -o errexit set -o nounset set -o pipefail # log info to console echo "Uploading the Apex artifact. This could take some time..." echo "--------------------------------------------------------" echo # source the opnfv.properties to get ARTIFACT_VERSION source $WORKSPACE/opnfv.properties # upload artifact and additional files to google storage gsutil cp $BUILD_DIRECTORY/OPNFV-CentOS-7-x86_64-$OPNFV_ARTIFACT_VERSION.iso gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 echo echo "--------------------------------------------------------" echo "Done!" echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" ####################### # trigger macros ######################## - trigger: name: 'apex-master' triggers: - timed: '0 11 * * *'