- stage('Clone/Checkout') {
- git branch: default_branch, url: git_project
- checkout([
- $class: 'GitSCM',
- branches: [[name: current_branch]],
- extensions: [],
- userRemoteConfigs: [[
- refspec: '+refs/pull/*/head:refs/remotes/origin/pr/*',
- url: git_project
- ]]
- ])
- sh 'git show'
- }
- stage('Verify') {
- Verify().call()
- }
- stage('Docker login') {
- wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[password: env.HARBOR_USERNAME, var: 'HARBOR_USERNAME'], [password: env.HARBOR_PASSWORD, var: 'HARBOR_PASSWORD'], [password: image_registry, var: 'IMAGE_REGISTRY']]]) {
- sh '''#!/bin/bash -eu
- echo ${HARBOR_PASSWORD} | docker login --username ${HARBOR_USERNAME} --password-stdin ${IMAGE_REGISTRY}
- '''
+ timeout(30) {
+ stage('Clone/Checkout') {
+ git branch: default_branch, url: git_project
+ checkout([
+ $class: 'GitSCM',
+ branches: [[name: current_branch]],
+ extensions: [],
+ userRemoteConfigs: [[
+ refspec: '+refs/pull/*/head:refs/remotes/origin/pr/*',
+ url: git_project
+ ]]
+ ])
+ sh 'git show'
+ }
+ stage('Verify') {
+ Verify().call()
+ if (currentBuild.result == 'FAILURE') {
+ Error('Failed at verification stage').call()
+ }
+ }
+ stage('Docker login') {
+ if (env.DRY_RUN != 'true') {
+ withCredentials([usernamePassword(credentialsId: 'nordix-cicd-harbor-credentials', passwordVariable: 'HARBOR_PASSWORD', usernameVariable: 'HARBOR_USERNAME')]) {
+ sh '''#!/bin/bash -eu
+ echo $HARBOR_PASSWORD | docker login --username $HARBOR_USERNAME --password-stdin $IMAGE_REGISTRY
+ '''
+ }
+ } else {
+ Utils.markStageSkippedForConditional('Docker login')
+ }
+ }
+ stage('Base Image') {
+ BaseImage(version, build_steps, image_registry, local_version).call()
+ }
+ stage('Images') {
+ Images(image_names, version, build_steps, image_registry, local_version).call()
+ if (currentBuild.result == 'FAILURE') {
+ Error('Failed to build image(s)').call()
+ }
+ }
+ stage('E2E') {
+ if (e2e_enabled == 'true' && env.DRY_RUN != 'true') {
+ E2e(e2e_enabled).call()
+ } else {
+ Utils.markStageSkippedForConditional('E2E')
+ }