summaryrefslogtreecommitdiffstats
path: root/jjb/armband
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/armband')
-rw-r--r--jjb/armband/armband-ci-jobs.yml786
-rwxr-xr-xjjb/armband/armband-deploy.sh138
-rwxr-xr-xjjb/armband/armband-download-artifact.sh77
-rw-r--r--jjb/armband/armband-project-jobs.yml94
-rw-r--r--jjb/armband/armband-verify-jobs.yml348
-rwxr-xr-xjjb/armband/armband-workspace-cleanup.sh15
-rwxr-xr-xjjb/armband/build.sh114
-rwxr-xr-xjjb/armband/upload-artifacts.sh93
8 files changed, 365 insertions, 1300 deletions
diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml
index e7de31908..f8ed35283 100644
--- a/jjb/armband/armband-ci-jobs.yml
+++ b/jjb/armband/armband-ci-jobs.yml
@@ -1,113 +1,73 @@
+---
# jenkins job templates for Armband
- project:
name: 'armband-ci'
project: 'armband'
-#--------------------------------
-# BRANCH ANCHORS
-#--------------------------------
+ # -------------------------------
+ # BRANCH ANCHORS
+ # -------------------------------
master: &master
- stream: master
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- danube: &danube
- stream: danube
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
-#--------------------------------
-# POD, INSTALLER, AND BRANCH MAPPING
-#--------------------------------
-# CI POD's
-#--------------------------------
-# danube
-#--------------------------------
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ euphrates: &euphrates
+ stream: euphrates
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ # -------------------------------
+ # DEPLOY TYPE ANCHORS
+ # -------------------------------
+ baremetal: &baremetal
+ installer: 'fuel'
+ deploy-type: 'baremetal'
+ slave-label: 'armband-{deploy-type}'
+ virtual: &virtual
+ installer: 'fuel'
+ deploy-type: 'virtual'
+ slave-label: 'armband-{deploy-type}'
+ # -------------------------------
+ # POD, INSTALLER, AND BRANCH MAPPING
+ # -------------------------------
+ # CI POD's
+ # -------------------------------
+ # euphrates
+ # -------------------------------
pod:
- - armband-baremetal:
- slave-label: armband-baremetal
- installer: fuel
- <<: *danube
- - armband-virtual:
- slave-label: armband-virtual
- installer: fuel
- <<: *danube
-#--------------------------------
-# master
-#--------------------------------
- - armband-baremetal:
- slave-label: armband-baremetal
- installer: fuel
- <<: *master
- - armband-virtual:
- slave-label: armband-virtual
- installer: fuel
- <<: *master
-#--------------------------------
-# NONE-CI POD's
-#--------------------------------
-# danube
-#--------------------------------
- - arm-pod2:
- slave-label: arm-pod2
- installer: fuel
- <<: *danube
- - arm-pod3:
- slave-label: arm-pod3
- installer: fuel
- <<: *danube
- - arm-pod4:
- slave-label: arm-pod4
- installer: fuel
- <<: *danube
- - arm-virtual1:
- slave-label: arm-virtual1
- installer: fuel
- <<: *danube
-#--------------------------------
-# master
-#--------------------------------
- - arm-pod2:
- slave-label: arm-pod2
- installer: fuel
- <<: *master
- - arm-pod3:
- slave-label: arm-pod3
- installer: fuel
- <<: *master
- - arm-pod4:
- slave-label: arm-pod4
- installer: fuel
- <<: *master
- - arm-virtual1:
- slave-label: arm-virtual1
- installer: fuel
- <<: *master
-#--------------------------------
-# scenarios
-#--------------------------------
+ - armband-baremetal:
+ <<: *baremetal
+ <<: *euphrates
+ - armband-virtual:
+ <<: *virtual
+ <<: *euphrates
+ # -------------------------------
+ # master
+ # -------------------------------
+ - armband-baremetal:
+ <<: *baremetal
+ <<: *master
+ - armband-virtual:
+ <<: *virtual
+ <<: *master
+ # -------------------------------
+ # scenarios
+ # -------------------------------
scenario:
- # HA scenarios
- - 'os-nosdn-nofeature-ha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l2-nofeature-ha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l3-nofeature-ha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l2-bgpvpn-ha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l2-sfc-ha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
+ # HA scenarios
+ - 'os-nosdn-nofeature-ha':
+ auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
+ - 'os-odl-nofeature-ha':
+ auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- # NOHA scenarios
- - 'os-odl_l2-nofeature-noha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
- - 'os-odl_l2-sfc-noha':
- auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
+ # NOHA scenarios
+ - 'os-nosdn-nofeature-noha':
+ auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
jobs:
- - '{installer}-{scenario}-{pod}-daily-{stream}'
- - '{installer}-deploy-{pod}-daily-{stream}'
+ - '{installer}-{scenario}-{pod}-daily-{stream}'
+ - '{installer}-deploy-{pod}-daily-{stream}'
########################
# job templates
@@ -120,90 +80,101 @@
concurrent: false
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 4
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - '{installer}-os-.*?-{pod}-daily-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - '{installer}-os-.*?-{pod}-daily-.*'
+ - 'armband-verify-.*'
+ block-level: 'NODE'
wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
triggers:
- - '{auto-trigger-name}'
+ - '{auto-trigger-name}'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - string:
- name: DEPLOY_SCENARIO
- default: '{scenario}'
- - armband-ci-parameter:
- gs-pathname: '{gs-pathname}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
+ - '{slave-label}-defaults':
+ installer: '{installer}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
builders:
- - trigger-builds:
- - project: '{installer}-deploy-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- same-node: true
- block: true
- - trigger-builds:
- - project: 'functest-{installer}-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- - trigger-builds:
- - project: 'yardstick-{installer}-{pod}-daily-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
- # 1.dovetail only master, based on D release
- # 2.here the stream means the SUT stream, dovetail stream is defined in its own job
- # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
- # 4.not used for release criteria or compliance,
- # only to debug the dovetail tool bugs with arm pods
- # 5.only run against scenario os-(nosdn|odl_l2)-(nofeature-bgpvpn)-ha
- - conditional-step:
- condition-kind: regex-match
- regex: os-(nosdn|odl_l2)-(nofeature|bgpvpn)-ha
- label: '{scenario}'
- steps:
- - trigger-builds:
- - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
- current-parameters: false
- predefined-parameters:
- DEPLOY_SCENARIO={scenario}
- block: true
- same-node: true
- block-thresholds:
- build-step-failure-threshold: 'never'
- failure-threshold: 'never'
- unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: '{installer}-deploy-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ same-node: true
+ block: true
+ - trigger-builds:
+ - project: 'functest-{installer}-{pod}-arm-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ - trigger-builds:
+ - project: 'yardstick-{installer}-{pod}-daily-{stream}'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ # 1.dovetail only master, based on D release
+ # 2.here the stream means the SUT stream,
+ # dovetail stream is defined in its own job
+ # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
+ # 4.not used for release criteria or compliance,
+ # only to debug the dovetail tool bugs with arm pods
+ # 5.only run against scenario os-(nosdn|odl)-(nofeature-bgpvpn)-ha
+ - conditional-step:
+ condition-kind: regex-match
+ regex: os-(nosdn|odl)-(nofeature|bgpvpn)-ha
+ label: '{scenario}'
+ steps:
+ - trigger-builds:
+ - project: 'dovetail-{installer}-{pod}-proposed_tests-master'
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO={scenario}
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
+ # Armband uses Fuel's log collection project job, no need to duplicate
+ - trigger-builds:
+ - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
+ current-parameters: false
+ block: true
+ same-node: true
+ block-thresholds:
+ build-step-failure-threshold: 'never'
+ failure-threshold: 'never'
+ unstable-threshold: 'FAILURE'
- job-template:
name: '{installer}-deploy-{pod}-daily-{stream}'
@@ -211,449 +182,108 @@
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 4
- max-per-node: 1
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - '{installer}-deploy-{pod}-daily-{stream}'
- - '{installer}-deploy-generic-daily-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 4
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - '{installer}-deploy-{pod}-daily-{stream}'
+ - '{installer}-deploy-generic-daily-.*'
+ block-level: 'NODE'
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{installer}-defaults'
- - '{slave-label}-defaults':
- installer: '{installer}'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-odl_l2-nofeature-ha'
- - armband-ci-parameter:
- gs-pathname: '{gs-pathname}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
+ - '{slave-label}-defaults':
+ installer: '{installer}'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl-nofeature-ha'
scm:
- - git-scm
+ - git-scm
wrappers:
- - build-name:
- name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
builders:
- - shell:
- !include-raw-escape: ./armband-download-artifact.sh
- - shell:
- !include-raw-escape: ./armband-deploy.sh
+ - shell:
+ !include-raw-escape: ../fuel/fuel-deploy.sh
publishers:
- - email:
- recipients: armband@enea.com
-
-########################
-# parameter macros
-########################
-- parameter:
- name: armband-ci-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/$INSTALLER_TYPE
- description: "Directory where the cache to be used during the build is located."
- - string:
- 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."
+ - email:
+ recipients: armband@enea.com
+ - email-jenkins-admins-on-failure
########################
# trigger macros
########################
# CI PODs
-#-----------------------------------------------------------------
+# ----------------------------------------------------------------
# Enea Armband CI Baremetal Triggers running against master branch
-#-----------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
+# ----------------------------------------------------------------
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-master-trigger'
- triggers:
- - timed: ''
-
-#----------------------------------------------------------------------
-# Enea Armband CI Baremetal Triggers running against danube branch
-#----------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-danube-trigger'
- triggers:
- - timed: '0 0,16 * * 2,4'
+ - timed: '0 16 * * 2,4,6'
- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 0 * * 1,5,7'
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-danube-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
triggers:
- - timed: '0 16 * * 1,5,7'
+ - timed: '0 16 * * 1,3,5,7'
+# ---------------------------------------------------------------------
+# Enea Armband CI Baremetal Triggers running against euphrates branch
+# ---------------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
triggers:
- - timed: '0 8 * * 2,4,6'
+ - timed: '0 1 * * 2,4,6'
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
triggers:
- - timed: '0 8 * * 1,3,5,7'
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-danube-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
triggers:
- - timed: '0 0 * * 3,6'
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-danube-trigger'
- triggers:
- - timed: '0 16 * * 3,6'
-#---------------------------------------------------------------
+ - timed: '0 1 * * 1,3,5,7'
+# --------------------------------------------------------------
# Enea Armband CI Virtual Triggers running against master branch
-#---------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
+# --------------------------------------------------------------
- trigger:
name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger'
- triggers:
- - timed: ''
-#--------------------------------------------------------------------
-# Enea Armband CI Virtual Triggers running against danube branch
-#--------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-danube-trigger'
- triggers:
- - timed: ''
-
-#--------------------------------------------------------------------
-# Enea Armband Non CI Virtual Triggers running against danube branch
-#--------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-danube-trigger'
- triggers:
- - timed: ''
-
-#--------------------------------------------------------------------
-# Enea Armband Non CI Virtual Triggers running against master branch
-#--------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-master-trigger'
- triggers:
- - timed: ''
-
-#----------------------------------------------------------
-# Enea Armband POD 2 Triggers running against master branch
-#----------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-master-trigger'
- triggers:
- - timed: ''
-#---------------------------------------------------------------
-# Enea Armband POD 2 Triggers running against danube branch
-#---------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-danube-trigger'
- triggers:
- - timed: ''
-#----------------------------------------------------------
-# Enea Armband POD 3 Triggers running against master branch
-#----------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-master-trigger'
- triggers:
- - timed: ''
-#---------------------------------------------------------------
-# Enea Armband POD 3 Triggers running against danube branch
-#---------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-danube-trigger'
- triggers:
- - timed: ''
-#--------------------------------------------------------------------------
-# Enea Armband POD 3 Triggers running against master branch (aarch64 slave)
-#--------------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-master-trigger'
- triggers:
- - timed: ''
-#--------------------------------------------------------------------------
-# Enea Armband POD 3 Triggers running against danube branch (aarch64 slave)
-#--------------------------------------------------------------------------
-- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-danube-trigger'
- triggers:
- - timed: ''
-- trigger:
- name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-danube-trigger'
- triggers:
- - timed: ''
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-danube-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
triggers:
- - timed: ''
+ - timed: ''
+# -------------------------------------------------------------------
+# Enea Armband CI Virtual Triggers running against euphrates branch
+# -------------------------------------------------------------------
- trigger:
- name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-danube-trigger'
+ name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
triggers:
- - timed: ''
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-danube-trigger'
+ name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
triggers:
- - timed: ''
+ - timed: ''
diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh
deleted file mode 100755
index 9964ed5cc..000000000
--- a/jjb/armband/armband-deploy.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# (c) 2017 Enea Software AB
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o nounset
-set -o pipefail
-
-export TERM="vt220"
-
-if [[ "$BRANCH" != 'master' ]]; then
- # source the file so we get OPNFV vars
- source latest.properties
-
- # echo the info about artifact that is used during the deployment
- echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment"
-fi
-
-if [[ "$JOB_NAME" =~ "merge" ]]; then
- # set simplest scenario for virtual deploys to run for merges
- DEPLOY_SCENARIO="os-nosdn-nofeature-ha"
-elif [[ "$BRANCH" != 'master' ]]; then
- # for none-merge deployments
- # 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"
- git checkout $OPNFV_GIT_SHA1 --quiet
-fi
-
-# set deployment parameters
-export TMPDIR=${WORKSPACE}/tmpdir
-
-# arm-pod4 is an aarch64 jenkins slave for the same POD as the
-# x86 jenkins slave arm-pod3; therefore we use the same pod name
-# to deploy the pod from both jenkins slaves
-if [[ "${NODE_NAME}" == "arm-pod4" ]]; then
- NODE_NAME="arm-pod3"
-fi
-
-LAB_NAME=${NODE_NAME/-*}
-POD_NAME=${NODE_NAME/*-}
-
-# we currently support enea
-if [[ ! $LAB_NAME =~ (arm|enea) ]]; then
- echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!"
- exit 1
-fi
-
-echo "Using configuration for $LAB_NAME"
-
-# create TMPDIR if it doesn't exist
-mkdir -p $TMPDIR
-
-cd $WORKSPACE
-if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then
- echo "Cloning securedlab repo $BRANCH"
- git clone --quiet --branch $BRANCH $LAB_CONFIG_URL lab-config
- LAB_CONFIG_URL=file://${WORKSPACE}/lab-config
-
- # Source local_env if present, which contains POD-specific config
- local_env="${WORKSPACE}/lab-config/labs/$LAB_NAME/$POD_NAME/fuel/config/local_env"
- if [ -e $local_env ]; then
- echo "-- Sourcing local environment file"
- source $local_env
- fi
-fi
-
-if [[ "$NODE_NAME" =~ "virtual" ]]; then
- POD_NAME="virtual_kvm"
-fi
-
-# releng wants us to use nothing else but opnfv.iso for now. We comply.
-ISO_FILE=$WORKSPACE/opnfv.iso
-
-# log file name
-FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz"
-
-# Deploy Cache (to enable just create the deploy-cache subdir)
-# NOTE: Only available when ISO files are cached using ISOSTORE mechanism
-DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}/deploy-cache
-if [[ -d "${DEPLOY_CACHE}" ]]; then
- echo "Deploy cache dir present."
- echo "--------------------------------------------------------"
- echo "Fuel@OPNFV deploy cache: ${DEPLOY_CACHE}"
- DEPLOY_CACHE="-C ${DEPLOY_CACHE}"
-else
- DEPLOY_CACHE=""
-fi
-
-# construct the command
-DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -b ${LAB_CONFIG_URL} \
- -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://${ISO_FILE} \
- -H -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME \
- ${DEPLOY_CACHE}"
-
-# log info to console
-echo "Deployment parameters"
-echo "--------------------------------------------------------"
-echo "Scenario: $DEPLOY_SCENARIO"
-echo "Lab: $LAB_NAME"
-echo "POD: $POD_NAME"
-[[ "$BRANCH" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}"
-echo
-echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..."
-echo "--------------------------------------------------------"
-echo
-
-# start the deployment
-echo "Issuing command"
-echo "$DEPLOY_COMMAND"
-echo
-
-$DEPLOY_COMMAND
-exit_code=$?
-
-echo
-echo "--------------------------------------------------------"
-echo "Deployment is done!"
-
-# upload logs for baremetal deployments
-# work with virtual deployments is still going on so we skip that for the timebeing
-if [[ "$JOB_NAME" =~ "baremetal-daily" ]]; then
- echo "Uploading deployment logs"
- gsutil cp $WORKSPACE/$FUEL_LOG_FILENAME gs://$GS_URL/logs/$FUEL_LOG_FILENAME > /dev/null 2>&1
- echo "Logs are available as http://$GS_URL/logs/$FUEL_LOG_FILENAME"
-fi
-
-if [[ $exit_code -ne 0 ]]; then
- echo "Deployment failed!"
- exit $exit_code
-else
- echo "Deployment is successful!"
-fi
diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh
deleted file mode 100755
index 4f83305d4..000000000
--- a/jjb/armband/armband-download-artifact.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# (c) 2017 Enea AB
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o errexit
-set -o pipefail
-
-# disable Fuel ISO download for master branch
-[[ "$BRANCH" == 'master' ]] && exit 0
-
-echo "Host info: $(hostname) $(hostname -I)"
-
-# Configurable environment variables:
-# ISOSTORE (/iso_mount/opnfv_ci)
-
-if [[ "$JOB_NAME" =~ "merge" ]]; then
- echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties"
- # get the properties file for the Armband Fuel ISO built for a merged change
- curl -f -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 -f -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties
-fi
-
-# source the file so we get artifact metadata, it will exit if it doesn't exist
-source latest.properties
-
-# echo the info about artifact that is used during the deployment
-OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
-echo "Using $OPNFV_ARTIFACT for deployment"
-
-# Releng doesn't want us to use anything but opnfv.iso for now. We comply.
-ISO_FILE=${WORKSPACE}/opnfv.iso
-
-# 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=${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 ${ISO_FILE}
- echo "--------------------------------------------------------"
- echo
- ls -al ${ISO_FILE}
- echo
- echo "--------------------------------------------------------"
- echo "Done!"
- exit 0
- fi
-fi
-
-# Use gsutils if available
-if $(which gsutil &>/dev/null); then
- DOWNLOAD_URL="gs://$OPNFV_ARTIFACT_URL"
- CMD="gsutil cp ${DOWNLOAD_URL} ${ISO_FILE}"
-else
- # download image
- # -f returns error if the file was not found or on server error
- DOWNLOAD_URL="http://$OPNFV_ARTIFACT_URL"
- CMD="curl -f -s -o ${ISO_FILE} ${DOWNLOAD_URL}"
-fi
-
-# log info to console
-echo "Downloading the $INSTALLER_TYPE artifact using URL $DOWNLOAD_URL"
-echo "This could take some time..."
-echo "--------------------------------------------------------"
-echo "$CMD"
-$CMD
-echo "--------------------------------------------------------"
-echo "Done!"
diff --git a/jjb/armband/armband-project-jobs.yml b/jjb/armband/armband-project-jobs.yml
deleted file mode 100644
index f6840a008..000000000
--- a/jjb/armband/armband-project-jobs.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-###################################################
-# All the jobs except verify have been removed!
-# They will only be enabled on request by projects!
-###################################################
-- project:
- name: armband
-
- project: '{name}'
-
- installer: 'fuel'
-
- jobs:
- - 'armband-{installer}-build-daily-{stream}'
-
- stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
-
-- job-template:
- name: 'armband-{installer}-build-daily-{stream}'
-
- disabled: '{obj:disabled}'
-
- concurrent: false
-
- properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 1
- max-per-node: 1
- option: 'project'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-enea-defaults'
- - '{installer}-defaults'
- - armband-project-parameter:
- gs-pathname: '{gs-pathname}'
-
- scm:
- - git-scm
-
- triggers:
- - pollscm:
- cron: '0 H/4 * * *'
-
- wrappers:
- - timeout:
- timeout: 360
- fail: true
-
- builders:
- - shell:
- !include-raw-escape: ./build.sh
- - shell:
- !include-raw-escape: ./upload-artifacts.sh
-
- publishers:
- - email:
- recipients: armband@enea.com
-
-########################
-# parameter macros
-########################
-- parameter:
- name: armband-project-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/$INSTALLER_TYPE
- description: "Directory where the cache to be used during the build is located."
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
- - choice:
- name: FORCE_BUILD
- choices:
- - 'false'
- - 'true'
- description: 'Force build even if there are no changes in the armband repo. Default false'
diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml
index 567456d9b..04ade724a 100644
--- a/jjb/armband/armband-verify-jobs.yml
+++ b/jjb/armband/armband-verify-jobs.yml
@@ -1,39 +1,38 @@
+---
- project:
name: 'armband-verify-jobs'
project: 'armband'
installer: 'fuel'
-#####################################
-# branch definitions
-#####################################
+ #####################################
+ # branch definitions
+ #####################################
stream:
- - master:
- branch: '{stream}'
- gs-pathname: ''
- disabled: false
- - danube:
- branch: 'stable/{stream}'
- gs-pathname: '/{stream}'
- disabled: false
-#####################################
-# patch verification phases
-#####################################
+ - master:
+ branch: '{stream}'
+ gs-pathname: ''
+ disabled: false
+ - euphrates:
+ branch: 'stable/{stream}'
+ gs-pathname: '/{stream}'
+ disabled: false
+ #####################################
+ # patch verification phases
+ #####################################
phase:
- - 'basic':
- slave-label: 'opnfv-build-enea'
- - 'build':
- slave-label: 'opnfv-build-enea'
- - 'deploy-virtual':
- slave-label: 'opnfv-build-enea'
- - 'smoke-test':
- slave-label: 'opnfv-build-enea'
-#####################################
-# jobs
-#####################################
+ - 'basic':
+ slave-label: 'armband-virtual'
+ - 'deploy-virtual':
+ slave-label: 'armband-virtual'
+ - 'smoke-test':
+ slave-label: 'armband-virtual'
+ #####################################
+ # jobs
+ #####################################
jobs:
- - 'armband-verify-{stream}'
- - 'armband-verify-{phase}-{stream}'
+ - 'armband-verify-{stream}'
+ - 'armband-verify-{phase}-{stream}'
#####################################
# job templates
#####################################
@@ -47,118 +46,110 @@
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 4
- option: 'project'
+ - logrotate-default
+ - throttle:
+ 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
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
triggers:
- - gerrit:
- server-name: 'gerrit.opnfv.org'
- 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: '{project}'
- branches:
- - branch-compare-type: 'ANT'
- branch-pattern: '**/{branch}'
- file-paths:
- - compare-type: ANT
- pattern: 'ci/**'
- - compare-type: ANT
- pattern: 'patches/**'
- disable-strict-forbidden-file-verification: 'true'
- forbidden-file-paths:
- - compare-type: ANT
- pattern: 'docs/**'
- readable-message: true
+ - gerrit:
+ server-name: 'gerrit.opnfv.org'
+ 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: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+ file-paths:
+ - compare-type: ANT
+ pattern: 'ci/**'
+ - compare-type: ANT
+ pattern: 'patches/**'
+ disable-strict-forbidden-file-verification: 'true'
+ forbidden-file-paths:
+ - compare-type: ANT
+ pattern: 'docs/**'
+ readable-message: true
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'opnfv-build-enea-defaults'
- - 'armband-verify-defaults':
- gs-pathname: '{gs-pathname}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - 'armband-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - multijob:
- name: basic
- condition: SUCCESSFUL
- projects:
- - name: 'armband-verify-basic-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: build
- condition: SUCCESSFUL
- projects:
- - name: 'armband-verify-build-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: deploy-virtual
- condition: SUCCESSFUL
- projects:
- - name: 'armband-verify-deploy-virtual-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-job: true
- - multijob:
- name: smoke-test
- condition: SUCCESSFUL
- projects:
- - name: 'armband-verify-smoke-test-{stream}'
- current-parameters: false
- predefined-parameters: |
- BRANCH=$BRANCH
- GERRIT_REFSPEC=$GERRIT_REFSPEC
- GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
- GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
- node-parameters: false
- kill-phase-on: FAILURE
- abort-all-job: true
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - multijob:
+ name: basic
+ condition: SUCCESSFUL
+ projects:
+ - name: 'armband-verify-basic-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: deploy-virtual
+ condition: SUCCESSFUL
+ projects:
+ - name: 'armband-verify-deploy-virtual-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
+ - multijob:
+ name: smoke-test
+ condition: SUCCESSFUL
+ projects:
+ - name: 'armband-verify-smoke-test-{stream}'
+ current-parameters: false
+ predefined-parameters: |
+ BRANCH=$BRANCH
+ GERRIT_REFSPEC=$GERRIT_REFSPEC
+ GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
+ GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-job: true
- job-template:
name: 'armband-verify-{phase}-{stream}'
@@ -168,88 +159,63 @@
concurrent: true
properties:
- - logrotate-default
- - throttle:
- enabled: true
- max-total: 6
- option: 'project'
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - 'armband-verify-deploy-.*'
- - 'armband-verify-test-.*'
- block-level: 'NODE'
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-total: 2
+ max-per-node: 1
+ option: 'project'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'armband-verify-deploy-.*'
+ - 'armband-verify-test-.*'
+ block-level: 'NODE'
scm:
- - git-scm-gerrit
+ - git-scm-gerrit
wrappers:
- - ssh-agent-wrapper
- - timeout:
- timeout: 360
- fail: true
+ - ssh-agent-wrapper
+ - timeout:
+ timeout: 360
+ fail: true
+
parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - '{slave-label}-defaults'
- - '{installer}-defaults'
- - 'armband-verify-defaults':
- gs-pathname: '{gs-pathname}'
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{slave-label}-defaults'
+ - 'armband-virtual-defaults':
+ installer: '{installer}'
+ - '{installer}-defaults':
+ gs-pathname: '{gs-pathname}'
builders:
- - description-setter:
- description: "Built on $NODE_NAME"
- - '{project}-verify-{phase}-macro'
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - '{project}-verify-{phase}-macro'
#####################################
# builder macros
#####################################
- builder:
name: 'armband-verify-basic-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "Not activated!"
-
-- builder:
- name: 'armband-verify-build-macro'
- builders:
- - shell:
- !include-raw: ./build.sh
- - shell:
- !include-raw: ./armband-workspace-cleanup.sh
+ echo "Not activated!"
- builder:
name: 'armband-verify-deploy-virtual-macro'
builders:
- - shell: |
- #!/bin/bash
-
- echo "Not activated!"
+ - shell:
+ !include-raw: ../fuel/fuel-deploy.sh
- builder:
name: 'armband-verify-smoke-test-macro'
builders:
- - shell: |
- #!/bin/bash
+ - shell: |
+ #!/bin/bash
- echo "Not activated!"
-#####################################
-# parameter macros
-#####################################
-- parameter:
- name: 'armband-verify-defaults'
- 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/$INSTALLER_TYPE
- description: "Directory where the cache to be used during the build is located."
- - string:
- name: GS_URL
- default: artifacts.opnfv.org/$PROJECT{gs-pathname}
- description: "URL to Google Storage."
+ echo "Not activated!"
diff --git a/jjb/armband/armband-workspace-cleanup.sh b/jjb/armband/armband-workspace-cleanup.sh
deleted file mode 100755
index d8948c7a0..000000000
--- a/jjb/armband/armband-workspace-cleanup.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o errexit
-set -o nounset
-set -o pipefail
-
-# delete the $WORKSPACE to open some space
-/bin/rm -rf $WORKSPACE
diff --git a/jjb/armband/build.sh b/jjb/armband/build.sh
deleted file mode 100755
index 29c01bb38..000000000
--- a/jjb/armband/build.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# Copyright (c) 2017 Enea AB.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-# disable Armband iso build for master branch
-if [[ "$BRANCH" == 'master' ]]; then
- touch $WORKSPACE/.noupload
- echo "--------------------------------------------------------"
- echo "Done!"
- exit 0
-fi
-
-set -o errexit
-set -o nounset
-set -o pipefail
-
-export TERM="vt220"
-
-echo "Host info: $(hostname) $(hostname -I)"
-
-cd $WORKSPACE
-
-# Armband requires initializing git submodules (e.g. for Fuel's clean_cache.sh)
-make submodules-init
-
-# remove the expired items from cache
-test -f $WORKSPACE/ci/clean_cache.sh && $WORKSPACE/ci/clean_cache.sh $CACHE_DIRECTORY
-
-LATEST_ISO_PROPERTIES=$WORKSPACE/latest.iso.properties
-if [[ "$JOB_NAME" =~ "daily" ]]; then
- # check to see if we already have an artifact on artifacts.opnfv.org
- # for this commit during daily builds
- echo "Checking to see if we already built and stored Armband Fuel ISO for this commit"
-
- curl -s -o $LATEST_ISO_PROPERTIES http://$GS_URL/latest.properties 2>/dev/null
-fi
-
-# get metadata of latest ISO
-if grep -q OPNFV_GIT_SHA1 $LATEST_ISO_PROPERTIES 2>/dev/null; then
- LATEST_ISO_SHA1=$(grep OPNFV_GIT_SHA1 $LATEST_ISO_PROPERTIES | cut -d'=' -f2)
- LATEST_ISO_URL=$(grep OPNFV_ARTIFACT_URL $LATEST_ISO_PROPERTIES | cut -d'=' -f2)
-else
- LATEST_ISO_SHA1=none
-fi
-
-# get current SHA1
-CURRENT_SHA1=$(git rev-parse HEAD)
-
-# set FORCE_BUILD to false for non-daily builds
-FORCE_BUILD=${FORCE_BUILD:-false}
-
-if [[ "$CURRENT_SHA1" == "$LATEST_ISO_SHA1" && "$FORCE_BUILD" == "false" ]]; then
- echo "***************************************************"
- echo " An ISO has already been built for this commit"
- echo " $LATEST_ISO_URL"
- echo "***************************************************"
-else
- echo "This commit has not been built yet or forced build! Proceeding with the build."
- /bin/rm -f $LATEST_ISO_PROPERTIES
- echo
-fi
-
-# log info to console
-echo "Starting the build of Armband $INSTALLER_TYPE. This could take some time..."
-echo "-----------------------------------------------------------"
-echo
-
-# create the cache directory if it doesn't exist
-mkdir -p $CACHE_DIRECTORY
-
-# set OPNFV_ARTIFACT_VERSION
-if [[ "$JOB_NAME" =~ "merge" ]]; then
- echo "Building Fuel ISO for a merged change"
- export OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER"
- echo "Not supported"
- exit 1
-else
- export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S")
-fi
-
-NOCACHE_PATTERN="verify: no-cache"
-if [[ "$JOB_NAME" =~ "verify" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "$NOCACHE_PATTERN" ]]; then
- echo "The cache will not be used for this build!"
- NOCACHE_ARG="-f P"
-fi
-NOCACHE_ARG=${NOCACHE_ARG:-}
-
-# start the build
-cd $WORKSPACE/ci
-./build.sh -v $OPNFV_ARTIFACT_VERSION $NOCACHE_ARG -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY
-
-# list the build artifacts
-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_SHA512SUM=$(sha512sum $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)"
- echo "OPNFV_BUILD_URL=$BUILD_URL"
-) > $WORKSPACE/opnfv.properties
-
-echo
-echo "--------------------------------------------------------"
-echo "Done!"
diff --git a/jjb/armband/upload-artifacts.sh b/jjb/armband/upload-artifacts.sh
deleted file mode 100755
index 97987e2c5..000000000
--- a/jjb/armband/upload-artifacts.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Ericsson AB and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-set -o pipefail
-
-# configurable environment variables:
-# ISOSTORE (/iso_mount/opnfv_ci)
-
-# check if we built something
-if [ -f $WORKSPACE/.noupload ]; then
- echo "Nothing new to upload. Exiting."
- /bin/rm -f $WORKSPACE/.noupload
- exit 0
-fi
-
-# source the opnfv.properties to get ARTIFACT_VERSION
-source $WORKSPACE/opnfv.properties
-
-
-# storing ISOs for verify & merge jobs will be done once we get the disk array
-if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
- # store ISO locally on NFS first
- ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}
- if [[ -d "$ISOSTORE" ]]; then
- ISOSTORE=${ISOSTORE}/${BRANCH##*/}
- mkdir -p $ISOSTORE
-
- # remove all but most recent 3 ISOs first to keep iso_mount clean & tidy
- cd $ISOSTORE
- ls -tp | grep -v '/' | tail -n +4 | xargs -d '\n' /bin/rm -f --
-
- # store ISO
- echo "Storing latest ISO in local storage"
- touch .storing
- /bin/cp -f $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \
- $ISOSTORE/opnfv-$OPNFV_ARTIFACT_VERSION.iso
- rm .storing
- fi
-fi
-
-# log info to console
-echo "Uploading armband artifacts. This could take some time..."
-echo
-
-echo "Started at $(date)"
-cd $WORKSPACE
-# upload artifact and additional files to google storage
-gsutil cp $BUILD_DIRECTORY/opnfv-$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
-if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then
- gsutil cp $WORKSPACE/opnfv.properties \
- gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1
-elif [[ "$JOB_NAME" =~ "merge" ]]; then
- echo "Uploaded Armband Fuel ISO for a merged change"
-fi
-echo "Ended at $(date)"
-
-gsutil -m setmeta \
- -h "Content-Type:text/html" \
- -h "Cache-Control:private, max-age=0, no-transform" \
- gs://$GS_URL/latest.properties \
- gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1
-
-gsutil -m setmeta \
- -h "Cache-Control:private, max-age=0, no-transform" \
- gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > /dev/null 2>&1
-
-# disabled errexit due to gsutil setmeta complaints
-# BadRequestException: 400 Invalid argument
-# check if we uploaded the file successfully to see if things are fine
-gsutil ls gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > /dev/null 2>&1
-if [[ $? -ne 0 ]]; then
- echo "Problem while uploading artifact!"
- echo "Check log $WORKSPACE/gsutil.iso.log on the machine where this build is done."
- exit 1
-fi
-
-echo "Done!"
-echo
-echo "--------------------------------------------------------"
-echo
-echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso"
-echo
-echo "--------------------------------------------------------"
-echo