From ad0c91f390ff90ddf293ff6654e9db6cade227b4 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Sun, 3 Sep 2017 00:07:24 +0200 Subject: fuel, armband: verify jobs: Enable virtual deploy Enable virtual deploy phase for verify multijob for both projects. Since fuel-defaults already define SSH_KEY param, drop it from individual jobs. Fuel: - drop merge jobs, which used to perform virtual deploys based on ISO created during verify job; - cleanup fuel-download-artifact (rm support for merge/verify); Armband: - while at it, remove "opnfv-build-enea-defaults", preparing for arm-build2's retirement. JIRA: FUEL-278 JIRA: FUEL-287 Change-Id: I354d72d88187e41070f44c723ccc651a0bb9b021 Signed-off-by: Alexandru Avadanii --- jjb/armband/armband-ci-jobs.yml | 7 ++-- jjb/armband/armband-verify-jobs.yml | 25 ++++++++----- jjb/fuel/fuel-daily-jobs.yml | 5 +-- jjb/fuel/fuel-deploy.sh | 10 +++--- jjb/fuel/fuel-download-artifact.sh | 39 ++++++++------------ jjb/fuel/fuel-project-jobs.yml | 72 ------------------------------------- jjb/fuel/fuel-verify-jobs.yml | 25 ++++++++----- jjb/fuel/fuel-weekly-jobs.yml | 1 + jjb/global/slave-params.yml | 15 -------- 9 files changed, 56 insertions(+), 143 deletions(-) diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index b27b053a4..d440d8374 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -82,6 +82,7 @@ use-build-blocker: true blocking-jobs: - '{installer}-os-.*?-{pod}-daily-.*' + - 'armband-verify-.*' block-level: 'NODE' wrappers: @@ -215,10 +216,6 @@ name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." - - string: - name: SSH_KEY - default: "/tmp/mcp.rsa" - description: "Path to private SSH key to access environment nodes. For MCP deployments only." ######################## # trigger macros @@ -283,4 +280,4 @@ - trigger: name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger' triggers: - - timed: '' \ No newline at end of file + - timed: '' diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml index 56f70d68b..b30fbafb2 100644 --- a/jjb/armband/armband-verify-jobs.yml +++ b/jjb/armband/armband-verify-jobs.yml @@ -21,11 +21,11 @@ ##################################### phase: - 'basic': - slave-label: 'opnfv-build-enea' + slave-label: 'armband-virtual' - 'deploy-virtual': - slave-label: 'opnfv-build-enea' + slave-label: 'armband-virtual' - 'smoke-test': - slave-label: 'opnfv-build-enea' + slave-label: 'armband-virtual' ##################################### # jobs ##################################### @@ -50,6 +50,11 @@ enabled: true max-total: 4 option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-virtual-daily-.*' + block-level: 'NODE' scm: - git-scm-gerrit @@ -94,7 +99,8 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-enea-defaults' + - 'armband-virtual-defaults': + installer: '{installer}' - 'armband-verify-defaults': gs-pathname: '{gs-pathname}' @@ -155,7 +161,8 @@ - logrotate-default - throttle: enabled: true - max-total: 6 + max-total: 2 + max-per-node: 1 option: 'project' - build-blocker: use-build-blocker: true @@ -177,6 +184,8 @@ project: '{project}' branch: '{branch}' - '{slave-label}-defaults' + - 'armband-virtual-defaults': + installer: '{installer}' - '{installer}-defaults' - 'armband-verify-defaults': gs-pathname: '{gs-pathname}' @@ -199,10 +208,8 @@ - builder: name: 'armband-verify-deploy-virtual-macro' builders: - - shell: | - #!/bin/bash - - echo "Not activated!" + - shell: + !include-raw-escape: ../fuel/fuel-deploy.sh - builder: name: 'armband-verify-smoke-test-macro' diff --git a/jjb/fuel/fuel-daily-jobs.yml b/jjb/fuel/fuel-daily-jobs.yml index 488505edf..80fde32fa 100644 --- a/jjb/fuel/fuel-daily-jobs.yml +++ b/jjb/fuel/fuel-daily-jobs.yml @@ -140,6 +140,7 @@ blocking-jobs: - 'fuel-os-.*?-{pod}-daily-.*' - 'fuel-os-.*?-{pod}-weekly-.*' + - 'fuel-verify-.*' block-level: 'NODE' wrappers: @@ -293,10 +294,6 @@ name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} description: "URL to Google Storage." - - string: - name: SSH_KEY - default: "/tmp/mcp.rsa" - description: "Path to private SSH key to access environment nodes. For MCP deployments only." ######################## # trigger macros ######################## diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index ddaebc94a..18b2fd730 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -12,7 +12,7 @@ set -o pipefail export TERM="vt220" -if [[ "$BRANCH" != 'master' ]]; then +if [[ "$BRANCH" =~ 'danube' ]]; then # source the file so we get OPNFV vars source latest.properties @@ -21,11 +21,11 @@ if [[ "$BRANCH" != 'master' ]]; then fi # shellcheck disable=SC2153 -if [[ "${JOB_NAME}" =~ "merge" ]]; then - # set simplest scenario for virtual deploys to run for merges +if [[ "${JOB_NAME}" =~ 'verify' ]]; then + # set simplest scenario for virtual deploys to run for verify DEPLOY_SCENARIO="os-nosdn-nofeature-ha" -elif [[ "${BRANCH}" != 'master' ]]; then - # for none-merge deployments +elif [[ "${BRANCH}" =~ 'danube' ]]; then + # for Danube deployments (no artifact for current master or newer branches) # checkout the commit that was used for building the downloaded artifact # to make sure the ISO and deployment mechanism uses same versions echo "Checking out ${OPNFV_GIT_SHA1}" diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh index fa0c88b5d..02ca10305 100755 --- a/jjb/fuel/fuel-download-artifact.sh +++ b/jjb/fuel/fuel-download-artifact.sh @@ -16,15 +16,9 @@ set -o pipefail # use proxy url to replace the normal URL, or googleusercontent.com will be blocked randomly [[ "$NODE_NAME" =~ (zte) ]] && GS_URL=${GS_BASE_PROXY%%/*}/$GS_URL -if [[ "$JOB_NAME" =~ "merge" ]]; then - echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties" - # get the properties file for the Fuel ISO built for a merged change - curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties -else - # get the latest.properties file in order to get info regarding latest artifact - echo "Downloading http://$GS_URL/latest.properties" - curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties -fi +# get the latest.properties file in order to get info regarding latest artifact +echo "Downloading http://$GS_URL/latest.properties" +curl -L -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties # check if we got the file [[ -f $WORKSPACE/latest.properties ]] || exit 1 @@ -36,21 +30,18 @@ source $WORKSPACE/latest.properties OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/} echo "Using $OPNFV_ARTIFACT for deployment" -# using ISOs for verify & merge jobs from local storage will be enabled later -if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then - # check if we already have the ISO to avoid redownload - ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}" - if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then - echo "ISO exists locally. Skipping the download and using the file from ISO store" - ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso - echo "--------------------------------------------------------" - echo - ls -al $WORKSPACE/opnfv.iso - echo - echo "--------------------------------------------------------" - echo "Done!" - exit 0 - fi +# check if we already have the ISO to avoid redownload +ISOSTORE="/iso_mount/opnfv_ci/${BRANCH##*/}" +if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then + echo "ISO exists locally. Skipping the download and using the file from ISO store" + ln -s $ISOSTORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso + echo "--------------------------------------------------------" + echo + ls -al $WORKSPACE/opnfv.iso + echo + echo "--------------------------------------------------------" + echo "Done!" + exit 0 fi [[ "$NODE_NAME" =~ (zte) ]] && OPNFV_ARTIFACT_URL=${GS_BASE_PROXY%%/*}/$OPNFV_ARTIFACT_URL diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml index e850a0acb..ab18b963d 100644 --- a/jjb/fuel/fuel-project-jobs.yml +++ b/jjb/fuel/fuel-project-jobs.yml @@ -19,83 +19,11 @@ disabled: true jobs: - - 'fuel-merge-deploy-virtual-{stream}' - 'fuel-deploy-generic-daily-{stream}' ######################## # job templates ######################## -- job-template: - name: 'fuel-merge-deploy-virtual-{stream}' - - disabled: true - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-os-.*?-virtual-daily-.*' - - 'fuel-merge-deploy-virtual-.*' - block-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'fuel-virtual-defaults': - installer: '{installer}' - - '{installer}-defaults' - - fuel-project-parameter: - gs-pathname: '{gs-pathname}' - scm: - - git-scm - - wrappers: - - ssh-agent-wrapper - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'mcp/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - dependency-jobs: 'fuel-merge-build-{stream}' - - builders: - - shell: - !include-raw-escape: ./fuel-deploy.sh - - shell: - !include-raw-escape: ./fuel-workspace-cleanup.sh - - publishers: - - email: - recipients: fzhadaev@mirantis.com - - email-jenkins-admins-on-failure - - job-template: name: 'fuel-deploy-generic-daily-{stream}' diff --git a/jjb/fuel/fuel-verify-jobs.yml b/jjb/fuel/fuel-verify-jobs.yml index 899be9a4a..73d47637f 100644 --- a/jjb/fuel/fuel-verify-jobs.yml +++ b/jjb/fuel/fuel-verify-jobs.yml @@ -21,11 +21,11 @@ ##################################### phase: - 'basic': - slave-label: 'opnfv-build-ubuntu' + slave-label: 'fuel-virtual' - 'deploy-virtual': - slave-label: 'opnfv-build-ubuntu' + slave-label: 'fuel-virtual' - 'smoke-test': - slave-label: 'opnfv-build-ubuntu' + slave-label: 'fuel-virtual' ##################################### # jobs ##################################### @@ -50,6 +50,11 @@ enabled: true max-total: 4 option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-os-.*?-virtual-daily-.*' + block-level: 'NODE' scm: - git-scm-gerrit @@ -94,7 +99,8 @@ - project-parameter: project: '{project}' branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' + - 'fuel-virtual-defaults': + installer: '{installer}' - 'fuel-verify-defaults': gs-pathname: '{gs-pathname}' @@ -155,7 +161,8 @@ - logrotate-default - throttle: enabled: true - max-total: 6 + max-total: 2 + max-per-node: 1 option: 'project' - build-blocker: use-build-blocker: true @@ -177,6 +184,8 @@ project: '{project}' branch: '{branch}' - '{slave-label}-defaults' + - 'fuel-virtual-defaults': + installer: '{installer}' - '{installer}-defaults' - 'fuel-verify-defaults': gs-pathname: '{gs-pathname}' @@ -199,10 +208,8 @@ - builder: name: 'fuel-verify-deploy-virtual-macro' builders: - - shell: | - #!/bin/bash - - echo "Not activated!" + - shell: + !include-raw-escape: ./fuel-deploy.sh - builder: name: 'fuel-verify-smoke-test-macro' diff --git a/jjb/fuel/fuel-weekly-jobs.yml b/jjb/fuel/fuel-weekly-jobs.yml index c681c6252..ba5d096af 100644 --- a/jjb/fuel/fuel-weekly-jobs.yml +++ b/jjb/fuel/fuel-weekly-jobs.yml @@ -72,6 +72,7 @@ blocking-jobs: - 'fuel-os-.*?-{pod}-daily-.*' - 'fuel-os-.*?-{pod}-weekly-.*' + - 'fuel-verify-.*' block-level: 'NODE' wrappers: diff --git a/jjb/global/slave-params.yml b/jjb/global/slave-params.yml index 75c4323e6..a4ee4d9f1 100644 --- a/jjb/global/slave-params.yml +++ b/jjb/global/slave-params.yml @@ -363,21 +363,6 @@ ##################################################### # Parameters for build slaves ##################################################### -- parameter: - name: 'opnfv-build-enea-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-enea' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - parameter: name: 'opnfv-build-centos-defaults' parameters: -- cgit 1.2.3-korg