// this file only: (c) 2020 Kegan Myers, use allowed under the MIT License pipeline { agent any stages { stage('build') { steps { checkout scm script { sh 'git rev-parse HEAD > commit' def gitCommit = readFile('commit').trim() def registryHost = "registry.terrible.network" def imagePath = "terribleplan/folding-at-home-docker-gpu" // my registry withCredentials([usernamePassword(credentialsId: 'registry-terrible-network', passwordVariable: 'password', usernameVariable: 'username')]) { sh "docker login -u '${username}' -p '${password}' 'https://${registryHost}'" } // docker hub withCredentials([usernamePassword(credentialsId: 'docker-hub', passwordVariable: 'password', usernameVariable: 'username')]) { sh "docker login -u '${username}' -p '${password}'" } // my registry def sourceImage = "${registryHost}/${imagePath}:${gitCommit}" sh "docker build -t '${sourceImage}' ." sh "docker tag '${sourceImage}' '${registryHost}/${imagePath}:latest'" sh "docker push '${registryHost}/${imagePath}:latest'" // docker hub sh "docker tag '${sourceImage}' '${imagePath}:${gitCommit}'" sh "docker push '${imagePath}:${gitCommit}'" sh "docker tag '${sourceImage}' '${imagePath}:latest'" sh "docker push '${imagePath}:latest'" } } } } }