cloud:
- city:
- slave-label: 'city-jumphost-ubuntu1804'
+ slave-label: 'engine-jumphost-online-ubuntu1804'
openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-onap'
daily-trigger: '@midnight'
- xerces:
cloud:
- city:
- slave-label: 'city-jumphost-ubuntu1804'
+ slave-label: 'engine-jumphost-online-ubuntu1804'
openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-onap'
daily-trigger: '@daily'
description: 'CI loop type'
- label:
name: SLAVE_LABEL
- default: 'engine-build-ubuntu1804'
+ default: 'engine-package-ubuntu1804'
description: 'Slave label to schedule this job on.'
properties:
- logrotate
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'engine-verify-package-.*'
+ - 'onap-sdc-periodic-release-offline-.*'
+ - 'onap-so-periodic-release-offline-.*'
+ - 'kubernetes-periodic-release-offline-.*'
+ block-level: 'NODE'
wrappers:
- build-timeout:
cloud:
- city:
- slave-label: 'city-jumphost-ubuntu1804'
+ slave-label: 'engine-jumphost-online-ubuntu1804'
openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-onap'
daily-trigger: '@midnight'
description: 'CI loop type'
- label:
name: SLAVE_LABEL
- default: 'engine-build-ubuntu1804'
+ default: 'engine-package-ubuntu1804'
description: 'Slave label to schedule this job on.'
properties:
- logrotate
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'engine-verify-package-.*'
+ - 'onap-sdc-periodic-release-offline-.*'
+ - 'onap-so-periodic-release-offline-.*'
+ - 'kubernetes-periodic-release-offline-.*'
+ block-level: 'NODE'
wrappers:
- build-timeout:
- nordix-gerrit-parameters
- label:
name: SLAVE_LABEL
- default: 'city-jumphost-ubuntu1804'
+ default: 'engine-jumphost-online-ubuntu1804'
description: 'Slave label to schedule this job on. All slaves have Ubuntu1604 no matter what distro target nodes use'
- string:
name: PROVISIONER_TYPE
set -o errexit
set -o pipefail
-echo "Info : Generating SSH keypair for the job"
-ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N '' <<< y > /dev/null 2>&1
-chmod -R go-rwx ~/.ssh
+if [[ ! -f "$HOME/.ssh/id_rsa" ]]; then
+ echo "Info : Generating SSH keypair for the job"
+ ssh-keygen -q -t rsa -f ~/.ssh/id_rsa -N '' <<< y > /dev/null 2>&1
+ chmod -R go-rwx ~/.ssh
+fi
set -o errexit
set -o pipefail
-cd "$WORKSPACE"
+cd "$WORKSPACE/engine"
./package.sh
+
+# vim: set ts=2 sw=2 expandtab:
set -o errexit
set -o pipefail
-if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
+if [[ "$EXECUTION_MODE" == "packaging" || "$EXECUTION_MODE" == "offline-deployment" ]]; then
cd /tmp
for ARTIFACT_TO_UPLOAD in $ARTIFACTS_TO_UPLOAD; do
echo "Info : Generating checksums for $ARTIFACT_TO_UPLOAD"
# just wait few seconds before attempting to check pkg manager process
sleep 10
-echo "Info: Waiting for completion of an existing $pkg_mgr_cmd process before proceeding..."
+echo "Info : Waiting for completion of an existing $pkg_mgr_cmd process before proceeding..."
while true; do
pkg_mgr_process=$(pgrep -f $pkg_mgr_cmd | cat)
if [[ -n $pkg_mgr_process ]]; then
break
fi
done
-echo "Info: $pkg_mgr_cmd process done. Continuing..."
+echo "Info : $pkg_mgr_cmd process done. Continuing..."
# vim: set ts=2 sw=2 expandtab:
- city:
openrc-credentials-file: 'est-jenkins-openrcfile-city-karlskrona-onap'
+ dependency-jobs: 'engine-verify-package-{distro}-{stream}'
+ dependency-job-var: 'TRIGGER_engine_verify_package_{distro}_{stream}_BUILD_RESULT'
+
jobs:
- 'engine-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}'
- 'engine-verify-{environment-type}-{phase}-{distro}-{cloud}-{type}-{stream}'
parameters:
- label:
name: SLAVE_LABEL
- default: 'engine-{slave-type}-online-{distro}'
+ default: 'engine-{slave-type}-{environment-type}-{distro}'
description: 'Slave label to schedule this job on.'
- string:
name: EXECUTION_MODE
name: VERBOSITY
default: 'true'
description: 'Verbosity setting for the engine - true or false - default is false'
+ - string:
+ name: NORDIX_GERRIT_PUBLIC_IP
+ default: '91.106.198.142'
+ description: 'Public IP of Nordix Gerrit. Offline deployments can not resolve domain name'
- string:
name: NORDIX_ARM_PUBLIC_IP
default: '91.106.198.25'
description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
- string:
name: ARTIFACT_TO_DOWNLOAD
- default: "https://artifactory.nordix.org/artifactory/nordix-kubernetes/installer/oss/gerrit/$GERRIT_CHANGE_ID/k8s-installer-ubuntu1804.bsx"
+ default: "k8s-installer-ubuntu1804.bsx"
+ description: 'Artifact to download'
+ - string:
+ name: NORDIX_ARTIFACT_URL
+ default: "$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/gerrit/$GERRIT_CHANGE_NUMBER"
description: 'Artifact to download'
- project-parameters:
project: $GERRIT_PROJECT
- 'engine-verify-offline-deploy-test-.*'
block-level: 'NODE'
- wrappers:
- - build-timeout:
- timeout: 180
- - credentials-binding:
- - file:
- credential-id: '{openrc-credentials-file}'
- variable: OPENRC_FILE
- - username-password-separated:
- credential-id: 'nordix-cicd-arm-credentials'
- username: NORDIX_ARM_USERNAME
- password: NORDIX_ARM_TOKEN
- - mask-passwords
- - fix-workspace-permissions
- - openstack:
- single-use: True
-
scm:
- git-scm-gerrit:
ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
notbuilt: '{obj:notbuilt}'
custom-url: '* $JOB_NAME $BUILD_URL'
readable-message: 'true'
- dependency-jobs: 'engine-verify-tox-{stream},engine-verify-package-{distro}-{stream}'
+ dependency-jobs: '{dependency-jobs}'
+
+ wrappers:
+ - build-timeout:
+ timeout: 180
+ - credentials-binding:
+ - file:
+ credential-id: '{openrc-credentials-file}'
+ variable: OPENRC_FILE
+ - username-password-separated:
+ credential-id: 'nordix-cicd-arm-credentials'
+ username: NORDIX_ARM_USERNAME
+ password: NORDIX_ARM_TOKEN
+ - mask-passwords
+ - openstack:
+ single-use: True
+ - pre-scm-buildstep:
+ failOnError: true
+ buildsteps:
+ - system-groovy:
+ command: |
+ def build = this.getProperty('binding').getVariable('build')
+ def listener = this.getProperty('binding').getVariable('listener')
+ if (build.getEnvironment(listener).{dependency-job-var} != "SUCCESS") {{
+ println "WARN : Aborting build since dependent job did not succeed!"
+ throw new InterruptedException()
+ }}
+ - shell: |
+ #!/bin/bash
+ sudo chown -R $USER:$USER $WORKSPACE || exit 1
+ # offline nodes can not resolve Nordix Gerrit
+ if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
+ echo "Info : Offline deployment. Adding Nordix Gerrit Public IP to /etc/hosts"
+ sudo sed -i 's/^search/# search/' /etc/resolv.conf
+ sudo bash -c "cat << EOF >> /etc/hosts
+ # managed by engine
+ $NORDIX_GERRIT_PUBLIC_IP gerrit.nordix.org
+ # managed by engine
+ EOF"
+ fi
builders:
- multijob:
max-total: 3
option: project
+ scm:
+ - git-scm-gerrit:
+ ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
+ branch: '{branch}'
+ refspec: $GERRIT_REFSPEC
+ wipe_workspace: true
+ clean_before: false
+
wrappers:
- build-timeout:
timeout: 180
- mask-passwords
- fix-workspace-permissions
- scm:
- - git-scm-gerrit:
- ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
- branch: '{branch}'
- refspec: $GERRIT_REFSPEC
- wipe_workspace: true
- clean_before: false
-
builders:
+ - shell: |
+ #!/bin/bash
+ if [[ "$EXECUTION_MODE" == "offline-deployment" && "$PROVISIONER_TYPE" == "heat" ]]; then
+ echo "Info : Offline deployment and testing on cloud instances is not currently supported!"
+ exit 0
+ fi
- 'generate-ssh-keypair-macro'
- 'wait-pkg-mgr-macro'
- 'download-artifact-macro'
distro:
- ubuntu1804
+ dependency-jobs: 'engine-verify-tox-{stream}'
+ dependency-job-var: 'TRIGGER_engine_verify_tox_{stream}_BUILD_RESULT'
+
jobs:
- 'engine-verify-package-{distro}-{stream}'
name: NORDIX_ARM_REPO
default: 'nordix-kubernetes'
description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
+ - string:
+ name: NORDIX_ARTIFACT_URL
+ default: "$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/gerrit/$GERRIT_CHANGE_NUMBER"
+ description: 'Artifact to download'
- string:
name: CI_LOOP
default: 'verify'
description: 'CI loop type'
- label:
name: SLAVE_LABEL
- default: 'engine-master-offline-{distro}'
+ default: 'engine-package-{distro}'
description: 'Slave label to schedule this job on.'
- project-parameters:
project: $GERRIT_PROJECT
max-per-node: 1
max-total: 3
option: project
-
- wrappers:
- - build-timeout:
- timeout: 180
- - mask-passwords
- - fix-workspace-permissions
- - openstack:
- single-use: True
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'engine-verify-package-.*'
+ - 'onap-sdc-periodic-release-offline-.*'
+ - 'onap-so-periodic-release-offline-.*'
+ - 'kubernetes-periodic-release-offline-.*'
+ block-level: 'NODE'
scm:
- git-scm-gerrit:
notbuilt: '{obj:notbuilt}'
custom-url: '* $JOB_NAME $BUILD_URL'
readable-message: 'true'
- dependency-jobs: 'engine-verify-tox-{stream}'
+ dependency-jobs: '{dependency-jobs}'
wrappers:
+ - openstack:
+ single-use: True
- build-timeout:
timeout: 70
- credentials-binding:
username: NORDIX_ARM_USERNAME
password: NORDIX_ARM_TOKEN
- mask-passwords
- - fix-workspace-permissions
+ - pre-scm-buildstep:
+ failOnError: true
+ buildsteps:
+ - system-groovy:
+ command: |
+ def build = this.getProperty('binding').getVariable('build')
+ def listener = this.getProperty('binding').getVariable('listener')
+ if (build.getEnvironment(listener).{dependency-job-var} != "SUCCESS") {{
+ println "WARN : Aborting build since dependent job did not succeed!"
+ throw new InterruptedException()
+ }}
+ - shell: |
+ #!/bin/bash
+ sudo chown -R $USER:$USER $WORKSPACE || exit 1
+
builders:
- 'generate-ssh-keypair-macro'