summaryrefslogtreecommitdiffstats
path: root/jjb/fuel
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/fuel')
-rwxr-xr-xjjb/fuel/fuel-build.sh7
-rw-r--r--jjb/fuel/fuel-ci-jobs.yml318
-rwxr-xr-xjjb/fuel/fuel-deploy.sh55
-rwxr-xr-xjjb/fuel/fuel-download-artifact.sh26
-rw-r--r--jjb/fuel/fuel-project-jobs.yml6
-rwxr-xr-xjjb/fuel/fuel-upload-artifact.sh27
6 files changed, 386 insertions, 53 deletions
diff --git a/jjb/fuel/fuel-build.sh b/jjb/fuel/fuel-build.sh
index 42e373cbc..eaf1f83e7 100755
--- a/jjb/fuel/fuel-build.sh
+++ b/jjb/fuel/fuel-build.sh
@@ -31,14 +31,17 @@ fi
# get current SHA1
CURRENT_SHA1=$(git rev-parse HEAD)
-if [[ "$CURRENT_SHA1" == "$LATEST_ISO_SHA1" ]]; then
+# 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 "An ISO has already been built for this commit"
echo " $LATEST_ISO_URL"
echo "Nothing new to build. Exiting."
touch $WORKSPACE/.noupload
exit 0
else
- echo "This commit has not been built yet. Proceeding with the build."
+ echo "This commit has not been built yet or forced build! Proceeding with the build."
/bin/rm -f $LATEST_ISO_PROPERTIES
echo
fi
diff --git a/jjb/fuel/fuel-ci-jobs.yml b/jjb/fuel/fuel-ci-jobs.yml
index 33c54eced..e1816b528 100644
--- a/jjb/fuel/fuel-ci-jobs.yml
+++ b/jjb/fuel/fuel-ci-jobs.yml
@@ -35,6 +35,8 @@
#--------------------------------
# master
#--------------------------------
+ - opnfv-jump-2:
+ <<: *master
- ericsson-pod1:
<<: *master
- ericsson-pod2:
@@ -46,22 +48,23 @@
#--------------------------------
scenario:
# HA scenarios
- - 'os-onos-nofeature-ha':
-# auto-trigger-name: 'fuel-{scenario}-{pod}-trigger'
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ - 'os-nosdn-nofeature-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
- 'os-odl_l2-nofeature-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
- 'os-odl_l3-nofeature-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
+ - 'os-onos-nofeature-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
- 'os-odl_l2-bgpvpn-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
- - 'os-nosdn-nofeature-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
+ - 'os-odl_l2-sfc-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
- 'os-nosdn-kvm-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
- - 'os-nosdn-kvm_ovs-ha':
- auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
- 'os-nosdn-ovs-ha':
+ auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
+ - 'os-nosdn-kvm_ovs-ha':
auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
- 'os-nosdn-vlan-ha':
auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
@@ -82,6 +85,8 @@
auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
- 'os-odl_l2-bgpvpn-noha':
auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
+ - 'os-odl_l2-sfc-noha':
+ auto-trigger-name: 'brahmaputra-trigger-daily-disabled'
jobs:
- 'fuel-{scenario}-{pod}-daily-{stream}'
@@ -134,7 +139,7 @@
same-node: true
block: true
- trigger-builds:
- - project: 'functest-fuel-{pod}-daily-{stream}'
+ - project: 'yardstick-fuel-{pod}-daily-{stream}'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
@@ -145,7 +150,7 @@
failure-threshold: 'never'
unstable-threshold: 'FAILURE'
- trigger-builds:
- - project: 'yardstick-fuel-{pod}-daily-{stream}'
+ - project: 'functest-fuel-{pod}-daily-{stream}'
current-parameters: false
predefined-parameters:
DEPLOY_SCENARIO={scenario}
@@ -226,74 +231,319 @@
########################
# trigger macros
########################
-# os-onos3-nofeature-ha trigger
+# os-nosdn-nofeature-ha trigger
+# CI PODs
+#-----------------------------------------------
+# LF POD2 Triggers running against master branch
+#-----------------------------------------------
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 0 * * *'
- trigger:
- name: 'fuel-os-onos-nofeature-ha-opnfv-jump-2-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-opnfv-jump-2-master-trigger'
triggers:
- - timed: '0 20 * * *'
+ - timed: '0 3 * * *'
- trigger:
- name: 'fuel-os-onos-nofeature-ha-ericsson-pod1-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 6 * * *'
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 9 * * *'
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 12 * * *'
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 15 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 18 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-opnfv-jump-2-master-trigger'
+ triggers:
+ - timed: '0 21 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm-noha-opnfv-jump-2-master-trigger'
triggers:
- timed: ''
+#-----------------------------------------------
+# Ericsson POD2 Triggers running against brahmaputra branch
+#-----------------------------------------------
- trigger:
- name: 'fuel-os-onos-nofeature-ha-ericsson-pod2-trigger'
+ name: 'fuel-os-nosdn-nofeature-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 12 * * *'
+- trigger:
+ name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 15 * * *'
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 18 * * *'
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 21 * * *'
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 0 * * *'
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 3 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 6 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: '0 9 * * *'
+- trigger:
+ name: 'fuel-os-nosdn-kvm-noha-ericsson-pod2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+#-----------------------------------------------
+# Triggers for other PODs
+#-----------------------------------------------
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-nofeature-ha-virtual-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+
+# os-nosdn-kvm-ha trigger
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-virtual-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-onos-nofeature-ha-virtual-trigger'
+ name: 'fuel-os-nosdn-kvm-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-ha-virtual-brahmaputra-trigger'
triggers:
- timed: ''
# os-odl_l2-nofeature-ha trigger
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-opnfv-jump-2-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod1-master-trigger'
triggers:
- - timed: '0 0 * * *'
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod1-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod2-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod2-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-virtual-master-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-nofeature-ha-virtual-trigger'
+ name: 'fuel-os-odl_l2-nofeature-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-nofeature-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-nofeature-ha-virtual-brahmaputra-trigger'
triggers:
- timed: ''
# os-odl_l3-nofeature-ha trigger
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-opnfv-jump-2-trigger'
+ name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l3-nofeature-ha-virtual-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+
+# os-onos-nofeature-ha trigger
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-onos-nofeature-ha-virtual-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+
+
+# os-nosdn-ovs-ha trigger
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-ovs-ha-virtual-master-trigger'
triggers:
- - timed: '0 4 * * *'
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod1-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-opnfv-jump-2-brahmaputra-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-ericsson-pod2-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-ericsson-pod1-brahmaputra-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l3-nofeature-ha-virtual-trigger'
+ name: 'fuel-os-nosdn-ovs-ha-virtual-brahmaputra-trigger'
triggers:
- timed: ''
# os-odl_l2-bgpvpn-ha trigger
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-opnfv-jump-2-trigger'
+ name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+
+# os-odl_l2-sfc-ha trigger
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-ericsson-pod2-master-trigger'
triggers:
- - timed: '0 8 * * *'
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-virtual-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-opnfv-jump-2-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-ericsson-pod1-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-odl_l2-sfc-ha-virtual-brahmaputra-trigger'
+ triggers:
+ - timed: ''
+
+# os-nosdn-kvm-ha trigger
+- trigger:
+ name: 'fuel-os-nosdn-kvm-noha-ericsson-pod1-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-noha-ericsson-pod2-master-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'fuel-os-nosdn-kvm-noha-virtual-master-trigger'
+ triggers:
+ - timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod1-trigger'
+ name: 'fuel-os-nosdn-kvm-noha-opnfv-jump-2-brahmaputra-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-ericsson-pod2-trigger'
+ name: 'fuel-os-nosdn-kvm-noha-ericsson-pod1-brahmaputra-trigger'
triggers:
- timed: ''
- trigger:
- name: 'fuel-os-odl_l2-bgpvpn-ha-virtual-trigger'
+ name: 'fuel-os-nosdn-kvm-noha-virtual-brahmaputra-trigger'
triggers:
- timed: ''
diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh
index 62f2340a8..bab6151d8 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -88,4 +88,57 @@ $DEPLOY_COMMAND
echo
echo "--------------------------------------------------------"
-echo "Done!"
+echo "Deployment is done successfully!"
+
+# Quick and dirty fix for SFC scenatio - will be fixed properly post-release
+if [[ ! "$DEPLOY_SCENARIO" =~ "os-odl_l2-sfc" ]]; then
+ exit 0
+fi
+
+echo
+echo "SFC Scenario is deployed"
+echo
+
+# The stuff below is here temporarily and will be fixed once the release is out
+# The stuff below is here temporarily and will be fixed once the release is out
+export FUEL_MASTER_IP=10.20.0.2
+export TACKER_SCRIPT_URL="https://git.opnfv.org/cgit/fuel/plain/prototypes/sfc_tacker/poc.tacker-up.sh?h=${GIT_BRANCH#*/}"
+export CONTROLLER_NODE_IP=$(sshpass -pr00tme /usr/bin/ssh -o UserKnownHostsFile=/dev/null \
+ -o StrictHostKeyChecking=no root@$FUEL_MASTER_IP 'fuel node list' | \
+ grep opendaylight | cut -d'|' -f5)
+
+# we can't do much if we do not have the controller IP
+if [[ ! "$CONTROLLER_NODE_IP" =~ "10.20.0" ]]; then
+ echo "Unable to retrieve controller IP"
+ exit 1
+fi
+
+echo
+echo "Copying and executing poc.tacker-up.sh script on controller node $CONTROLLER_NODE_IP"
+echo
+
+expect << END
+spawn /usr/bin/ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root $::env(FUEL_MASTER_IP)
+expect {
+ -re ".*sword.*" {
+ exp_send "r00tme\r"
+ }
+}
+expect "# "
+send "/usr/bin/ssh -l root $::env(CONTROLLER_NODE_IP)\r"
+expect "# "
+send "sudo apt-get install -y git\r"
+expect "# "
+send "/bin/mkdir -p /root/sfc-poc && cd /root/sfc-poc\r"
+expect "# "
+send "git clone https://gerrit.opnfv.org/gerrit/fuel && cd fuel\r"
+expect "# "
+send "git fetch https://gerrit.opnfv.org/gerrit/fuel refs/changes/97/10597/2 && git checkout FETCH_HEAD\r"
+expect "# "
+send "/bin/bash /root/sfc-poc/fuel/prototypes/sfc_tacker/poc.tacker-up.sh\r"
+expect "# "
+send "exit\r"
+expect "Connection to $::env(CONTROLLER_NODE_IP) closed. "
+send "exit\r"
+expect "Connection to $::env(FUEL_MASTER_IP) closed. "
+END
diff --git a/jjb/fuel/fuel-download-artifact.sh b/jjb/fuel/fuel-download-artifact.sh
index a3769b112..d78ddc5ba 100755
--- a/jjb/fuel/fuel-download-artifact.sh
+++ b/jjb/fuel/fuel-download-artifact.sh
@@ -8,7 +8,6 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
set -o errexit
-set -o nounset
set -o pipefail
if [[ "$JOB_NAME" =~ "merge" ]]; then
@@ -31,15 +30,22 @@ source latest.properties
OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/}
echo "Using $OPNFV_ARTIFACT for deployment"
-# check if we already have the ISO to avoid redownload
-# disabled for the timebeing - needs adjustments
-#ISO_STORE=$HOME/opnfv/iso_store/fuel
-#if [[ -f "$ISO_STORE/$OPNFV_ARTIFACT" ]]; then
-# echo "ISO already exists. Skipping the download"
-# ln -s $ISO_STORE/$OPNFV_ARTIFACT $WORKSPACE/opnfv.iso
-# ls -al $WORKSPACE/opnfv.iso
-# exit 0
-#fi
+# 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/${GIT_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
+fi
# log info to console
echo "Downloading the $INSTALLER_TYPE artifact using URL http://$OPNFV_ARTIFACT_URL"
diff --git a/jjb/fuel/fuel-project-jobs.yml b/jjb/fuel/fuel-project-jobs.yml
index e42aa9012..d1855f86e 100644
--- a/jjb/fuel/fuel-project-jobs.yml
+++ b/jjb/fuel/fuel-project-jobs.yml
@@ -44,6 +44,12 @@
project: '{project}'
- 'ericsson-build-defaults'
- '{installer}-defaults'
+ - choice:
+ name: FORCE_BUILD
+ choices:
+ - 'false'
+ - 'true'
+ description: "Force build even if there is no changes in fuel repo. Default false"
- fuel-project-parameter:
gs-pathname: '{gs-pathname}'
diff --git a/jjb/fuel/fuel-upload-artifact.sh b/jjb/fuel/fuel-upload-artifact.sh
index cf74eb459..47cf8985c 100755
--- a/jjb/fuel/fuel-upload-artifact.sh
+++ b/jjb/fuel/fuel-upload-artifact.sh
@@ -7,7 +7,6 @@
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-set -o nounset
set -o pipefail
# check if we built something
@@ -17,14 +16,30 @@ if [ -f $WORKSPACE/.noupload ]; then
exit 0
fi
-# log info to console
-echo
-echo "Uploading the $INSTALLER_TYPE artifact. This could take some time..."
-echo
-
# 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="/iso_mount/opnfv_ci/${GIT_BRANCH##*/}"
+ if [[ -d "$ISOSTORE" ]]; then
+ # remove all but most recent 5 ISOs first to keep iso_mount clean & tidy
+ cd $ISOSTORE
+ ls -tp | grep -v '/' | tail -n +6 | xargs -d '\n' /bin/rm -f --
+
+ # store ISO
+ echo "Storing $INSTALLER_TYPE artifact on NFS..."
+ /bin/cp -f $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \
+ $ISOSTORE/opnfv-$OPNFV_ARTIFACT_VERSION.iso
+ fi
+fi
+
+# log info to console
+echo "Uploading $INSTALLER_TYPE artifact. This could take some time..."
+echo
+
+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