--- # ============LICENSE_START======================================================= # Copyright (C) 2019 Nordix Foundation. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= - project: name: 'onap-verify-deploy-test' project: 'onap-verify-deploy-test' stream: - 'master': branch: '{stream}' k8s-version: 'master' deploy-scenario: 'onap-full-nofeature' - 'guilin': branch: '{stream}' k8s-version: '1.15' deploy-scenario: 'onap-full-nofeature' - 'frankfurt': branch: '{stream}' k8s-version: '1.15' deploy-scenario: 'onap-sdc-nofeature' - 'elalto': branch: '{stream}' k8s-version: '1.15' deploy-scenario: 'onap-sdc-nofeature' environment-type: - online: disabled: false execution-mode: online-deployment successful: false failed: false unstable: false notbuilt: false - offline: disabled: true execution-mode: offline-deployment successful: false failed: false unstable: false notbuilt: false phase: - deploy - test type: - cloud: provisioner-type: 'heat' slave-type: 'jumphost' gated-projects: 'infra/stack/onap|infra/installer/oom' pdf: "https://gerrit.nordix.org/gitweb?p=infra/provisioner/heat.git;a=blob_plain;f=playbooks/roles/create-stack/files/heat-environment-ci-city-ubuntu1804-onap.yaml" idf: "https://gerrit.nordix.org/gitweb?p=infra/provisioner/heat.git;a=blob_plain;f=playbooks/roles/create-stack/files/heat-idf.yaml" distro: - ubuntu1804 cloud: - city: openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd' # This should be dependency-jobs: 'onap-verify-tox-{stream}' dependency-job-var: 'TRIGGER_onap_verify_tox_{stream}_BUILD_RESULT' jobs: - 'onap-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}' - 'onap-verify-{environment-type}-deploy-{distro}-{cloud}-{type}-{stream}' - 'onap-verify-{environment-type}-deployk8s-{distro}-{cloud}-{type}-{stream}' - 'onap-verify-{environment-type}-xtesting-infra-healthcheck-{distro}-{cloud}-{type}-{stream}' - 'onap-verify-{environment-type}-xtesting-healthcheck-{distro}-{cloud}-{type}-{stream}' - job-template: name: 'onap-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}' project-type: multijob disabled: '{obj:disabled}' concurrent: true parameters: - string: name: DEPLOY_SCENARIO default: '{deploy-scenario}' description: 'Scenario to test change with.' - string: name: K8S_VERSION default: '{k8s-version}' description: 'K8S version to use for this deployment' - string: name: INVENTORY_INI default: /tmp/inventory.ini description: 'Location of the inventory file. Copied from k8s install' - string: name: DISTRO default: '{distro}' description: 'Distribution to use for configuring target nodes (networking etc.)' - label: name: SLAVE_LABEL default: 'engine-{slave-type}-{environment-type}-{distro}-fra' description: 'Slave label to schedule this job on.' - string: name: HW_TYPE default: '{type}' description: 'Hardware type - could be virtual, cloud, or baremetal' - string: name: EXECUTION_MODE default: '{execution-mode}' description: 'Execution mode to run in' - string: name: STACK_TYPE default: 'onap' description: 'Stack to package, deploy, test, release' - string: name: PDF default: '{pdf}' description: 'PDF file to use for deployment' - string: name: IDF default: '{idf}' description: 'IDF file to use for deployment' - string: name: HEAT_STACK_NAME default: "nordix-cicd-verify-onap-{environment-type}-{distro}-$GERRIT_CHANGE_NUMBER" description: 'Name of the created stack' - string: name: KEYPAIR_NAME default: "keypair-nordix-cicd-verify-onap-{environment-type}-{distro}-$GERRIT_CHANGE_NUMBER" description: 'Name of the created keypair' - string: name: USE_PREBUILT_DEPLOYMENT_IMAGE default: 'true' description: 'Use prebuilt deployment image while running as part of CI/CD' - string: name: DELETE_STACK default: 'false' description: 'Delete the stack upon completion of the build' - string: name: VERBOSITY default: 'true' description: 'Verbosity setting for the engine - true or false - default is false' - string: name: CI_LOOP default: "verify" description: 'CI loop the job belongs to' - project-parameters: project: $GERRIT_PROJECT branch: '{branch}' description: 'The project and branch which the change is proposed for' - nordix-gerrit-parameters properties: - logrotate # NOTE (fdegir): throttle categories are controlled in jenkins global configuration - throttle: enabled: true max-per-node: 1 max-total: 8 option: category categories: - engine-verify-deploy-test scm: - git-scm-gerrit: ssh-credentials-id: nordixinfra-nordix-gerrit-ssh branch: $GERRIT_BRANCH refspec: $GERRIT_REFSPEC wipe_workspace: true clean_before: false triggers: - gerrit: server-name: 'Nordix Gerrit' 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: 'REG_EXP' project-pattern: '{gated-projects}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' disable-strict-forbidden-file-verification: 'true' forbidden-file-paths: - compare-type: ANT pattern: 'docs/**|releasenotes/**' skip-vote: successful: '{obj:successful}' failed: '{obj:failed}' unstable: '{obj:unstable}' notbuilt: '{obj:notbuilt}' custom-url: '* $JOB_NAME $BUILD_URL' readable-message: 'true' dependency-jobs: '{dependency-jobs}' wrappers: - build-timeout: timeout: 600 - ssh-agent-credentials: users: - 'nordixinfra-nordix-gerrit-ssh' - 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 Artifactory and Gerrit if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then echo "Info : Offline deployment. Adding City OpenStack Endpoint, Nordix Artifactory and 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 91.106.198.25 artifactory.nordix.org 91.106.198.142 gerrit.nordix.org 86.107.242.50 fra1.citycloud.com # managed by engine EOF" # we need to get rid of search domain as well sudo sed -i 's/^search/# search/' /etc/resolv.conf fi builders: - 'generate-change-metadata-macro' - 'generate-k8sdeployment-environment-macro' - multijob: name: "{environment-type} deployment on {type} instances" condition: SUCCESSFUL execution-type: SEQUENTIALLY projects: - name: 'onap-verify-{environment-type}-deployk8s-{distro}-{cloud}-{type}-{stream}' current-parameters: true git-revision: true node-parameters: true kill-phase-on: FAILURE abort-all-job: false property-file: $WORKSPACE/k8s.properties - name: 'onap-verify-{environment-type}-deploy-{distro}-{cloud}-{type}-{stream}' current-parameters: true git-revision: true node-parameters: true kill-phase-on: FAILURE abort-all-job: false property-file: $WORKSPACE/change.properties - multijob: name: xTesting for infra-healthcheck and healthcheck condition: ALWAYS projects: - name: 'onap-verify-{environment-type}-xtesting-infra-healthcheck-{distro}-{cloud}-{type}-{stream}' current-parameters: true git-revision: true node-parameters: true kill-phase-on: FAILURE abort-all-job: false property-file: $WORKSPACE/change.properties - name: 'onap-verify-{environment-type}-xtesting-healthcheck-{distro}-{cloud}-{type}-{stream}' current-parameters: true git-revision: true node-parameters: true kill-phase-on: FAILURE abort-all-job: false publishers: - postbuildscript: builders: - role: SLAVE build-on: - SUCCESS - FAILURE - ABORTED - NOT_BUILT - UNSTABLE build-steps: - 'wait-pkg-mgr-macro' - 'delete-stack-macro' - job-template: name: 'onap-verify-{environment-type}-deploy-{distro}-{cloud}-{type}-{stream}' disabled: '{obj:disabled}' concurrent: true properties: - logrotate - throttle: max-per-node: 1 max-total: 3 option: project scm: - git-scm-gerrit: ssh-credentials-id: nordixinfra-nordix-gerrit-ssh branch: $GERRIT_BRANCH refspec: $GERRIT_REFSPEC wipe_workspace: true clean_before: false wrappers: - build-timeout: timeout: 600 - 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 builders: - 'generate-ssh-keypair-macro' - 'wait-pkg-mgr-macro' - 'download-deploy-artifact-macro' - 'deploy-macro' - job-template: name: 'onap-verify-{environment-type}-deployk8s-{distro}-{cloud}-{type}-{stream}' disabled: '{obj:disabled}' concurrent: true properties: - logrotate - throttle: max-per-node: 1 max-total: 3 option: project scm: - git-scm-gerrit: ssh-credentials-id: nordixinfra-nordix-gerrit-ssh branch: $GERRIT_BRANCH refspec: $GERRIT_REFSPEC wipe_workspace: true clean_before: false wrappers: - build-timeout: timeout: 600 - 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 builders: - 'generate-ssh-keypair-macro' - 'wait-pkg-mgr-macro' - 'download-deploy-artifact-macro' - 'deploy-macro' - job-template: name: 'onap-verify-{environment-type}-xtesting-infra-healthcheck-{distro}-{cloud}-{type}-{stream}' disabled: '{obj:disabled}' parameters: - string: name: EXECUTION_MODE default: '{execution-mode}' description: 'Execution mode' - string: name: TEST_REPO_URL default: 'https://gerrit.nordix.org/infra/test.git' description: 'URL to clone the test repo from' - string: name: TEST_FW default: 'xtesting' description: 'Test framework to use' - string: name: TEST_SUITE default: 'infra-healthcheck' description: 'Test suite to run' properties: - logrotate - throttle: max-per-node: 1 max-total: 3 option: project wrappers: - build-timeout: timeout: 600 - mask-passwords - fix-workspace-permissions builders: - 'download-xtesting-artifact-macro' - 'xtesting-infra-healthcheck-macro' - job-template: name: 'onap-verify-{environment-type}-xtesting-healthcheck-{distro}-{cloud}-{type}-{stream}' disabled: '{obj:disabled}' parameters: - string: name: EXECUTION_MODE default: '{execution-mode}' description: 'Execution mode' - string: name: TEST_REPO_URL default: 'https://gerrit.nordix.org/infra/test.git' description: 'URL to clone the test repo from' - string: name: TEST_FW default: 'xtesting' description: 'Test framework to use' - string: name: TEST_SUITE default: 'healthcheck' description: 'Test suite to run' properties: - logrotate - throttle: max-per-node: 1 max-total: 3 option: project wrappers: - build-timeout: timeout: 600 - mask-passwords - fix-workspace-permissions builders: - 'wait-pkg-mgr-macro' - 'xtesting-healthcheck-macro'