diff --git a/Jenkinsfile b/Jenkinsfile index c8d23c763721f90260c693b4a2ada07c5fab6409..ca70c73b3b13d341d975c54919a913df32c0ab49 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,7 @@ #!/usr/bin/env groovy @Library('jenkins-pipeline@1.0.9') _ -def stage_required = [build: false, data: false, full: false] +def stage_required = [build: false, data: false, full: false, docker: false] pipeline { agent none @@ -55,6 +55,10 @@ pipeline { stage_required.data = true echo "Updating Tests/Data." } + if (path.startsWith("scripts/docker") && !stage_required.docker) { + stage_required.docker = true + echo "Doing Docker images build." + } } } } @@ -335,6 +339,26 @@ pipeline { stage('Master') { when { environment name: 'JOB_NAME', value: 'ufz/ogs/master' } parallel { + // ********************* Push Docker Images **************************** + stage('Push Docker Images') { + when { + beforeAgent true + expression { return stage_required.docker || stage_required.full } + } + agent { label 'docker' } + steps { + script { + dir('scripts/docker') { + def gccImage = docker.build("ogs6/gcc:latest", "-f Dockerfile.gcc.full .") + def clangImage = docker.build("ogs6/clang:latest", "-f Dockerfile.clang.full .") + docker.withRegistry('https://registry.hub.docker.com', 'docker-hub-credentials') { + gccImage.push() + clangImage.push() + } + } + } + } + } // ************************* Analyzers ********************************* stage('Analyzers') { when { diff --git a/web/content/docs/devguide/advanced/docker.pandoc b/web/content/docs/devguide/advanced/docker.pandoc index f61608f963fe9f30930976f0eb1f39e136c41ce4..4b22d56727430a560dd99e7faef75484e519edb8 100644 --- a/web/content/docs/devguide/advanced/docker.pandoc +++ b/web/content/docs/devguide/advanced/docker.pandoc @@ -81,3 +81,9 @@ make ogs ./bin/ogs ``` +## OGS-6 images used by Jenkins + +The following images are used by Jenkins: + +- `ogs6/gcc`, defined in [scripts/docker/Dockerfile.gcc.full](https://github.com/ufz/ogs/blob/master/scripts/docker/Dockerfile.gcc.full) +- `ogs6/clang`, defined in [scripts/docker/Dockerfile.clang.full](scripts/docker/Dockerfile.clang.full)