diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..9bfb0c8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,39 @@ +// 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'" + } + } + } + } +} +