@Library('cadoles') _ pipeline { agent { dockerfile { label 'docker' filename 'Dockerfile' dir 'misc/jenkins' } } stages { stage('Cancel older jobs') { steps { script { def buildNumber = env.BUILD_NUMBER as int if (buildNumber > 1) milestone(buildNumber - 1) milestone(buildNumber) } } } stage('Run unit tests') { steps { script { withCredentials([ usernamePassword([ credentialsId: 'forge-jenkins', usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD' ]) ]) { sh ''' git config --global credential.https://forge.cadoles.com.username "$GIT_USERNAME" git config --global credential.https://forge.cadoles.com.helper '!f() { test "$1" = get && echo "password=$GIT_PASSWORD"; }; f' export GOPRIVATE=forge.cadoles.com/arcad/edge make test ''' } } } } stage('Release') { when { anyOf { branch 'master' branch 'develop' } } steps { script { withCredentials([ usernamePassword([ credentialsId: 'forge-jenkins', usernameVariable: 'GITEA_RELEASE_USERNAME', passwordVariable: 'GITEA_RELEASE_PASSWORD' ]) ]) { sh """ export MKT_PROJECT_VERSION_BRANCH_NAME=${env.BRANCH_NAME} make mktools make gitea-release """ } String currentVersion = sh(script: "MKT_PROJECT_VERSION_BRANCH_NAME=${env.BRANCH_NAME} make version", returnStdout: true).trim() build( job: "../emissary-firmware/${env.GIT_BRANCH}", parameters: [ [$class: 'StringParameterValue', name: 'emissaryRelease', value: currentVersion] ], wait: false ) } } } } post { always { cleanWs() } } }