Merge "Remove INFO file as we've migrated to INFO.yaml"
authorAric Gardner <agardner@linuxfoundation.org>
Wed, 6 Jun 2018 19:48:41 +0000 (19:48 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Wed, 6 Jun 2018 19:48:41 +0000 (19:48 +0000)
168 files changed:
docs/ci/index.rst
docs/infra/index.rst
docs/infra/jenkins/connect-to-jenkins.rst
docs/release/index.rst
jjb/3rd_party_ci/odl-netvirt.yaml [moved from jjb/3rd_party_ci/odl-netvirt.yml with 100% similarity]
jjb/apex/apex-build.sh
jjb/apex/apex-deploy.sh
jjb/apex/apex-download-artifact.sh
jjb/apex/apex-jjb-renderer.py
jjb/apex/apex-project-jobs.yaml [moved from jjb/apex/apex-project-jobs.yml with 100% similarity]
jjb/apex/apex-snapshot-create.sh
jjb/apex/apex-verify-jobs.yaml [moved from jjb/apex/apex-verify-jobs.yml with 97% similarity]
jjb/apex/apex.yaml [moved from jjb/apex/apex.yml with 96% similarity]
jjb/apex/apex.yaml.j2 [moved from jjb/apex/apex.yml.j2 with 96% similarity]
jjb/apex/scenarios.yaml.hidden
jjb/armband/armband-ci-jobs.yaml [moved from jjb/armband/armband-ci-jobs.yml with 99% similarity]
jjb/armband/armband-verify-jobs.yaml [moved from jjb/armband/armband-verify-jobs.yml with 100% similarity]
jjb/auto/auto.yaml [new file with mode: 0644]
jjb/auto/auto.yml [deleted file]
jjb/availability/availability.yaml [moved from jjb/availability/availability.yml with 100% similarity]
jjb/barometer/barometer.yaml [moved from jjb/barometer/barometer.yml with 100% similarity]
jjb/bottlenecks/bottlenecks-ci-jobs.yaml [moved from jjb/bottlenecks/bottlenecks-ci-jobs.yml with 100% similarity]
jjb/bottlenecks/bottlenecks-project-jobs.yaml [moved from jjb/bottlenecks/bottlenecks-project-jobs.yml with 100% similarity]
jjb/calipso/calipso.yaml [moved from jjb/calipso/calipso.yml with 100% similarity]
jjb/ci_gate_security/opnfv-ci-gate-security.yaml [moved from jjb/ci_gate_security/opnfv-ci-gate-security.yml with 98% similarity]
jjb/clover/clover-project.yaml [moved from jjb/clover/clover-project.yml with 100% similarity]
jjb/compass4nfv/compass-ci-jobs.yaml [moved from jjb/compass4nfv/compass-ci-jobs.yml with 100% similarity]
jjb/compass4nfv/compass-dovetail-jobs.yaml [moved from jjb/compass4nfv/compass-dovetail-jobs.yml with 100% similarity]
jjb/compass4nfv/compass-project-jobs.yaml [moved from jjb/compass4nfv/compass-project-jobs.yml with 100% similarity]
jjb/compass4nfv/compass-verify-jobs.yaml [moved from jjb/compass4nfv/compass-verify-jobs.yml with 100% similarity]
jjb/conductor/conductor.yaml [moved from jjb/conductor/conductor.yml with 100% similarity]
jjb/container4nfv/container4nfv-arm64.yaml [moved from jjb/container4nfv/container4nfv-arm64.yml with 100% similarity]
jjb/container4nfv/container4nfv-project.yaml [moved from jjb/container4nfv/container4nfv-project.yml with 100% similarity]
jjb/container4nfv/yardstick-arm64.yaml [moved from jjb/container4nfv/yardstick-arm64.yml with 100% similarity]
jjb/copper/copper.yaml [moved from jjb/copper/copper.yml with 100% similarity]
jjb/cperf/cperf-ci-jobs.yaml [moved from jjb/cperf/cperf-ci-jobs.yml with 100% similarity]
jjb/daisy4nfv/daisy-daily-jobs.yaml [moved from jjb/daisy4nfv/daisy-daily-jobs.yml with 99% similarity]
jjb/daisy4nfv/daisy-project-jobs.yaml [moved from jjb/daisy4nfv/daisy-project-jobs.yml with 99% similarity]
jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml [moved from jjb/daisy4nfv/daisy4nfv-merge-jobs.yml with 99% similarity]
jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml [moved from jjb/daisy4nfv/daisy4nfv-verify-jobs.yml with 99% similarity]
jjb/doctor/doctor.yaml [moved from jjb/doctor/doctor.yml with 98% similarity]
jjb/domino/domino.yaml [moved from jjb/domino/domino.yml with 100% similarity]
jjb/dovetail/dovetail-artifacts-upload.yaml [moved from jjb/dovetail/dovetail-artifacts-upload.yml with 100% similarity]
jjb/dovetail/dovetail-ci-jobs.yaml [moved from jjb/dovetail/dovetail-ci-jobs.yml with 100% similarity]
jjb/dovetail/dovetail-project-jobs.yaml [moved from jjb/dovetail/dovetail-project-jobs.yml with 100% similarity]
jjb/dovetail/dovetail-run.sh
jjb/dovetail/dovetail-weekly-jobs.yaml [moved from jjb/dovetail/dovetail-weekly-jobs.yml with 100% similarity]
jjb/dpacc/dpacc.yaml [moved from jjb/dpacc/dpacc.yml with 100% similarity]
jjb/escalator/escalator.yaml [moved from jjb/escalator/escalator.yml with 100% similarity]
jjb/fuel/fuel-daily-jobs.yaml [moved from jjb/fuel/fuel-daily-jobs.yml with 97% similarity]
jjb/fuel/fuel-deploy.sh
jjb/fuel/fuel-project-jobs.yaml [moved from jjb/fuel/fuel-project-jobs.yml with 100% similarity]
jjb/fuel/fuel-verify-jobs.yaml [moved from jjb/fuel/fuel-verify-jobs.yml with 100% similarity]
jjb/fuel/fuel-weekly-jobs.yaml [moved from jjb/fuel/fuel-weekly-jobs.yml with 100% similarity]
jjb/functest/functest-daily-jobs.yaml [moved from jjb/functest/functest-daily-jobs.yml with 93% similarity]
jjb/functest/functest-docker.yaml [moved from jjb/functest/functest-docker.yml with 100% similarity]
jjb/functest/functest-kubernetes-docker.yaml [moved from jjb/functest/functest-kubernetes-docker.yml with 100% similarity]
jjb/functest/functest-kubernetes-project-jobs.yaml [moved from jjb/functest/functest-kubernetes-project-jobs.yml with 100% similarity]
jjb/functest/functest-project-jobs.yaml [moved from jjb/functest/functest-project-jobs.yml with 100% similarity]
jjb/functest/functest-weekly-jobs.yaml [moved from jjb/functest/functest-weekly-jobs.yml with 100% similarity]
jjb/functest/xtesting-docker.yaml [moved from jjb/functest/xtesting-docker.yml with 100% similarity]
jjb/functest/xtesting-project-jobs.yaml [moved from jjb/functest/xtesting-project-jobs.yml with 100% similarity]
jjb/global-jjb
jjb/global/basic-jobs.yaml [moved from jjb/global/basic-jobs.yml with 100% similarity]
jjb/global/installer-params.yaml [moved from jjb/global/installer-params.yml with 100% similarity]
jjb/global/releng-defaults.yaml [moved from jjb/global/releng-defaults.yml with 100% similarity]
jjb/global/releng-macros.yaml [moved from jjb/global/releng-macros.yml with 94% similarity]
jjb/global/slave-params.yaml [moved from jjb/global/slave-params.yml with 99% similarity]
jjb/ipv6/ipv6.yaml [moved from jjb/ipv6/ipv6.yml with 100% similarity]
jjb/joid/joid-daily-jobs.yaml [moved from jjb/joid/joid-daily-jobs.yml with 100% similarity]
jjb/joid/joid-verify-jobs.yaml [moved from jjb/joid/joid-verify-jobs.yml with 100% similarity]
jjb/kvmfornfv/kvmfornfv.yaml [moved from jjb/kvmfornfv/kvmfornfv.yml with 100% similarity]
jjb/models/models.yaml [moved from jjb/models/models.yml with 100% similarity]
jjb/moon/moon.yaml [moved from jjb/moon/moon.yml with 100% similarity]
jjb/netready/netready.yaml [moved from jjb/netready/netready.yml with 100% similarity]
jjb/nfvbench/nfvbench.yaml [moved from jjb/nfvbench/nfvbench.yml with 100% similarity]
jjb/onosfw/onosfw.yaml [moved from jjb/onosfw/onosfw.yml with 100% similarity]
jjb/openci/create-ane.sh [new file with mode: 0755]
jjb/openci/create-cde.sh [new file with mode: 0755]
jjb/openci/create-clme.sh [new file with mode: 0755]
jjb/openci/openci-odl-daily-jobs.yaml [new file with mode: 0644]
jjb/openci/openci-onap-daily-jobs.yaml [new file with mode: 0644]
jjb/openci/openci-opnfv-daily-jobs.yaml [new file with mode: 0644]
jjb/opera/opera-daily-jobs.yaml [moved from jjb/opera/opera-daily-jobs.yml with 100% similarity]
jjb/opera/opera-project-jobs.yaml [moved from jjb/opera/opera-project-jobs.yml with 100% similarity]
jjb/opera/opera-verify-jobs.yaml [moved from jjb/opera/opera-verify-jobs.yml with 100% similarity]
jjb/opnfvdocs/opnfvdocs.yaml [moved from jjb/opnfvdocs/opnfvdocs.yml with 100% similarity]
jjb/orchestra/orchestra-daily-jobs.yaml [moved from jjb/orchestra/orchestra-daily-jobs.yml with 100% similarity]
jjb/orchestra/orchestra-project-jobs.yaml [moved from jjb/orchestra/orchestra-project-jobs.yml with 100% similarity]
jjb/ovn4nfv/ovn4nfv-daily-jobs.yaml [moved from jjb/ovn4nfv/ovn4nfv-daily-jobs.yml with 100% similarity]
jjb/ovn4nfv/ovn4nfv-project-jobs.yaml [moved from jjb/ovn4nfv/ovn4nfv-project-jobs.yml with 100% similarity]
jjb/ovsnfv/ovsnfv.yaml [moved from jjb/ovsnfv/ovsnfv.yml with 100% similarity]
jjb/parser/parser.yaml [moved from jjb/parser/parser.yml with 100% similarity]
jjb/pharos/check-jinja2.yaml [moved from jjb/pharos/check-jinja2.yml with 100% similarity]
jjb/pharos/pharos.yaml [moved from jjb/pharos/pharos.yml with 100% similarity]
jjb/promise/promise.yaml [moved from jjb/promise/promise.yml with 100% similarity]
jjb/qtip/qtip-experimental-jobs.yaml [moved from jjb/qtip/qtip-experimental-jobs.yml with 100% similarity]
jjb/qtip/qtip-validate-jobs.yaml [moved from jjb/qtip/qtip-validate-jobs.yml with 100% similarity]
jjb/qtip/qtip-verify-jobs.yaml [moved from jjb/qtip/qtip-verify-jobs.yml with 100% similarity]
jjb/releng/artifact-cleanup.yaml [moved from jjb/releng/artifact-cleanup.yml with 100% similarity]
jjb/releng/compass4nfv-docker.yaml [moved from jjb/releng/compass4nfv-docker.yml with 61% similarity]
jjb/releng/opnfv-docker-arm.yaml [moved from jjb/releng/opnfv-docker-arm.yml with 100% similarity]
jjb/releng/opnfv-docker-custom.yaml [moved from jjb/releng/opnfv-docker-custom.yml with 100% similarity]
jjb/releng/opnfv-docker.sh
jjb/releng/opnfv-docker.yaml [moved from jjb/releng/opnfv-docker.yml with 100% similarity]
jjb/releng/opnfv-lint.yaml [moved from jjb/releng/opnfv-lint.yml with 98% similarity]
jjb/releng/opnfv-utils.yaml [moved from jjb/releng/opnfv-utils.yml with 100% similarity]
jjb/releng/releng-ci-jobs.yaml [new file with mode: 0644]
jjb/releng/releng-ci-jobs.yml [deleted file]
jjb/releng/releng-release-create-venv.sh [moved from jjb/releng/releng-release-verify.sh with 51% similarity]
jjb/releng/releng-release-jobs.yaml [moved from jjb/releng/releng-release-jobs.yml with 82% similarity]
jjb/releng/releng-release-tagging.sh [new file with mode: 0644]
jjb/releng/testresults-automate.yaml [moved from jjb/releng/testresults-automate.yml with 100% similarity]
jjb/releng/testresults-verify.yaml [moved from jjb/releng/testresults-verify.yml with 100% similarity]
jjb/releng/verify-releng.sh [deleted file]
jjb/securedlab/check-jinja2.yaml [moved from jjb/securedlab/check-jinja2.yml with 100% similarity]
jjb/sfc/sfc-project-jobs.yaml [moved from jjb/sfc/sfc-project-jobs.yml with 100% similarity]
jjb/snaps/snaps-verify-jobs.yaml [moved from jjb/snaps/snaps-verify-jobs.yml with 100% similarity]
jjb/stor4nfv/stor4nfv-project.yaml [moved from jjb/stor4nfv/stor4nfv-project.yml with 100% similarity]
jjb/storperf/storperf-daily-jobs.yaml [moved from jjb/storperf/storperf-daily-jobs.yml with 100% similarity]
jjb/storperf/storperf-verify-jobs.yaml [moved from jjb/storperf/storperf-verify-jobs.yml with 100% similarity]
jjb/storperf/storperf.yaml [moved from jjb/storperf/storperf.yml with 100% similarity]
jjb/ves/ves.yaml [moved from jjb/ves/ves.yml with 100% similarity]
jjb/vnf_forwarding_graph/vnf_forwarding_graph.yaml [moved from jjb/vnf_forwarding_graph/vnf_forwarding_graph.yml with 100% similarity]
jjb/vswitchperf/vswitchperf.yaml [moved from jjb/vswitchperf/vswitchperf.yml with 100% similarity]
jjb/xci/bifrost-cleanup-job.yaml [moved from jjb/xci/bifrost-cleanup-job.yml with 100% similarity]
jjb/xci/bifrost-periodic-jobs.yaml [moved from jjb/xci/bifrost-periodic-jobs.yml with 100% similarity]
jjb/xci/bifrost-verify-jobs.yaml [moved from jjb/xci/bifrost-verify-jobs.yml with 95% similarity]
jjb/xci/osa-periodic-jobs.yaml [moved from jjb/xci/osa-periodic-jobs.yml with 100% similarity]
jjb/xci/xci-daily-jobs.yaml [moved from jjb/xci/xci-daily-jobs.yml with 96% similarity]
jjb/xci/xci-merge-jobs.yaml [moved from jjb/xci/xci-merge-jobs.yml with 97% similarity]
jjb/xci/xci-run-functest.sh
jjb/xci/xci-set-scenario.sh
jjb/xci/xci-start-new-vm.sh
jjb/xci/xci-verify-jobs.yaml [moved from jjb/xci/xci-verify-jobs.yml with 96% similarity]
jjb/yardstick/yardstick-daily-jobs.yaml [moved from jjb/yardstick/yardstick-daily-jobs.yml with 100% similarity]
jjb/yardstick/yardstick-project-jobs.yaml [moved from jjb/yardstick/yardstick-project-jobs.yml with 100% similarity]
releases/fraser/apex.yaml
releases/fraser/armband.yaml [moved from releases/fraser/armband.yml with 90% similarity]
releases/fraser/auto.yaml
releases/fraser/availability.yaml
releases/fraser/barometer.yaml
releases/fraser/bottlenecks.yaml
releases/fraser/calipso.yaml
releases/fraser/clover.yaml
releases/fraser/compass4nfv.yaml
releases/fraser/container4nfv.yaml
releases/fraser/doctor.yaml
releases/fraser/fds.yaml
releases/fraser/fuel.yaml
releases/fraser/functest.yaml
releases/fraser/ipv6.yaml
releases/fraser/joid.yaml
releases/fraser/nfvbench.yaml
releases/fraser/opnfvdocs.yaml
releases/fraser/ovn4nfv.yaml
releases/fraser/samplevnf.yaml
releases/fraser/sdnvpn.yaml
releases/fraser/sfc.yaml
releases/fraser/snaps.yaml
releases/fraser/stor4nfv.yaml
releases/fraser/storperf.yaml
releases/fraser/vswitchperf.yaml
releases/fraser/yardstick.yaml
releases/scripts/release-status.sh [new file with mode: 0644]
releases/scripts/repos.py [new file with mode: 0644]
utils/build-server-ansible/vars/CentOS.yml
utils/build-server-ansible/vars/Ubuntu.yml

index da6fc7d..08f23ac 100644 (file)
@@ -11,7 +11,6 @@ OPNFV CI
 TBD
 
 .. toctree::
-   :numbered:
    :maxdepth: 2
 
    user-guide
index 50c971e..248e823 100644 (file)
@@ -70,7 +70,7 @@ Issue and Bug Tracking
 JIRA
 
 .. toctree::
-   :maxdepth:
+   :maxdepth: 1
 
    jira/user-guide
 
index e83cada..ddf345f 100644 (file)
@@ -113,54 +113,80 @@ Please follow below steps to connect a slave to OPNFV Jenkins.
 
   1. Create a user named **jenkins** on the machine you want to connect to OPNFV Jenkins and give the user sudo rights.
   2. Install needed software on the machine you want to connect to OPNFV Jenkins as slave.
+
     - openjdk 8
     - monit
+
   3. If the slave will be used for running virtual deployments, Functest, and Yardstick, install below software and make jenkins user the member of the groups.
+
     - docker
     - libvirt
+
   4. Create slave root in Jenkins user home directory.
+
     ``mkdir -p /home/jenkins/opnfv/slave_root``
+
   5. Clone OPNFV Releng Git repository.
+
     ``mkdir -p /home/jenkins/opnfv/repos``
 
     ``cd /home/jenkins/opnfv/repos``
 
     ``git clone https://gerrit.opnfv.org/gerrit/p/releng.git``
+
   6. Contact LF by sending mail to `OPNFV LF Helpdesk <opnfv-helpdesk@rt.linuxfoundation.org>`_ and request creation of a slave on OPNFV Jenkins. Include below information in your mail.
+
     - Slave root (/home/jenkins/opnfv/slave_root)
     - Public IP of the slave (You can get the IP by executing ``curl http://icanhazip.com/``)
     - PGP Key (attached to the mail or exported to a key server)
+
   7. Once you get confirmation from LF stating that your slave is created on OPNFV Jenkins, check if the firewall on LF is open for the server you are trying to connect to Jenkins.
+
     ``cp /home/jenkins/opnfv/repos/releng/utils/jenkins-jnlp-connect.sh /home/jenkins/``
     ``cd /home/jenkins/``
     ``sudo ./jenkins-jnlp-connect.sh -j /home/jenkins -u jenkins -n  <slave name on OPNFV Jenkins> -s <the token you received from LF> -f``
 
      - If you receive an error, follow the steps listed on the command output.
+
   8. Run the same script with test(-t) on foreground in order to make sure no problem on connection. You should see **INFO: Connected** in the console log.
+
     ``sudo ./jenkins-jnlp-connect.sh -j /home/jenkins -u jenkins -n <slave name on OPNFV Jenkins> -s <the token you received from LF> -t``
 
      - If you receive an error similar to the one shown `on this link <http://hastebin.com/ozadagirax.avrasm>`_, you need to check your firewall and allow outgoing connections for the port.
+
   9. Kill the Java slave.jar process.
   10. Run the same script normally without test(-t) in order to get monit script created.
+
     ``sudo ./jenkins-jnlp-connect.sh -j /home/jenkins -u jenkins -n <slave name on OPNFV Jenkins> -s <the token you received from LF>``
+
   11. Edit monit configuration and enable http interface. The file to edit is /etc/monit/monitrc on Ubuntu systems. Uncomment below lines.
+
     set httpd port 2812 and
         use address localhost  # only accept connection from localhost
         allow localhost        # allow localhost to connect to the server and
+
   12. Restart monit service.
+
     - Without systemd:
 
       ``sudo service monit restart``
+
     - With systemd: you have to enable monit service first and then restart it.
 
       ``sudo systemctl enable monit``
 
       ``sudo systemctl restart monit``
+
   13. Check to see if jenkins comes up as managed service in monit.
+
     ``sudo monit status``
+
   14. Connect slave to OPNFV Jenkins using monit.
+
     ``sudo monit start jenkins``
+
   15. Check slave on OPNFV Jenkins to verify the slave is reported as connected.
+
     - The slave on OPNFV Jenkins should have some executors in “Idle” state if the connection is successful.
 
 Notes
index 49cd00b..e814bec 100644 (file)
@@ -9,7 +9,6 @@ Releasing OPNFV
 ===============
 
 .. toctree::
-   :numbered:
    :maxdepth: 2
 
    release-process
index aabd20e..09aa716 100755 (executable)
@@ -12,21 +12,26 @@ echo
 if echo $ARTIFACT_VERSION | grep "dev" 1> /dev/null; then
   GERRIT_PATCHSET_NUMBER=$(echo $GERRIT_REFSPEC | grep -Eo '[0-9]+$')
   export OPNFV_ARTIFACT_VERSION="dev${GERRIT_CHANGE_NUMBER}_${GERRIT_PATCHSET_NUMBER}"
-  export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+  if [ "$BRANCH" == 'master' ]; then
+    # build rpm
+    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
+  else
+    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+  fi
 elif echo $BUILD_TAG | grep "csit" 1> /dev/null; then
   export OPNFV_ARTIFACT_VERSION=csit${BUILD_NUMBER}
   export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
 elif [ "$ARTIFACT_VERSION" == "daily" ]; then
   export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d")
   if [ "$BRANCH" == 'master' ]; then
-    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
   else
     export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
   fi
 else
   export OPNFV_ARTIFACT_VERSION=${ARTIFACT_VERSION}
   if [ "$BRANCH" == 'master' ]; then
-    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY"
+    export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --rpms"
   else
     export BUILD_ARGS="-r $OPNFV_ARTIFACT_VERSION -c $CACHE_DIRECTORY --iso"
   fi
index 35c2b85..dfaf2a8 100755 (executable)
@@ -118,11 +118,8 @@ if [[ "$JOB_NAME" =~ "virtual" ]]; then
   if [[ "${DEPLOY_SCENARIO}" =~ fdio|ovs ]]; then
     DEPLOY_CMD="${DEPLOY_CMD} --virtual-default-ram 12 --virtual-compute-ram 7"
   fi
-  if [[ "$JOB_NAME" == *csit* ]]; then
-    DEPLOY_CMD="${DEPLOY_CMD} -e csit-environment.yaml"
-  fi
   if [[ "$PROMOTE" == "True" ]]; then
-    DEPLOY_CMD="${DEPLOY_CMD} --virtual-computes 1"
+    DEPLOY_CMD="${DEPLOY_CMD} --virtual-computes 2 -e csit-environment.yaml"
   fi
 else
   # settings for bare metal deployment
@@ -144,6 +141,8 @@ fi
 
 if [ "$IPV6_FLAG" == "True" ]; then
   NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_v6.yaml"
+elif [[ "$PROMOTE" == "True" ]]; then
+  NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings_csit.yaml"
 else
   NETWORK_FILE="${NETWORK_SETTINGS_DIR}/network_settings.yaml"
 fi
@@ -157,7 +156,7 @@ fi
 # start deployment
 sudo ${DEPLOY_CMD} -d ${DEPLOY_FILE} -n ${NETWORK_FILE} --debug
 
-if [[ "$JOB_NAME" == *csit* ]]; then
+if [[ "$PROMOTE" == 'True' ]]; then
   echo "CSIT job: setting host route for floating ip routing"
   # csit route to allow docker container to reach floating ips
   UNDERCLOUD=$(sudo virsh domifaddr undercloud | grep -Eo "[0-9\.]+{3}[0-9]+")
index 3efe1cb..e1e51b3 100755 (executable)
@@ -45,10 +45,9 @@ else
 
   RPM_INSTALL_PATH=$(echo "http://"$OPNFV_RPM_URL | sed 's/\/'"$(basename $OPNFV_RPM_URL)"'//')
   RPM_LIST=$(basename $OPNFV_RPM_URL)
-
+  # find version of RPM
+  VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)')
   if [ "$BRANCH" != 'master' ]; then
-    # find version of RPM
-    VERSION_EXTENSION=$(echo $(basename $RPM_LIST) | grep -Eo '[0-9]+\.[0-9]+-([0-9]{8}|[a-z]+-[0-9]\.[0-9]+)')
     # build RPM List which already includes base Apex RPM
     RPM_LIST+=" opnfv-apex-undercloud-${VERSION_EXTENSION}.noarch.rpm"
     RPM_LIST+=" python34-opnfv-apex-${VERSION_EXTENSION}.noarch.rpm"
index b677843..0da47b5 100644 (file)
@@ -25,7 +25,7 @@ def render_jjb():
     with open('scenarios.yaml.hidden') as _:
         scenarios = yaml.safe_load(_)
 
-    template = env.get_template('apex.yml.j2')
+    template = env.get_template('apex.yaml.j2')
 
     print("Scenarios are: ")
     pprint.pprint(scenarios)
@@ -42,7 +42,7 @@ def render_jjb():
     output = template.render(scenarios=scenarios, gspathname=gspathname,
                              branch=branch, build_slave=build_slave)
 
-    with open('./apex.yml', 'w') as fh:
+    with open('./apex.yaml', 'w') as fh:
         fh.write(output)
 
 if __name__ == "__main__":
index 342896c..7e38d56 100644 (file)
@@ -78,9 +78,7 @@ for node in $nodes; do
 done
 
 # copy virsh net definitions
-for net in admin api external storage tenant; do
-  sudo virsh net-dumpxml ${net} > ${net}.xml
-done
+sudo virsh net-dumpxml admin > admin.xml
 
 sudo chown jenkins-ci:jenkins-ci *
 
similarity index 97%
rename from jjb/apex/apex-verify-jobs.yml
rename to jjb/apex/apex-verify-jobs.yaml
index 7dbd670..fd6be6e 100644 (file)
       - master: &master
           branch: '{stream}'
           gs-pathname: ''
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           disabled: false
       - fraser: &fraser
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           disabled: false
       - danube: &danube
           branch: 'stable/{stream}'
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                FUNCTEST_SUITE_NAME=tempest_smoke_serial
+                FUNCTEST_MODE=testcase
               node-parameters: false
               kill-phase-on: FAILURE
               abort-all-job: true
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-virtual.*'
+            - 'apex-.*-promote.*'
       - throttle:
           max-per-node: 1
           max-total: 10
               current-parameters: false
               predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
-                FUNCTEST_MODE=tier
-                FUNCTEST_TIER=healthcheck
+                FUNCTEST_SUITE_NAME=tempest_smoke_serial
+                FUNCTEST_MODE=testcase
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
similarity index 96%
rename from jjb/apex/apex.yml
rename to jjb/apex/apex.yaml
index 587a063..bb5b53d 100644 (file)
@@ -8,7 +8,7 @@
       - 'apex-virtual-{stream}'
       - 'apex-deploy-{platform}-{stream}'
       - 'apex-daily-{stream}'
-      - 'apex-csit-promote-daily-{stream}'
+      - 'apex-csit-promote-daily-{stream}-{os_version}'
       - 'apex-fdio-promote-daily-{stream}'
       - 'apex-{scenario}-baremetal-{scenario_stream}'
       - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
@@ -25,7 +25,7 @@
           build-slave: 'apex-build-master'
           virtual-slave: 'apex-virtual-master'
           baremetal-slave: 'apex-baremetal-master'
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           scenario_stream: 'master'
           disable_daily: false
           disable_promote: false
@@ -35,7 +35,7 @@
           build-slave: 'apex-build-master'
           virtual-slave: 'apex-virtual-master'
           baremetal-slave: 'apex-baremetal-master'
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           scenario_stream: 'fraser'
           disable_daily: false
           disable_promote: true
           <<: *danube
       - 'os-ovn-nofeature-noha':
           <<: *danube
-      - 'os-odl-master_upstream-noha':
+      - 'os-odl-nofeature-noha':
           <<: *master
-      - 'os-odl-queens_upstream-noha':
+      - 'os-odl-nofeature-ha':
+          <<: *master
+      - 'os-odl-queens-noha':
+          <<: *master
+      - 'os-odl-queens-ha':
           <<: *master
       - 'os-nosdn-nofeature-noha':
           <<: *euphrates
       - 'virtual'
 
     os_version:
-      - 'pike'
-      - 'queens'
-      - 'master'
+      - 'pike':
+          os_scenario: 'pike'
+      - 'queens':
+          os_scenario: 'queens'
+      - 'master':
+          os_scenario: 'nofeature'
 
 
 # Fetch Logs Job
     parameters:
       - '{project}-defaults'
       - '{project}-virtual-{stream}-defaults'
+      - 'functest-suite-parameter'
       - project-parameter:
           project: '{project}'
           branch: '{branch}'
           block-level: 'NODE'
           blocking-jobs:
             - 'apex-runner.*'
-            - 'apex-.*-promote.*'
             - 'apex-run.*'
             - 'apex-virtual-.*'
             - 'apex-verify-gate-.*'
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                PROMOTE=$PROMOTE
               node-parameters: true
               kill-phase-on: FAILURE
               abort-all-job: true
               current-parameters: false
               predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
-                FUNCTEST_SUITE_NAME=healthcheck
+                FUNCTEST_MODE=$FUNCTEST_MODE
+                FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
-            - 'apex-.*-promote.*'
             - 'apex-run.*'
             - 'apex-testsuite-.+-baremetal-.+'
       - throttle:
 
 # CSIT promote
 - job-template:
-    name: 'apex-csit-promote-daily-{stream}'
+    name: 'apex-csit-promote-daily-{stream}-{os_version}'
 
     # Job template for promoting CSIT Snapshots
     #
           branch: '{branch}'
       - apex-parameter:
           gs-pathname: '{gs-pathname}'
+      - string:
+          name: ARTIFACT_VERSION
+          default: dev
+          description: "Used for overriding the ARTIFACT_VERSION"
+      - string:
+          name: PROMOTE
+          default: 'True'
+          description: "Used for overriding the PROMOTE"
 
     properties:
       - build-blocker:
           block-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
-            - 'apex-deploy.*'
             - 'apex-runner.*'
             - 'apex-daily.*'
 
 
     builders:
       - multijob:
-          name: deploy-virtual
+          name: apex-virtual-deploy-test
           condition: SUCCESSFUL
           projects:
-            - name: 'apex-deploy-virtual-{stream}'
-              current-parameters: false
+            - name: 'apex-virtual-{stream}'
+              current-parameters: true
               predefined-parameters: |
-                DEPLOY_SCENARIO=os-odl-{os_version}_upstream-noha
+                DEPLOY_SCENARIO=os-odl-{os_scenario}-noha
                 OPNFV_CLEAN=yes
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
-                PROMOTE=True
-              node-parameters: true
-              kill-phase-on: FAILURE
-              abort-all-job: true
-              git-revision: false
-      - multijob:
-          name: functest-smoke
-          condition: SUCCESSFUL
-          projects:
-            - name: 'functest-apex-virtual-suite-{stream}'
-              current-parameters: false
-              predefined-parameters: |
-                DEPLOY_SCENARIO=os-odl-{os_version}_upstream-noha
                 FUNCTEST_SUITE_NAME=tempest_smoke_serial
-                GERRIT_BRANCH=$GERRIT_BRANCH
-                GERRIT_REFSPEC=$GERRIT_REFSPEC
-                GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-                GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                FUNCTEST_MODE=testcase
               node-parameters: true
               kill-phase-on: FAILURE
               abort-all-job: true
-              git-revision: false
+              git-revision: true
       - multijob:
           name: create snapshot
           condition: SUCCESSFUL
           name: Baremetal Deploy and Test Phase
           condition: SUCCESSFUL
           projects:
-            - name: 'apex-os-odl-master_upstream-noha-baremetal-master'
+            - name: 'apex-os-odl-nofeature-noha-baremetal-master'
+              node-parameters: false
+              current-parameters: false
+              predefined-parameters: |
+                OPNFV_CLEAN=yes
+              kill-phase-on: NEVER
+              abort-all-job: true
+              git-revision: false
+            - name: 'apex-os-odl-nofeature-ha-baremetal-master'
+              node-parameters: false
+              current-parameters: false
+              predefined-parameters: |
+                OPNFV_CLEAN=yes
+              kill-phase-on: NEVER
+              abort-all-job: true
+              git-revision: false
+            - name: 'apex-os-odl-queens-noha-baremetal-master'
               node-parameters: false
               current-parameters: false
               predefined-parameters: |
               kill-phase-on: NEVER
               abort-all-job: true
               git-revision: false
-            - name: 'apex-os-odl-queens_upstream-noha-baremetal-master'
+            - name: 'apex-os-odl-queens-ha-baremetal-master'
               node-parameters: false
               current-parameters: false
               predefined-parameters: |
similarity index 96%
rename from jjb/apex/apex.yml.j2
rename to jjb/apex/apex.yaml.j2
index 4620bbc..3397f1e 100644 (file)
@@ -8,7 +8,7 @@
       - 'apex-virtual-{stream}'
       - 'apex-deploy-{platform}-{stream}'
       - 'apex-daily-{stream}'
-      - 'apex-csit-promote-daily-{stream}'
+      - 'apex-csit-promote-daily-{stream}-{os_version}'
       - 'apex-fdio-promote-daily-{stream}'
       - 'apex-{scenario}-baremetal-{scenario_stream}'
       - 'apex-testsuite-{scenario}-baremetal-{scenario_stream}'
@@ -25,7 +25,7 @@
           build-slave: 'apex-build-master'
           virtual-slave: 'apex-virtual-master'
           baremetal-slave: 'apex-baremetal-master'
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           scenario_stream: 'master'
           disable_daily: false
           disable_promote: false
@@ -35,7 +35,7 @@
           build-slave: 'apex-build-master'
           virtual-slave: 'apex-virtual-master'
           baremetal-slave: 'apex-baremetal-master'
-          verify-scenario: 'os-odl-nofeature-ha'
+          verify-scenario: 'os-nosdn-nofeature-ha'
           scenario_stream: 'fraser'
           disable_daily: false
           disable_promote: true
       - 'virtual'
 
     os_version:
-      - 'pike'
-      - 'queens'
-      - 'master'
+      - 'pike':
+          os_scenario: 'pike'
+      - 'queens':
+          os_scenario: 'queens'
+      - 'master':
+          os_scenario: 'nofeature'
 
 
 # Fetch Logs Job
     parameters:
       - '{project}-defaults'
       - '{project}-virtual-{stream}-defaults'
+      - 'functest-suite-parameter'
       - project-parameter:
           project: '{project}'
           branch: '{branch}'
           block-level: 'NODE'
           blocking-jobs:
             - 'apex-runner.*'
-            - 'apex-.*-promote.*'
             - 'apex-run.*'
             - 'apex-virtual-.*'
             - 'apex-verify-gate-.*'
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                PROMOTE=$PROMOTE
               node-parameters: true
               kill-phase-on: FAILURE
               abort-all-job: true
               current-parameters: false
               predefined-parameters: |
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
-                FUNCTEST_SUITE_NAME=healthcheck
+                FUNCTEST_MODE=$FUNCTEST_MODE
+                FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
           blocking-jobs:
             - 'apex-verify.*'
             - 'apex-runner.*'
-            - 'apex-.*-promote.*'
             - 'apex-run.*'
             - 'apex-testsuite-.+-baremetal-.+'
       - throttle:
 
 # CSIT promote
 - job-template:
-    name: 'apex-csit-promote-daily-{stream}'
+    name: 'apex-csit-promote-daily-{stream}-{os_version}'
 
     # Job template for promoting CSIT Snapshots
     #
           branch: '{branch}'
       - apex-parameter:
           gs-pathname: '{gs-pathname}'
+      - string:
+          name: ARTIFACT_VERSION
+          default: dev
+          description: "Used for overriding the ARTIFACT_VERSION"
+      - string:
+          name: PROMOTE
+          default: 'True'
+          description: "Used for overriding the PROMOTE"
 
     properties:
       - build-blocker:
           block-level: 'NODE'
           blocking-jobs:
             - 'apex-verify.*'
-            - 'apex-deploy.*'
             - 'apex-runner.*'
             - 'apex-daily.*'
 
 
     builders:
       - multijob:
-          name: deploy-virtual
+          name: apex-virtual-deploy-test
           condition: SUCCESSFUL
           projects:
-            - name: 'apex-deploy-virtual-{stream}'
-              current-parameters: false
+            - name: 'apex-virtual-{stream}'
+              current-parameters: true
               predefined-parameters: |
-                DEPLOY_SCENARIO=os-odl-{os_version}_upstream-noha
+                DEPLOY_SCENARIO=os-odl-{os_scenario}-noha
                 OPNFV_CLEAN=yes
                 GERRIT_BRANCH=$GERRIT_BRANCH
                 GERRIT_REFSPEC=$GERRIT_REFSPEC
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
-                PROMOTE=True
-              node-parameters: true
-              kill-phase-on: FAILURE
-              abort-all-job: true
-              git-revision: false
-      - multijob:
-          name: functest-smoke
-          condition: SUCCESSFUL
-          projects:
-            - name: 'functest-apex-virtual-suite-{stream}'
-              current-parameters: false
-              predefined-parameters: |
-                DEPLOY_SCENARIO=os-odl-{os_version}_upstream-noha
                 FUNCTEST_SUITE_NAME=tempest_smoke_serial
-                GERRIT_BRANCH=$GERRIT_BRANCH
-                GERRIT_REFSPEC=$GERRIT_REFSPEC
-                GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
-                GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
+                FUNCTEST_MODE=testcase
               node-parameters: true
               kill-phase-on: FAILURE
               abort-all-job: true
-              git-revision: false
+              git-revision: true
       - multijob:
           name: create snapshot
           condition: SUCCESSFUL
index 2650eaf..8375f61 100644 (file)
@@ -1,6 +1,8 @@
 master:
   - 'os-odl-nofeature-noha'
+  - 'os-odl-nofeature-ha'
   - 'os-odl-queens-noha'
+  - 'os-odl-queens-ha'
 fraser:
   - 'os-nosdn-nofeature-noha'
   - 'os-nosdn-nofeature-ha'
similarity index 99%
rename from jjb/armband/armband-ci-jobs.yml
rename to jjb/armband/armband-ci-jobs.yaml
index b8ffc16..fe2bbcc 100644 (file)
             same-node: true
             block: true
       - trigger-builds:
-          - project: 'functest-{installer}-{pod}-arm-daily-{stream}'
+          - project: 'functest-{installer}-{pod}-daily-{stream}'
             current-parameters: false
             predefined-parameters:
               DEPLOY_SCENARIO={scenario}
diff --git a/jjb/auto/auto.yaml b/jjb/auto/auto.yaml
new file mode 100644 (file)
index 0000000..a454fc4
--- /dev/null
@@ -0,0 +1,126 @@
+---
+# jenkins job templates for Auto
+- project:
+    name: 'auto-ci-jobs'
+    project: 'auto'
+
+    # -------------------------------
+    # BRANCH ANCHORS
+    # -------------------------------
+    master: &master
+      stream: master
+      branch: '{stream}'
+      gs-pathname: ''
+      disabled: false
+    fraser: &fraser
+      stream: fraser
+      branch: 'stable/{stream}'
+      gs-pathname: '/{stream}'
+      disabled: false
+    # -------------------------------
+    # DEPLOY TYPE ANCHORS
+    # -------------------------------
+    baremetal: &baremetal
+      installer: 'fuel'
+      slave-label: 'auto-baremetal'
+    # -------------------------------
+    # POD, INSTALLER, AND BRANCH MAPPING
+    # -------------------------------
+    # CI POD's
+    # -------------------------------
+    #        fraser
+    # -------------------------------
+    pod:
+      # yamllint disable rule:key-duplicates
+      - auto-baremetal:
+          <<: *baremetal
+          <<: *fraser
+      # -------------------------------
+      #        master
+      # -------------------------------
+      - auto-baremetal:
+          <<: *baremetal
+          <<: *master
+    # yamllint enable rule:key-duplicates
+    # -------------------------------
+    #       scenarios
+    # -------------------------------
+    scenario:
+      # HA scenarios
+      - 'os-nosdn-onap-ha':
+          auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger'
+
+    jobs:
+      - '{installer}-{scenario}-{pod}-auto-daily-{stream}'
+      - '{installer}-deploy-{pod}-daily-{stream}'
+      - '{project}-verify-basic'
+
+########################
+# job templates
+########################
+- job-template:
+    name: '{installer}-{scenario}-{pod}-auto-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    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}-auto-daily-.*'
+          block-level: 'NODE'
+
+    wrappers:
+      - build-name:
+          name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+    triggers:
+      - '{auto-trigger-name}'
+
+    parameters:
+      - 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='os-nosdn-nofeature-ha'
+            same-node: true
+            block: true
+
+########################
+# trigger macros
+########################
+# CI PODs
+# ----------------------------------------------------------------
+# Auto CI Baremetal Triggers running against master branch
+# ----------------------------------------------------------------
+- trigger:
+    name: 'fuel-os-nosdn-onap-ha-auto-baremetal-master-trigger'
+    triggers:
+      - timed: '0 1 * * *'
+# ---------------------------------------------------------------------
+# Auto CI Baremetal Triggers running against fraser branch
+# ---------------------------------------------------------------------
+- trigger:
+    name: 'fuel-os-nosdn-onap-ha-auto-baremetal-fraser-trigger'
+    triggers:
+      - timed: ''
diff --git a/jjb/auto/auto.yml b/jjb/auto/auto.yml
deleted file mode 100644 (file)
index c28dc56..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
----
-- project:
-    name: auto
-
-    project: '{name}'
-
-    jobs:
-      - '{project}-verify-basic'
             - draft-published-event
             - comment-added-contains-event:
                 comment-contains-value: 'recheck'
-            - comment-added-contains-event:
-                comment-contains-value: 'reverify'
           projects:
             - project-compare-type: 'REG_EXP'
               project-pattern: 'apex|armband|bamboo|barometer|bottlenecks|calipso|compass4nfv|conductor|copper|cperf|daisy|doctor|dovetail|dpacc|enfv|fds|fuel|functest|pharos|releng|sandbox|yardstick|infra|ipv6|kvmfornfv|models|moon|netready'
similarity index 100%
rename from jjb/copper/copper.yml
rename to jjb/copper/copper.yaml
similarity index 99%
rename from jjb/daisy4nfv/daisy-daily-jobs.yml
rename to jjb/daisy4nfv/daisy-daily-jobs.yaml
index 1769bb4..ba03bc3 100644 (file)
     master: &master
       stream: master
       branch: '{stream}'
-      disabled: false
+      disabled: true
       gs-pathname: ''
     fraser: &fraser
       stream: fraser
       branch: 'stable/{stream}'
       gs-pathname: '/{stream}'
-      disabled: false
+      disabled: true
 
     # -------------------------------
     # POD, INSTALLER, AND BRANCH MAPPING
similarity index 99%
rename from jjb/daisy4nfv/daisy-project-jobs.yml
rename to jjb/daisy4nfv/daisy-project-jobs.yaml
index cb0dea1..ec5ba71 100644 (file)
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          disabled: false
+          disabled: true
       - fraser:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          disabled: false
+          disabled: true
 
     phase:
       - 'build':
similarity index 99%
rename from jjb/daisy4nfv/daisy4nfv-merge-jobs.yml
rename to jjb/daisy4nfv/daisy4nfv-merge-jobs.yaml
index 3a0a59f..7e03fab 100644 (file)
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          disabled: false
+          disabled: true
       - fraser:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          disabled: false
+          disabled: true
     #####################################
     # patch merge phases
     #####################################
similarity index 99%
rename from jjb/daisy4nfv/daisy4nfv-verify-jobs.yml
rename to jjb/daisy4nfv/daisy4nfv-verify-jobs.yaml
index 777b677..033beeb 100644 (file)
       - master:
           branch: '{stream}'
           gs-pathname: ''
-          disabled: false
+          disabled: true
       - fraser:
           branch: 'stable/{stream}'
           gs-pathname: '/{stream}'
-          disabled: false
+          disabled: true
 
     #####################################
     # patch verification phases
similarity index 98%
rename from jjb/doctor/doctor.yml
rename to jjb/doctor/doctor.yaml
index 3985356..1c12563 100644 (file)
       - 'doctor-parameter':
           docker-tag: '{docker-tag}'
           scenario: '{scenario}'
-      - 'doctor-functest-parameter'
+      - 'doctor-functest-parameter':
+          gs-pathname: '{gs-pathname}'
+          inspector: '{inspector}'
     scm:
       - git-scm-gerrit
     builders:
similarity index 100%
rename from jjb/domino/domino.yml
rename to jjb/domino/domino.yaml
index 9616fb3..df681dd 100755 (executable)
@@ -124,7 +124,7 @@ if [[ ! "${SUT_BRANCH}" =~ "danube" && ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_T
                 awk '{print \$2; exit}'") &> /dev/null
     cat << EOF >${DOVETAIL_CONFIG}/pod.yaml
 nodes:
-- {ip: ${fuel_ctl_ip}, name: node1, key_filename: /root/.ssh/id_rsa, role: controller, user: ${ssh_user}}
+- {ip: ${fuel_ctl_ip}, name: node1, key_filename: /home/opnfv/userconfig/pre_config/id_rsa, role: controller, user: ${ssh_user}}
 
 EOF
 fi
@@ -154,7 +154,8 @@ if [[ ! -f ${DOVETAIL_CONFIG}/pod.yaml ]]; then
     fi
 
     cmd="sudo python ${releng_repo}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \
-         -i ${INSTALLER_IP} ${options} -f ${DOVETAIL_CONFIG}/pod.yaml"
+         -i ${INSTALLER_IP} ${options} -f ${DOVETAIL_CONFIG}/pod.yaml \
+         -s /home/opnfv/userconfig/pre_config/id_rsa"
     echo ${cmd}
     ${cmd}
 
similarity index 100%
rename from jjb/dpacc/dpacc.yml
rename to jjb/dpacc/dpacc.yaml
similarity index 97%
rename from jjb/fuel/fuel-daily-jobs.yml
rename to jjb/fuel/fuel-daily-jobs.yaml
index 7110dae..e636538 100644 (file)
@@ -86,6 +86,8 @@
           auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
       - 'os-ovn-nofeature-noha':
           auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
+      - 'os-odl-ovs-noha':
+          auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
       - 'os-nosdn-kvm-noha':
           auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger'
       - 'os-nosdn-ovs-noha':
         stream: danube
       - scenario: os-ovn-nofeature-ha
         stream: danube
+      - scenario: os-odl-ovs-noha
+        stream: fraser
 
     jobs:
       - 'fuel-{scenario}-{pod}-daily-{stream}'
     name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-master-trigger'
     triggers:
       - timed: ''
+- trigger:
+    name: 'fuel-os-odl-ovs-noha-baremetal-daily-master-trigger'
+    triggers:
+      - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-baremetal-daily-master-trigger'
     triggers:
     name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger'
     triggers:
       - timed: '5 23 * * *'
+- trigger:
+    name: 'fuel-os-odl-ovs-noha-virtual-daily-master-trigger'
+    triggers:
+      - timed: '5 2 * * *'
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-virtual-daily-master-trigger'
     triggers:
     name: 'fuel-os-ovn-nofeature-noha-zte-pod1-daily-master-trigger'
     triggers:
       - timed: ''
+- trigger:
+    name: 'fuel-os-odl-ovs-noha-zte-pod1-daily-master-trigger'
+    triggers:
+      - timed: ''
 - trigger:
     name: 'fuel-os-nosdn-kvm-noha-zte-pod1-daily-master-trigger'
     triggers:
index 35bf3dc..433061a 100755 (executable)
@@ -55,8 +55,8 @@ if [ "${PROJECT}" = 'fuel' ]; then
     fi
 else
     SUDO=
-    # Armband currently supports arm, enea labs
-    if [[ ! "${LAB_NAME}" =~ (arm|enea) ]]; then
+    # Armband currently supports arm, enea, unh labs
+    if [[ ! "${LAB_NAME}" =~ (arm|enea|unh) ]]; then
         echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!"
         exit 1
     fi
similarity index 93%
rename from jjb/functest/functest-daily-jobs.yml
rename to jjb/functest/functest-daily-jobs.yaml
index ae226b6..4fc67e7 100644 (file)
       - 'suite':
           job-timeout: 60
       - 'daily':
-          job-timeout: 360
-      - 'arm-daily':
           job-timeout: 480
 
     jobs:
           default: 'daily'
           description: "Daily suite name to run"
 
-- parameter:
-    name: functest-arm-daily-parameter
-    parameters:
-      - string:
-          name: FUNCTEST_MODE
-          default: 'arm-daily'
-          description: "Daily suite name (Aarch64) to run"
-
 - parameter:
     name: functest-suite-parameter
     parameters:
       - 'functest-store-results'
       - 'functest-exit'
 
-- builder:
-    name: functest-arm-daily-builder
-    builders:
-      - 'functest-cleanup'
-      - 'functest-arm-daily'
-      - 'functest-store-results'
-      - 'functest-exit'
-
 - builder:
     name: functest-suite-builder
     builders:
                     - ../../utils/fetch_k8_conf.sh
                     - ./functest-k8.sh
 
-# yamllint enable rule:indentation
-- builder:
-    name: functest-arm-daily
-    builders:
-      # yamllint disable rule:indentation
-      - shell:
-          !include-raw:
-              - ./functest-env-presetup.sh
-              - ../../utils/fetch_os_creds.sh
-              - ./functest-alpine.sh
-
 # yamllint enable rule:indentation
 - builder:
     name: functest-store-results
index 779110b..9b24045 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 779110b5cd63f3eabb63598a1be79d9b9ba85464
+Subproject commit 9b240453b91f3c4b0844ea1c593721a1c421caa2
similarity index 94%
rename from jjb/global/releng-macros.yml
rename to jjb/global/releng-macros.yaml
index b7335fa..b282cff 100644 (file)
             - 'origin/$BRANCH'
           timeout: 15
           per-build-tag: false
+          skip-tag: true
           shallow-clone: false
           use-author: false
           ignore-notify: false
           choosing-strategy: 'gerrit'
           refspec: '$GERRIT_REFSPEC'
           <<: *git-scm-defaults
+
+- scm:
+    name: git-scm-gerrit-with-submodules
+    scm:
+      - git:
+          choosing-strategy: 'gerrit'
+          refspec: '$GERRIT_REFSPEC'
+          submodule:
+            recursive: true
+            timeout: 20
+          <<: *git-scm-defaults
 - scm:
     name: git-scm-with-submodules
     scm:
           refspec: ''
           branches:
             - 'refs/heads/{branch}'
+          per-build-tag: false
           skip-tag: true
           wipe-workspace: true
           submodule:
     name: git-scm-openstack
     scm:
       - git: &git-scm-openstack-defaults
+          per-build-tag: false
+          skip-tag: true
           url: '$GIT_BASE'
           branches:
             - 'origin/$BRANCH'
     name: 'report-provision-result'
     publishers:
       - postbuildscript:
-          script-only-if-succeeded: true
           builders:
-            - shell: |
-                echo "export PROVISION_RESULT=PASS" >> $WORKSPACE/installer_track.sh
-                echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
-                echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh
-            - shell:
-                !include-raw: installer-report.sh
+            - role: BOTH
+              build-on:
+                - SUCCESS
+              build-steps:
+                - shell: |
+                    echo "export PROVISION_RESULT=PASS" >> $WORKSPACE/installer_track.sh
+                    echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
+                    echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh
+                - shell:
+                    !include-raw: installer-report.sh
+          mark-unstable-if-failed: true
       - postbuildscript:
-          script-only-if-succeeded: false
-          script-only-if-failed: true
           builders:
-            - shell: |
-                echo "export PROVISION_RESULT=FAIL" >> $WORKSPACE/installer_track.sh
-                echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
-                echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh
-            - shell:
-                !include-raw: installer-report.sh
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - UNSTABLE
+              build-steps:
+                - shell: |
+                    echo "export PROVISION_RESULT=FAIL" >> $WORKSPACE/installer_track.sh
+                    echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh
+                    echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh
+                - shell:
+                    !include-raw: installer-report.sh
+          mark-unstable-if-failed: true
similarity index 99%
rename from jjb/global/slave-params.yml
rename to jjb/global/slave-params.yaml
index 9d8bed4..0219be5 100644 (file)
           default: ssh://jenkins-enea@gerrit.opnfv.org:29418/securedlab
           description: 'Base URI to the configuration directory'
 
+- parameter:
+    name: 'auto-baremetal-defaults'
+    parameters:
+      - label:
+          name: SLAVE_LABEL
+          default: 'auto-baremetal'
+      - string:
+          name: GIT_BASE
+          default: https://gerrit.opnfv.org/gerrit/$PROJECT
+          description: 'Git URL to use on this Jenkins Slave'
+
 - parameter:
     name: 'joid-baremetal-defaults'
     parameters:
similarity index 100%
rename from jjb/ipv6/ipv6.yml
rename to jjb/ipv6/ipv6.yaml
similarity index 100%
rename from jjb/models/models.yml
rename to jjb/models/models.yaml
similarity index 100%
rename from jjb/moon/moon.yml
rename to jjb/moon/moon.yaml
similarity index 100%
rename from jjb/onosfw/onosfw.yml
rename to jjb/onosfw/onosfw.yaml
diff --git a/jjb/openci/create-ane.sh b/jjb/openci/create-ane.sh
new file mode 100755 (executable)
index 0000000..8a4da8f
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 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
+
+# This script creates ArtifactPublishedEvent
+# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
+# constructed on a single line. This is something that needs to be fixed properly
+
+cat << EOF > $WORKSPACE/event.properties
+type=$PUBLISH_EVENT_TYPE
+origin=$PUBLISH_EVENT_ORIGIN
+eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'artifactLocation': '$ARTIFACT_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }"
+EOF
+echo "Constructed $PUBLISH_EVENT_TYPE"
+echo "--------------------------------------------"
+cat $WORKSPACE/event.properties
+echo "--------------------------------------------"
diff --git a/jjb/openci/create-cde.sh b/jjb/openci/create-cde.sh
new file mode 100755 (executable)
index 0000000..410db50
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 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
+
+# This script creates CompositionDefinedEvent
+# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
+# constructed on a single line. This is something that needs to be fixed properly
+
+cat << EOF > $WORKSPACE/event.properties
+type=$PUBLISH_EVENT_TYPE
+origin=$PUBLISH_EVENT_ORIGIN
+scenario=$DEPLOY_SCENARIO
+eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION' }"
+EOF
+echo "Constructed $PUBLISH_EVENT_TYPE"
+echo "--------------------------------------------"
+cat $WORKSPACE/event.properties
+echo "--------------------------------------------"
diff --git a/jjb/openci/create-clme.sh b/jjb/openci/create-clme.sh
new file mode 100755 (executable)
index 0000000..5e8ee10
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 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
+
+# This script creates ConfidenceLevelModifiedEvent
+# The JMS Messaging Plugin doesn't handle the newlines well so the eventBody is
+# constructed on a single line. This is something that needs to be fixed properly
+
+cat << EOF > $WORKSPACE/event.properties
+type=$PUBLISH_EVENT_TYPE
+origin=$PUBLISH_EVENT_ORIGIN
+scenario=$DEPLOY_SCENARIO
+eventBody="{ 'type': '$PUBLISH_EVENT_TYPE', 'id': '$(uuidgen)', 'time': '$(date -u +%Y-%m-%d_%H:%M:%SUTC)', 'origin': '$PUBLISH_EVENT_ORIGIN', 'buildUrl': '$BUILD_URL', 'branch': 'master', 'compositionName': '$DEPLOY_SCENARIO', 'compositionMetadataUrl': '$SCENARIO_METADATA_LOCATION', 'confidenceLevel': { $CONFIDENCE_LEVEL } }"
+EOF
+echo "Constructed $PUBLISH_EVENT_TYPE"
+echo "--------------------------------------------"
+cat $WORKSPACE/event.properties
+echo "--------------------------------------------"
diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml
new file mode 100644 (file)
index 0000000..d80fead
--- /dev/null
@@ -0,0 +1,99 @@
+---
+- project:
+    name: openci-odl
+
+    project: '{name}'
+
+    stream:
+      - master:
+          branch: '{stream}'
+          gs-pathname: ''
+          disabled: false
+
+    jobs:
+      - 'openci-odl-autorelease-daily-{stream}'
+      - 'openci-odl-promote-daily-{stream}'
+
+# This job gets triggered manually for the demo purposes.
+#
+# In prototype, either what this job does needs to be integrated to
+# ODL autorelease job or triggered by the upstream autorelease job.
+- job-template:
+    name: 'openci-odl-autorelease-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - string:
+          name: PUBLISH_EVENT_TYPE
+          default: ArtifactPublishedEvent
+          description: 'The type of the event this job publishes'
+      - string:
+          name: PUBLISH_EVENT_ORIGIN
+          default: ODL
+          description: 'Originating community'
+      - string:
+          name: ARTIFACT_LOCATION
+          default: https://url/to/artifact/on/odl/nexus/$BUILD_NUMBER
+          description: 'The location of the artifact on ODL Nexus'
+      - string:
+          name: CONFIDENCE_LEVEL
+          default: "'autorelease': 'SUCCESS'"
+          description: 'The confidence level the published artifact gained'
+      - 'opnfv-build-defaults'
+
+    builders:
+      - shell:
+          !include-raw-escape: ./create-ane.sh
+      - inject:
+          properties-file: "$WORKSPACE/event.properties"
+
+    publishers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          msg-type: Custom
+          msg-props: |
+            type=$type
+            origin=$origin
+          msg-content:
+            $eventBody
+
+# This job gets triggered by a ConfidenceLevelModifiedEvent published
+# by OPNFV jobs so ODL can promote the autorelease artifact even further.
+#
+# This job is created for the demo purposes and might not be there for
+# the prototype.
+- job-template:
+    name: 'openci-odl-promote-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - 'opnfv-build-defaults'
+
+    triggers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          selector: CI_TYPE = 'custom'
+          checks:
+            - field: origin
+              expected-value: 'OPNFV'
+            - field: type
+              expected-value: 'ConfidenceLevelModifiedEvent'
+            - field: scenario
+              expected-value: 'os-odl-nofeature'
+
+    builders:
+      - shell: |
+          #!/bin/bash
+
+          echo
+          echo "Triggered by $type"
+          echo "----------------------------------"
+          echo $CI_MESSAGE
+          echo "----------------------------------"
+          echo " Promoted ODL Autorelease artifact as release candidate!"
diff --git a/jjb/openci/openci-onap-daily-jobs.yaml b/jjb/openci/openci-onap-daily-jobs.yaml
new file mode 100644 (file)
index 0000000..28c3e69
--- /dev/null
@@ -0,0 +1,99 @@
+---
+- project:
+    name: openci-onap
+
+    project: '{name}'
+
+    stream:
+      - master:
+          branch: '{stream}'
+          gs-pathname: ''
+          disabled: false
+
+    jobs:
+      - 'openci-onap-autorelease-daily-{stream}'
+      - 'openci-onap-promote-daily-{stream}'
+
+# This job gets triggered manually for the demo purposes.
+#
+# In prototype, either what this job does needs to be integrated to
+# ONAP autorelease job or triggered by the upstream autorelease job.
+- job-template:
+    name: 'openci-onap-autorelease-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - string:
+          name: PUBLISH_EVENT_TYPE
+          default: ArtifactPublishedEvent
+          description: 'The type of the event this job publishes'
+      - string:
+          name: PUBLISH_EVENT_ORIGIN
+          default: ONAP
+          description: 'Originating community'
+      - string:
+          name: ARTIFACT_LOCATION
+          default: https://url/to/artifact/on/onap/nexus/$BUILD_NUMBER
+          description: 'The location of the artifact on ONAP Nexus'
+      - string:
+          name: CONFIDENCE_LEVEL
+          default: "'autorelease': 'SUCCESS'"
+          description: 'The confidence level the published artifact gained'
+      - 'opnfv-build-defaults'
+
+    builders:
+      - shell:
+          !include-raw-escape: ./create-ane.sh
+      - inject:
+          properties-file: "$WORKSPACE/event.properties"
+
+    publishers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          msg-type: Custom
+          msg-props: |
+            type=$type
+            origin=$origin
+          msg-content:
+            $eventBody
+
+# This job gets triggered by a ConfidenceLevelModifiedEvent published
+# by OPNFV jobs so ONAP can promote the autorelease artifact even further.
+#
+# This job is created for the demo purposes and might not be there for
+# the prototype.
+- job-template:
+    name: 'openci-onap-promote-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - 'opnfv-build-defaults'
+
+    triggers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          selector: CI_TYPE = 'custom'
+          checks:
+            - field: origin
+              expected-value: 'OPNFV'
+            - field: type
+              expected-value: 'ConfidenceLevelModifiedEvent'
+            - field: scenario
+              expected-value: 'k8-nosdn-onap'
+
+    builders:
+      - shell: |
+          #!/bin/bash
+
+          echo
+          echo "Triggered by $type"
+          echo "----------------------------------"
+          echo $CI_MESSAGE
+          echo "----------------------------------"
+          echo " Promoted ONAP Autorelease artifact as release candidate!"
diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml
new file mode 100644 (file)
index 0000000..cb15014
--- /dev/null
@@ -0,0 +1,149 @@
+---
+- project:
+    name: openci-opnfv
+
+    project: '{name}'
+
+    stream:
+      - master:
+          branch: '{stream}'
+          gs-pathname: ''
+          disabled: false
+
+    scenario:
+      - 'os-odl-nofeature-ha':
+          origin: ODL
+      - 'k8-nosdn-onap-ha':
+          origin: ONAP
+
+    jobs:
+      - 'openci-opnfv-{scenario}-compose-daily-{stream}'
+      - 'openci-opnfv-{scenario}-test-daily-{stream}'
+
+- job-template:
+    name: 'openci-opnfv-{scenario}-compose-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - string:
+          name: PUBLISH_EVENT_TYPE
+          default: CompositionDefinedEvent
+          description: 'The type of the event this job publishes'
+      - string:
+          name: PUBLISH_EVENT_ORIGIN
+          default: OPNFV
+          description: 'Originating community'
+      - string:
+          name: DEPLOY_SCENARIO
+          default: '{scenario}'
+          description: 'The scenario that is composed'
+      - string:
+          name: SCENARIO_METADATA_LOCATION
+          default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
+          description: 'The location of the scenario metadata'
+      - 'opnfv-build-defaults'
+
+    triggers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          selector: CI_TYPE = 'custom'
+          checks:
+            - field: origin
+              expected-value: '{origin}'
+            - field: type
+              expected-value: 'ArtifactPublishedEvent'
+
+    builders:
+      - shell: |
+          #!/bin/bash
+
+          echo
+          echo "Triggered by $type"
+          echo "----------------------------------"
+          echo $CI_MESSAGE
+          echo "----------------------------------"
+      - shell:
+          !include-raw-escape: ./create-cde.sh
+      - inject:
+          properties-file: "$WORKSPACE/event.properties"
+
+    publishers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          msg-type: Custom
+          msg-props: |
+            type=$type
+            origin=$origin
+            scenario=$scenario
+          msg-content:
+            $eventBody
+
+- job-template:
+    name: 'openci-opnfv-{scenario}-test-daily-{stream}'
+
+    disabled: '{obj:disabled}'
+
+    concurrent: false
+
+    parameters:
+      - string:
+          name: PUBLISH_EVENT_TYPE
+          default: ConfidenceLevelModifiedEvent
+          description: 'The type of the event this job publishes'
+      - string:
+          name: PUBLISH_EVENT_ORIGIN
+          default: OPNFV
+          description: 'Originating community'
+      - string:
+          name: DEPLOY_SCENARIO
+          default: '{scenario}'
+          description: 'The scenario that is composed'
+      - string:
+          name: SCENARIO_METADATA_LOCATION
+          default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER
+          description: 'The location of the scenario metadata'
+      - string:
+          name: CONFIDENCE_LEVEL
+          default: "'opnfvdaily': 'SUCCESS'"
+          description: 'The confidence level the published artifact gained'
+      - 'opnfv-build-defaults'
+
+    triggers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          selector: CI_TYPE = 'custom'
+          checks:
+            - field: origin
+              expected-value: 'OPNFV'
+            - field: type
+              expected-value: 'CompositionDefinedEvent'
+            - field: scenario
+              expected-value: '{scenario}'
+
+    builders:
+      - shell: |
+          #!/bin/bash
+
+          echo
+          echo "Triggered by $type"
+          echo "----------------------------------"
+          echo $CI_MESSAGE
+          echo "----------------------------------"
+      - shell:
+          !include-raw-escape: ./create-clme.sh
+      - inject:
+          properties-file: "$WORKSPACE/event.properties"
+
+    publishers:
+      - jms-messaging:
+          provider-name: openci.activemq
+          msg-type: Custom
+          msg-props: |
+            type=$type
+            origin=$origin
+            scenario=$scenario
+          msg-content:
+            $eventBody
similarity index 100%
rename from jjb/ovsnfv/ovsnfv.yml
rename to jjb/ovsnfv/ovsnfv.yaml
similarity index 100%
rename from jjb/parser/parser.yml
rename to jjb/parser/parser.yaml
similarity index 100%
rename from jjb/pharos/pharos.yml
rename to jjb/pharos/pharos.yaml
similarity index 61%
rename from jjb/releng/compass4nfv-docker.yml
rename to jjb/releng/compass4nfv-docker.yaml
index 5fbb37c..7bfda55 100644 (file)
     arch_tag:
       - 'amd64':
           slave_label: 'opnfv-build-ubuntu'
+          docker_file: 'Dockerfile'
+      - 'arm64':
+          slave_label: 'opnfv-build-ubuntu-arm'
+          docker_file: 'Dockerfile-arm64'
 
     # yamllint disable rule:key-duplicates
     image:
       kill-phase-on: FAILURE
       abort-all-jobs: false
 
+    manifest-job-settings: &manifest-job-settings
+      current-parameters: false
+      git-revision: true
+      node-parameters: false
+      predefined-parameters:
+        GERRIT_REFNAME=$GERRIT_REFNAME
+      kill-phase-on: FAILURE
+      abort-all-jobs: false
+
     # yamllint enable rule:key-duplicates
     jobs:
       - "compass-docker-{stream}"
       - "compass-{image}-build-{arch_tag}-{stream}"
+      - "compass-{image}-manifest-{stream}"
 
 ########################
 # job templates
@@ -63,6 +77,7 @@
           project: '{project}'
           branch: '{branch}'
           slave_label: 'opnfv-build-ubuntu'
+          docker_file: 'Dockerfile'
           arch_tag: 'amd64'
 
     properties:
           projects:
             - name: 'compass-tasks-base-build-amd64-{stream}'
               <<: *build-job-settings
+            - name: 'compass-tasks-base-build-arm64-{stream}'
+              <<: *build-job-settings
+      - multijob:
+          name: 'publish compass-tasks-base manifests'
+          execution-type: PARALLEL
+          projects:
+            - name: 'compass-tasks-base-manifest-{stream}'
+              <<: *manifest-job-settings
       - multijob:
           name: 'build all compass images'
           condition: SUCCESSFUL
               <<: *build-job-settings
             - name: 'compass-tasks-osa-build-amd64-{stream}'
               <<: *build-job-settings
+            - name: 'compass-cobbler-build-arm64-{stream}'
+              <<: *build-job-settings
+            - name: 'compass-db-build-arm64-{stream}'
+              <<: *build-job-settings
+            - name: 'compass-deck-build-arm64-{stream}'
+              <<: *build-job-settings
+            - name: 'compass-tasks-build-arm64-{stream}'
+              <<: *build-job-settings
+            - name: 'compass-tasks-k8s-build-arm64-{stream}'
+              <<: *build-job-settings
+            - name: 'compass-tasks-osa-build-arm64-{stream}'
+              <<: *build-job-settings
+      - multijob:
+          name: 'publish all manifests'
+          execution-type: PARALLEL
+          projects:
+            - name: 'compass-cobbler-manifest-{stream}'
+              <<: *manifest-job-settings
+            - name: 'compass-db-manifest-{stream}'
+              <<: *manifest-job-settings
+            - name: 'compass-deck-manifest-{stream}'
+              <<: *manifest-job-settings
+            - name: 'compass-tasks-manifest-{stream}'
+              <<: *manifest-job-settings
+            - name: 'compass-tasks-k8s-manifest-{stream}'
+              <<: *manifest-job-settings
+            - name: 'compass-tasks-osa-manifest-{stream}'
+              <<: *manifest-job-settings
 
     publishers:
       - 'compass-amd64-recipients'
+      - 'compass-arm64-recipients'
 
 - job-template:
     name: 'compass-{image}-build-{arch_tag}-{stream}'
           project: '{project}'
           branch: '{branch}'
           slave_label: '{slave_label}'
+          docker_file: '{docker_file}'
           arch_tag: '{arch_tag}'
       - string:
           name: DOCKER_REPO_NAME
       - shell:
           !include-raw-escape: ./opnfv-docker.sh
 
+- job-template:
+    name: 'compass-{image}-manifest-{stream}'
+    disabled: '{obj:disabled}'
+    parameters:
+      - compass-job-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          slave_label: 'opnfv-build-ubuntu'
+          docker_file: 'Dockerfile'
+          arch_tag: 'amd64'
+    builders:
+      - shell: |
+          #!/bin/bash -ex
+          case "{stream}" in
+          "master")
+              tag="latest" ;;
+          *)
+              tag="{stream}" ;;
+          esac
+          sudo manifest-tool push from-args \
+              --platforms linux/amd64,linux/arm64 \
+              --template opnfv/compass-{image}:ARCH-$tag \
+              --target opnfv/compass-{image}:$tag
+          exit $?
+
 # parameter macro
 - parameter:
     name: compass-job-parameters
           description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1"
       - string:
           name: DOCKERFILE
-          default: "Dockerfile"
+          default: '{docker_file}'
           description: "Dockerfile to use for creating the image."
       - string:
           name: ARCH_TAG
-          default: ""
+          default: "{arch_tag}"
           description: "If set, this value will be added to the docker image tag as a prefix"
       - string:
           name: PROJECT
             huangxiangyui5@huawei.com
             xueyifei@huawei.com
             wutianwei1@huawei.com
+
+- publisher:
+    name: 'compass-arm64-recipients'
+    publishers:
+      - email:
+          recipients: >
+            yibo.cai@arm.com
index 5c8cafb..70baf16 100644 (file)
@@ -78,7 +78,14 @@ echo "Current branch: $BRANCH"
 BUILD_BRANCH=$BRANCH
 
 GERRIT_REFNAME=${GERRIT_REFNAME:-''}
-RELEASE_VERSION=${GERRIT_REFNAME/refs\/tags//}
+RELEASE_VERSION=${GERRIT_REFNAME/refs\/tags\/}
+
+# If we're being triggered by a comment-added job, then extract the tag
+# from the comment and use that as the release version.
+# Expected comment format: retag opnfv-x.y.z
+if [[ "${GERRIT_EVENT_TYPE:-}" == "comment-added" ]]; then
+    RELEASE_VERSION=$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'retag' | awk '{print $2}')
+fi
 
 if [[ "$BRANCH" == "master" ]]; then
     DOCKER_TAG="latest"
similarity index 98%
rename from jjb/releng/opnfv-lint.yml
rename to jjb/releng/opnfv-lint.yaml
index aac8c31..6483e32 100644 (file)
@@ -64,8 +64,6 @@
             - draft-published-event
             - comment-added-contains-event:
                 comment-contains-value: 'recheck'
-            - comment-added-contains-event:
-                comment-contains-value: 'reverify'
           projects:
             - project-compare-type: 'REG_EXP'
               project-pattern: 'releng|doctor|pharos'
diff --git a/jjb/releng/releng-ci-jobs.yaml b/jjb/releng/releng-ci-jobs.yaml
new file mode 100644 (file)
index 0000000..f9a2bc2
--- /dev/null
@@ -0,0 +1,15 @@
+---
+- project:
+    name: releng-builder-jobs
+    project: 'releng'
+    project-name: 'releng'
+
+    build-timeout: 60
+    build-node: 'lf-build1'
+    gerrit-server-name: 'gerrit.opnfv.org'
+    jenkins-ssh-credential: 'd42411ac011ad6f3dd2e1fa34eaa5d87f910eb2e'
+    jjb-version: '2.0.3'
+    lftools-version: '<1.0.0'
+
+    jobs:
+      - '{project-name}-ci-jobs'
diff --git a/jjb/releng/releng-ci-jobs.yml b/jjb/releng/releng-ci-jobs.yml
deleted file mode 100644 (file)
index 6fb6804..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
----
-- project:
-    name: releng-builder-jobs
-    jobs:
-      - 'releng-verify-jjb'
-      - 'releng-merge-jjb'
-      - 'releng-comment-jjb'
-
-    project: 'releng'
-
-- job-template:
-    name: releng-verify-jjb
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-          branch: 'master'
-
-    scm:
-      - git-scm-gerrit
-
-    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: 'releng'
-              branches:
-                - branch-compare-type: 'ANT'
-                  branch-pattern: '**/master'
-              file-paths:
-                - compare-type: ANT
-                  pattern: jjb/**
-                - compare-type: ANT
-                  pattern: jjb-templates/**
-                - compare-type: ANT
-                  pattern: utils/**
-
-
-    builders:
-      - shell:
-          !include-raw: verify-releng.sh
-
-    publishers:
-      - archive-artifacts:
-          artifacts: 'job_output/*'
-      - email-jenkins-admins-on-failure
-
-- job-template:
-    name: releng-comment-jjb
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-          branch: 'master'
-
-    scm:
-      - git-scm-gerrit
-
-    triggers:
-      - experimental:
-          project: '{project}'
-          branch: 'master'
-          files: 'jjb/**'
-
-    builders:
-      - shell:
-          !include-raw-escape: generate-job-list.sh
-      - report-build-result-to-gerrit
-
-- job-template:
-    name: 'releng-merge-jjb'
-
-    # builder-merge job to run JJB update
-    #
-    # This job's purpose is to update all the JJB
-
-    parameters:
-      - project-parameter:
-          project: '{project}'
-          branch: 'master'
-
-    properties:
-      - throttle:
-          max-per-node: 1
-          max-total: 1
-          option: 'project'
-
-    scm:
-      - git-scm
-
-    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: 'releng'
-              branches:
-                - branch-compare-type: 'ANT'
-                  branch-pattern: '**/master'
-              file-paths:
-                - compare-type: ANT
-                  pattern: jjb/**
-                - compare-type: ANT
-                  pattern: utils/**
-
-    builders:
-      - shell: |
-              source /opt/virtualenv/jenkins-job-builder/bin/activate
-              jenkins-jobs update -r --delete-old jjb/
similarity index 51%
rename from jjb/releng/releng-release-verify.sh
rename to jjb/releng/releng-release-create-venv.sh
index c1262e2..0d5635b 100644 (file)
@@ -7,21 +7,12 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-set -xe
+set -e -o pipefail
+echo "---> Create virtualenv"
 
-# Activate virtualenv, supressing shellcheck warning
-# shellcheck source=/dev/null
-. $WORKSPACE/venv/bin/activate
+sudo pip install virtualenv
+virtualenv $WORKSPACE/venv
+# shellcheck source=$WORKSPACE/venv/bin/activate disable=SC1091
+source $WORKSPACE/venv/bin/activate
+pip install --upgrade pip
 pip install -r releases/scripts/requirements.txt
-
-STREAM=${STREAM:-'nostream'}
-RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM")
-
-# TODO: The create_branch.py should be refactored so it can be used here
-# to verify the commit exists that is being added, along with
-# jjb/<project>
-for release_file in $RELEASE_FILES; do
-    python releases/scripts/verify_schema.py \
-    -s releases/schema.yaml \
-    -y $release_file
-done
similarity index 82%
rename from jjb/releng/releng-release-jobs.yml
rename to jjb/releng/releng-release-jobs.yaml
index e31320b..0c059ee 100644 (file)
@@ -10,6 +10,8 @@
 - project:
     name: releng-release-jobs
 
+    build-node: 'opnfv-build'
+
     stream:
       - fraser
 
@@ -23,6 +25,7 @@
     name: 'releng-release-{stream}-verify'
 
     parameters:
+      - '{build-node}-defaults'
       - stream-parameter:
           stream: '{stream}'
       - project-parameter:
@@ -59,9 +62,9 @@
                   pattern: 'releases/scripts/verify_schema.py'
 
     builders:
-      - create-virtualenv
-      - shell:
-          !include-raw-escape: releng-release-verify.sh
+      - shell: !include-raw-escape:
+          - releng-release-create-venv.sh
+          - releng-release-tagging.sh
 
     publishers:
       - email-jenkins-admins-on-failure
       - project-parameter:
           project: '{project}'
           branch: 'master'
+      # Override GIT_BASE so we can send patches back to Gerrit and
+      # modify repos
+      - string:
+          name: GIT_BASE
+          default: ssh://$USER@gerrit.opnfv.org:29418/$PROJECT
+          description: 'Git URL to use on this Jenkins Slave'
 
     scm:
       - git-scm-gerrit
           files: 'releases/{stream}/*'
 
     builders:
-      - create-virtualenv
-      - shell:
-          !include-raw-escape: releng-release-create-branch.sh
+      - shell: !include-raw-escape:
+          - releng-release-create-venv.sh
+          - releng-release-tagging.sh
+          # - releng-release-create-branch.sh
 
     publishers:
       - email-jenkins-admins-on-failure
           name: STREAM
           default: '{stream}'
           description: "OPNFV Stable Stream"
-
-- builder:
-    name: create-virtualenv
-    builders:
-      - shell: |
-          #!/bin/bash
-          sudo pip install virtualenv
-          virtualenv $WORKSPACE/venv
-          . $WORKSPACE/venv/bin/activate
-          pip install --upgrade pip
diff --git a/jjb/releng/releng-release-tagging.sh b/jjb/releng/releng-release-tagging.sh
new file mode 100644 (file)
index 0000000..10c0cc8
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/bash
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation 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 -e -o pipefail
+
+GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit}
+STREAM=${STREAM:-'nostream'}
+RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM")
+
+echo "--> Verifying $RELEASE_FILES."
+for release_file in $RELEASE_FILES; do
+    # Verify the release file schema
+    python releases/scripts/verify_schema.py \
+    -s releases/schema.yaml \
+    -y $release_file
+
+    # Verify tag for each repo exist and are attached to commits on stable-branch
+    while read -r repo tag ref
+    do
+      echo "--> Cloning $repo"
+      if [ ! -d $repo ]; then
+          git clone $GIT_URL/$repo.git $repo
+      fi
+      pushd $repo &> /dev/null
+
+      echo "--> Checking for tag: $tag"
+      if ! (git tag -l | grep $tag &> /dev/null); then
+          echo "$tag does not exist"
+          TAG_EXISTS=false
+      else
+          git cat-file tag $tag
+          TAG_EXISTS=true
+      fi
+
+      echo "--> Checking if $ref is on stable/$STREAM"
+      if ! (git branch -a --contains $ref | grep "stable/$STREAM"); then
+          echo "--> ERROR: $ref for $repo is not on stable/$STREAM!"
+          # If the tag exists but is on the wrong ref, there's nothing
+          # we can do. But if the tag neither exists nor is on the
+          # correct branch we need to fail the verification.
+          if [ $TAG_EXISTS = false ]; then
+              exit 1
+          fi
+      else
+          if [[ $TAG_EXISTS = false && "$JOB_NAME" =~ "merge" ]]; then
+              # If the tag doesn't exist and we're in a merge job,
+              # everything has been verified up to this point and we
+              # are ready to create the tag.
+              git config --global user.name "jenkins-ci"
+              git config --global user.email "jenkins-opnfv-ci@opnfv.org"
+              echo "--> Creating $tag tag for $repo at $ref"
+              git tag -am "$tag" $tag $ref
+              echo "--> Pushing tag"
+              echo "[noop] git push origin $tag"
+          else
+              # For non-merge jobs just output the ref info.
+              git show -s --format="%h %s %d" $ref
+          fi
+      fi
+
+      popd &> /dev/null
+      echo "--> Done verifing $repo"
+    done < <(python releases/scripts/repos.py -f $release_file)
+done
diff --git a/jjb/releng/verify-releng.sh b/jjb/releng/verify-releng.sh
deleted file mode 100755 (executable)
index a6eaa0f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-# SPDX-license-identifier: Apache-2.0
-##############################################################################
-# Copyright (c) 2016 Linux Foundation 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
-##############################################################################
-#test for non-ascii characters, these can pass the test and end up breaking things in production
-for x in $(find . -name *\.yml -or -name *\.yaml -or -name *\.sh); do
-
-  if LC_ALL=C grep -q '[^[:print:][:space:]]' "$x"; then
-    echo "file "$x" contains non-ascii characters"
-    exit 1
-  fi
-
-done
-
-source /opt/virtualenv/jenkins-job-builder/bin/activate
-jenkins-jobs test -o job_output -r jjb/
similarity index 100%
rename from jjb/ves/ves.yml
rename to jjb/ves/ves.yaml
similarity index 95%
rename from jjb/xci/bifrost-verify-jobs.yml
rename to jjb/xci/bifrost-verify-jobs.yaml
index 920ecdc..4ca7835 100644 (file)
       # yamllint enable rule:line-length
       - email-jenkins-admins-on-failure
       - postbuildscript:
-          script-only-if-succeeded: false
-          script-only-if-failed: false
           builders:
-            - shell:
-                !include-raw: ./xci-cleanup.sh
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell: !include-raw: ./xci-cleanup.sh
+          mark-unstable-if-failed: true
 
 # -------------------------------
 # trigger macros
similarity index 96%
rename from jjb/xci/xci-daily-jobs.yml
rename to jjb/xci/xci-daily-jobs.yaml
index 11db4e1..c1132ab 100644 (file)
       # yamllint enable rule:line-length
       - email-jenkins-admins-on-failure
       - postbuildscript:
-          script-only-if-succeeded: false
-          script-only-if-failed: false
           builders:
-            - shell:
-                !include-raw: ./xci-cleanup.sh
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell: !include-raw: ./xci-cleanup.sh
+          mark-unstable-if-failed: true
 
 - job-template:
     name: 'xci-{phase}-{pod}-{distro}-daily-{stream}'
similarity index 97%
rename from jjb/xci/xci-merge-jobs.yml
rename to jjb/xci/xci-merge-jobs.yaml
index 2d112c7..cb438ad 100644 (file)
 
     publishers:
       - postbuildscript:
-          script-only-if-succeeded: false
-          script-only-if-failed: false
           builders:
-            - shell:
-                !include-raw: ./xci-cleanup.sh
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell: !include-raw: ./xci-cleanup.sh
+          mark-unstable-if-failed: true
 
 - job-template:
     name: 'xci-merge-{distro}-{phase}-virtual-{stream}'
index 6d43c97..f46abe0 100755 (executable)
@@ -47,7 +47,7 @@ fi
 export XCI_PATH=/home/devuser/releng-xci
 export XCI_VENV=${XCI_PATH}/venv
 
-ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && cd releng-xci/xci && ansible-playbook -i installer/osa/files/$XCI_FLAVOR/inventory playbooks/prepare-functest.yml"
+ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && cd releng-xci/xci && ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-functest.yml"
 echo "Running functest"
 ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/run-functest.sh"
 # Record exit code
index c28093d..7bc45f1 100755 (executable)
@@ -38,7 +38,7 @@ set -o pipefail
 #   skip-verify
 #   skip-deployment
 #   force-verify
-function override_generic_scenario() {
+function override_scenario() {
     echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
 
     # ensure the metadata we record is consistent for all types of patches including skipped ones
@@ -81,26 +81,21 @@ function override_generic_scenario() {
     fi
 }
 
-# This function determines the impacted generic scenario by processing the
-# change and using diff to see what changed. If changed files belong to a scenario
-# its name gets recorded for deploying and testing the right scenario.
+# This function determines the default scenario for changes coming to releng-xci
+# by processing the Gerrit change and using diff to see what changed.
+#
+# The stuff in releng-xci is for the installer and other common things so the
+# determination is based on those.
 #
-# Pattern to be searched in Changeset
-#   releng-xci/scenarios/<scenario>/<impacted files>: <scenario>
-#   releng-xci/xci/installer/osa/<impacted files>: os-nosdn-nofeature
-#   releng-xci/xci/installer/kubespray/<impacted files>: k8-nosdn-nofeature
-#   the rest: os-nosdn-nofeature
-function determine_generic_scenario() {
+# Pattern
+#   releng-xci/installer/<installer_type>/<impacted files>: <scenario>
+function determine_default_scenario() {
     echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
 
     # get the changeset
     cd $WORKSPACE
-    SCENARIOS=$(git diff HEAD^..HEAD --name-only -- 'xci/scenarios' | cut -d "/" -f 3 | uniq)
     # We need to set default scenario for changes that mess with installers
     INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq)
-    for CHANGED_SCENARIO in $SCENARIOS; do
-        DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]=$CHANGED_SCENARIO
-    done
     for CHANGED_INSTALLER in $INSTALLERS; do
         case $CHANGED_INSTALLER in
             kubespray)
@@ -113,24 +108,25 @@ function determine_generic_scenario() {
         esac
     done
     # For all other changes, we only need to set a default scenario if it's not set already
-    if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer\|xci/scenario'; then
+    if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer'; then
          [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature'
     fi
 
     # extract releng-xci sha
     XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD)
 
-    # extract scenario sha which is same as releng-xci sha for generic scenarios
+    # TODO: we need to fix this so we actually extract the scenario sha by cloning releng-xci-scenarios
+    # for the determined scenario. it is crucial for promotion...
     SCENARIO_SHA=$XCI_SHA
 }
 
-# This function determines the impacted external scenario by processing the Gerrit
+# This function determines the impacted scenario by processing the Gerrit
 # change and using diff to see what changed. If changed files belong to a scenario
 # its name gets recorded for deploying and testing the right scenario.
 #
 # Pattern
 #   <project-repo>/scenarios/<scenario>/<impacted files>: <scenario>
-function determine_external_scenario() {
+function determine_scenario() {
     echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC"
 
     # remove the clone that is done via jenkins and place releng-xci there so the
@@ -169,11 +165,10 @@ WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO
 /bin/rm -rf $WORK_DIRECTORY && mkdir -p $WORK_DIRECTORY
 
 if [[ $GERRIT_PROJECT == "releng-xci" ]]; then
-    override_generic_scenario
-    determine_generic_scenario
-else
-    determine_external_scenario
+    determine_default_scenario
 fi
+override_scenario
+determine_scenario
 
 # ensure single scenario is impacted
     if [[ $(IFS=$'\n' echo ${DEPLOY_SCENARIO[@]} | wc -w) != 1 ]]; then
index 1749328..79b6a78 100755 (executable)
@@ -67,7 +67,7 @@ export CI_LOOP=$CI_LOOP
 export BUILD_TAG=$BUILD_TAG
 export NODE_NAME=$NODE_NAME
 
-if [[ ! -z ${WORKSPACE+x} && $GERRIT_PROJECT != "releng-xci" ]]; then
+if [[ $GERRIT_PROJECT != "releng-xci" ]]; then
     export XCI_ANSIBLE_PARAMS="-e @/home/devuser/releng-xci/scenario_overrides.yml"
 fi
 
@@ -75,7 +75,7 @@ cd xci
 ./xci-deploy.sh | ts
 EOF
 
-if [[ ! -z ${WORKSPACE+x} && $GERRIT_PROJECT != "releng-xci" ]]; then
+if [[ $GERRIT_PROJECT != "releng-xci" ]]; then
     cat > scenario_overrides.yml <<-EOF
 ---
 xci_scenarios_overrides:
similarity index 96%
rename from jjb/xci/xci-verify-jobs.yml
rename to jjb/xci/xci-verify-jobs.yaml
index 3b7df62..2230cd5 100644 (file)
                   pattern: 'xci/scripts/vm/**'
                 - compare-type: ANT
                   pattern: 'docs/**'
-                - compare-type: ANT
-                  pattern: 'prototypes/**'
                 - compare-type: ANT
                   pattern: 'upstream/**'
             - project-compare-type: 'REG_EXP'
 
     publishers:
       - postbuildscript:
-          script-only-if-succeeded: false
-          script-only-if-failed: false
           builders:
-            - shell:
-                !include-raw: ./xci-cleanup.sh
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - NOT_BUILT
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - shell: !include-raw: ./xci-cleanup.sh
+          mark-unstable-if-failed: true
 
 
 - job-template:
index c097d06..5d0f569 100644 (file)
@@ -25,6 +25,18 @@ releases:
   - version: opnfv-6.0.0
     location:
       apex-os-net-config: e09d110d7b58d26424c28a128cdfd8c766636461
+  - version: opnfv-6.1.0
+    location:
+      apex: a1f2e922d18430e064c9c8311f01ac2a0df19414
+  - version: opnfv-6.1.0
+    location:
+      apex-tripleo-heat-templates: 7f1cc97bcd6f267b11a251de3204edf0e8ec79c0
+  - version: opnfv-6.1.0
+    location:
+      apex-puppet-tripleo: bebd15efe40498c272577c563bc113ec3849dcc6
+  - version: opnfv-6.1.0
+    location:
+      apex-os-net-config: e09d110d7b58d26424c28a128cdfd8c766636461
 
 branches:
   - name: stable/fraser
similarity index 90%
rename from releases/fraser/armband.yml
rename to releases/fraser/armband.yaml
index 66afd10..3a2b260 100644 (file)
@@ -15,6 +15,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       armband: 2b0ac4026a3acf3b10ab2f4c416636d80ab559f0
+  - version: opnfv-6.1.0
+    location:
+      armband: 0de669e26d14794ab117e915abaa6bf6b1dd878d
 
 branches:
   - name: stable/fraser
index a86fabb..60250bd 100644 (file)
@@ -8,6 +8,14 @@ releases:
     location:
       auto: 3a957a75f99686767d13f45d74b5ca8463559b7b
 
+  - version: opnfv-6.1.0
+    location:
+      auto: b718a43380376d2b19222c4203c97a95ca849ae8
+
+  - version: opnfv-6.1.1
+    location:
+      auto: 0f43563624832c5908e6fc00eb0a4bbc6cc82c33
+
 branches:
   - name: stable/fraser
     location:
index 91163b5..beda625 100644 (file)
@@ -8,6 +8,10 @@ releases:
     location:
       availability: c1ee3631b59009ff61450808e2bd33fe1d4b17f2
 
+  - version: opnfv-6.1.0
+    location:
+      availability: c1ee3631b59009ff61450808e2bd33fe1d4b17f2
+
 branches:
   - name: stable/fraser
     location:
index 4ad1e9d..e8d88f1 100644 (file)
@@ -8,6 +8,10 @@ releases:
     location:
       barometer: 70a568ed8eed6f1a336f1fbe9bbc6900422e0c11
 
+  - version: opnfv-6.1.0
+    location:
+      barometer: 70a568ed8eed6f1a336f1fbe9bbc6900422e0c11
+
 branches:
   - name: stable/fraser
     location:
index e72d0f6..b2df4cb 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       bottlenecks: d76736440f852baed2e10a9b92c0557aabc041a6
+  - version: opnfv-6.1.0
+    location:
+      bottlenecks: d76736440f852baed2e10a9b92c0557aabc041a6
 
 branches:
   - name: stable/fraser
index e334910..8e3db3c 100644 (file)
@@ -3,6 +3,11 @@ project: calipso
 project-type: tools
 release-model: stable
 
+releases:
+  - version: opnfv-6.1.0
+    location:
+      calipso: 5c821a4d1462f3b0131f37995f40fc77a53468e6
+
 branches:
   - name: stable/fraser
     location:
index c731d2a..ba3e7d6 100644 (file)
@@ -10,6 +10,9 @@ releases:
   - version: opnfv-6.0.1
     location:
       clover: be5f20bbe91f1ae3138a1e338eea5b45e89bda82
+  - version: opnfv-6.1.0
+    location:
+      clover: 596a3573b2622a5d314349592088b6b737f5e126
 
 branches:
   - name: stable/fraser
index 5c44336..c01ca9f 100644 (file)
@@ -4,6 +4,13 @@ project-type: installer
 release-model: stable
 
 releases:
+  - version: opnfv-6.1.0
+    location:
+      compass4nfv: 499d95cdea092ea9eb76a939b6ea832601d41b7f
+  - version: opnfv-6.1.0
+    location:
+      compass-containers: 15a7cbc925bed896c3c09a5635454c33dbffbadc
+
   - version: opnfv-6.0.0
     location:
       compass4nfv: ab73374e424a679cc42b9812e6bd39a49fcea07d
index ed42ff0..c95007f 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       container4nfv: 38d0ffe507a137167ffdbac860de5c1a738e81a8
+  - version: opnfv-6.1.0
+    location:
+      container4nfv: 38d0ffe507a137167ffdbac860de5c1a738e81a8
 
 branches:
   - name: stable/fraser
index 28cfe7b..336a280 100644 (file)
@@ -16,6 +16,10 @@ releases:
     location:
       doctor: cd500723c3b2de3655b2dc56ea9647f358183264
 
+  - version: opnfv-6.1.0
+    location:
+      doctor: c91aa72e7df34ec3416be3c9f73f7484a91312fb
+
 branches:
   - name: stable/fraser
     location:
index 9d08cbf..1d7730f 100644 (file)
@@ -3,6 +3,11 @@ project: fds
 project-type: feature
 release-model: stable
 
+releases:
+  - version: opnfv-6.1.0
+    location:
+      fds: 6eb4ed8ce9be7135ec65318b7b833f3c487498be
+
 branches:
   - name: stable/fraser
     location:
index 226ba58..dd45d30 100644 (file)
@@ -15,6 +15,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       fuel: d45841926790df8313912697d31753c120e2c4aa
+  - version: opnfv-6.1.0
+    location:
+      fuel: e29220a401a5ad0607453d6a82de9b61d1c02aca
 
 branches:
   - name: stable/fraser
index d1837b8..e127588 100644 (file)
@@ -10,6 +10,12 @@ releases:
   - version: opnfv-6.0.0
     location:
       functest-kubernetes: 770bd295031af2e12da3472b9ed2763bfdc4deaf
+  - version: opnfv-6.1.0
+    location:
+      functest: 7be15936ba4fd0f624200ae6b587081ab292077c
+  - version: opnfv-6.1.0
+    location:
+      functest-kubernetes: c3e48ccef64acc6ba31823e1c8d6138eebbffb8c
 
 branches:
   - name: stable/fraser
index 2e92199..a211296 100644 (file)
@@ -15,8 +15,13 @@ releases:
   - version: opnfv-6.0.0
     location:
       ipv6: 5b914695088b39aee3886bd60be4707b7a11a1e8
+  - version: opnfv-6.1.0
+    location:
+      ipv6: 5c8ce8ff16e9dee430357cb60d1eba5a8d1961b7
 
 branches:
   - name: stable/fraser
     location:
       ipv6: 809dba7f52ff1571a760a01376530de23c5d97c9
+
+release-notes: http://docs.opnfv.org/en/stable-fraser/submodules/ipv6/docs/release/release-notes/release-notes.html
index 6c230c3..fcb6d37 100644 (file)
@@ -16,6 +16,10 @@ releases:
     location:
       joid: 266a4fd08bef19fca930cbbb1d45f5639b87d3c0
 
+  - version: opnfv-6.1.0
+    location:
+      joid: ff656d6b0fa60241c76709a41c023b76ba4def8f
+
 branches:
   - name: stable/fraser
     location:
index 9df1642..ba423d3 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       nfvbench: c8402089ad8686a16ad08ce6c6e16a14c3144d64
+  - version: opnfv-6.1.0
+    location:
+      nfvbench: c8402089ad8686a16ad08ce6c6e16a14c3144d64
 
 branches:
   - name: stable/fraser
index 6e22328..a206f11 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       opnfvdocs: 49538d56771c45d8d437ab00abaa1b52f97ac931
+  - version: opnfv-6.1.0
+    location:
+      opnfvdocs: 98570eb59bb4abda67cea7a22feec45eebc4bec2
 
 branches:
   - name: stable/fraser
index 40eac0c..3b88d79 100644 (file)
@@ -8,6 +8,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       ovn4nfv: 651acb603c2f4523905e4fe5134fd8a7940e1f3d
+  - version: opnfv-6.1.0
+    location:
+      ovn4nfv: 651acb603c2f4523905e4fe5134fd8a7940e1f3d
 
 branches:
   - name: stable/fraser
index 3c30f72..984ca8c 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       samplevnf: 4685c59ec97927af559b4bf10001d0e07de34702
+  - version: opnfv-6.1.0
+    location:
+      samplevnf: 95e9ab89f6d8f9911a9fdb625e8721f3d2e20b1a
 
 branches:
   - name: stable/fraser
index 6fa8fa5..559398c 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       sdnvpn: be6cce375c0363f93fa6b1a099eb34fee75a6161
+  - version: opnfv-6.1.0
+    location:
+      sdnvpn: be6cce375c0363f93fa6b1a099eb34fee75a6161
 
 branches:
   - name: stable/fraser
index 83850d7..8da8287 100644 (file)
@@ -7,6 +7,10 @@ releases:
   - version: opnfv-6.0.0
     location:
       sfc: 084446656bf2794a11de56b782f589af1f703487
+  - version: opnfv-6.1.0
+    location:
+      sfc: 7f8a775dec72e03d6cae2400b7a49d7a097c8957
+
 
 branches:
   - name: stable/fraser
index c6c316c..fc29997 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       snaps: 4edc3d87392cf78c3f046217543fb76380413306
+  - version: opnfv-6.1.0
+    location:
+      snaps: 4edc3d87392cf78c3f046217543fb76380413306
 
 branches:
   - name: stable/fraser
index b4fd845..3259b30 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       stor4nfv: fcedde93eb366867ed428d362e2cb8a6b7f28b3c
+  - version: opnfv-6.1.0
+    location:
+      stor4nfv: 3f654aa9b1e19eb9d84b0632a5bc1e7bde96c281
 
 branches:
   - name: stable/fraser
index 1389c7a..7040cbc 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       storperf: 2f8c1546ee5d79f9b4c46e960a74930cfe0fe50e
+  - version: opnfv-6.1.0
+    location:
+      storperf: 8962423227e13f45ef9f7dfbf48ed4847d3f3865
 
 branches:
   - name: stable/fraser
index 95d8db6..c2e4e0d 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       vswitchperf: 998842df061caf3f90adf756c78667262525a6e0
+  - version: opnfv-6.1.0
+    location:
+      vswitchperf: 998842df061caf3f90adf756c78667262525a6e0
 
 branches:
   - name: stable/fraser
index 59f6c10..25ab64c 100644 (file)
@@ -7,6 +7,9 @@ releases:
   - version: opnfv-6.0.0
     location:
       yardstick: a4c8f2a99f56dd4c9fbac4021706aa9186d23ed8
+  - version: opnfv-6.1.0
+    location:
+      yardstick: 7dc30d54a77249d95d2a89770393cee98ff63c8c
 
 branches:
   - name: stable/fraser
diff --git a/releases/scripts/release-status.sh b/releases/scripts/release-status.sh
new file mode 100644 (file)
index 0000000..da66bc9
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation 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
+
+TAG="${TAG:-opnfv-6.0.0}"
+RELEASE="${RELEASE:-fraser}"
+
+for project in releases/$RELEASE/*; do
+    python releases/scripts/repos.py -n -f $project >> repos.txt
+done
+
+while read -r repo
+do
+    tag="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/tags/$TAG")"
+    echo "$repo $tag"
+done < repos.txt
+
+# rm repos.txt
diff --git a/releases/scripts/repos.py b/releases/scripts/repos.py
new file mode 100644 (file)
index 0000000..0ded020
--- /dev/null
@@ -0,0 +1,60 @@
+#!/usr/bin/env python2
+# SPDX-License-Identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation 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
+##############################################################################
+"""
+List Release Repos
+"""
+
+import argparse
+import yaml
+
+
+def main():
+    """Given a release yamlfile list the repos it contains"""
+
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--file', '-f',
+                        type=argparse.FileType('r'),
+                        required=True)
+    parser.add_argument('--names', '-n',
+                        action='store_true',
+                        default=False,
+                        help="Only print the names of repos, "
+                             "not their SHAs")
+    parser.add_argument('--release', '-r',
+                        type=str,
+                        help="Only print"
+                             "SHAs for the specified release")
+    args = parser.parse_args()
+
+    project = yaml.safe_load(args.file)
+
+    list_repos(project, args)
+
+
+def list_repos(project, args):
+    """List repositories in the project file"""
+
+    lookup = project.get('releases', [])
+    if 'releases' not in project:
+        exit(0)
+
+    for item in lookup:
+        repo, ref = next(iter(item['location'].items()))
+        if args.names:
+            print(repo)
+        elif args.release and item['version'] == args.release:
+            print("%s %s" % (repo, ref))
+        elif not args.release:
+            # Print all releases
+            print("%s %s %s" % (repo, item['version'], ref))
+
+
+if __name__ == "__main__":
+    main()
index 0d5a011..528388f 100644 (file)
@@ -43,6 +43,9 @@
     - python-six
     - net-tools
     - bc
+    - sysstat
+    - xmlstarlet
+    - facter
 
 - name: install the 'Development tools' package group
   yum:
index 609c8d5..e91c485 100644 (file)
@@ -56,6 +56,9 @@
     - libnuma-dev
     - shellcheck
     - python-pip
+    - sysstat
+    - xmlstarlet
+    - facter
 
 - name: Add Docker apt key.
   apt_key: