pipeline { agent { label 'linux' } parameters { string( name: 'BRANCH', defaultValue: 'master', description: 'Name of branch to build.' ) string( name: 'IMAGE_NAME', defaultValue: 'statusteam/go-waku', description: 'Docker image name.', ) string( name: 'IMAGE_TAG', defaultValue: 'deploy-test', description: 'Docker image name.', ) } options { timestamps() buildDiscarder(logRotator( numToKeepStr: '10', daysToKeepStr: '30', )) } stages { stage('Build') { steps { script { image = docker.build( "${params.IMAGE_NAME}:${GIT_COMMIT.take(8)}", "--build-arg='GIT_COMMIT=${GIT_COMMIT.take(8)}' ." ) } } } stage('Push') { steps { script { withDockerRegistry([ credentialsId: "dockerhub-statusteam-auto", url: "" ]) { image.push() } } } } stage('Deploy') { steps { script { withDockerRegistry([ credentialsId: "dockerhub-statusteam-auto", url: "" ]) { image.push(env.IMAGE_TAG) } } } } } post { success { script { withCredentials([ string( credentialsId: 'discord-waku-deployments-webhook', variable: 'DISCORD_WEBHOOK' ), ]) { discordSend( title: "${env.JOB_NAME}#${env.BUILD_NUMBER}", description: """ Go-Waku deployment successful! Image: [`${IMAGE_NAME}:${IMAGE_TAG}`](https://hub.docker.com/r/${IMAGE_NAME}/tags?page=1&name=${IMAGE_TAG}) Branch: [`${GIT_BRANCH.minus("origin/")}`](https://github.com/status-im/nwaku/commits/${GIT_BRANCH.minus("origin/")}) Commit: [`${GIT_COMMIT.take(8)}`](https://github.com/status-im/nwaku/commit/${GIT_COMMIT.take(8)}) """, link: env.BUILD_URL, result: currentBuild.currentResult, webhookURL: env.DISCORD_WEBHOOK ) } } } always { cleanWs() } } }