Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.22 KiB
image: docker:stable
services:
  - docker:stable-dind

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"
  R_VERSION_UPDATE: "true"

before_script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  - export VERSION_MAJ_MIN_PAT=`cat tidyverse/latest.Dockerfile | head -n1 | sed 's/.*\([0-9].[0-9].[0-9]\)/\1/'`
  - export VERSION_MAJ_MIN=`echo "${VERSION_MAJ_MIN_PAT:0:3}"`
  - export VERSION_MAJ=`echo "${VERSION_MAJ_MIN_PAT:0:1}"`

build-latest:
  stage: build
  script:
    - cd tidyverse && docker build --pull -t $CI_REGISTRY_IMAGE:latest -f latest.Dockerfile .
    - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN_PAT
    - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN
    - docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$VERSION_MAJ
    - docker push $CI_REGISTRY_IMAGE:latest
    - docker push $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN_PAT
    - docker push $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN
    - docker push $CI_REGISTRY_IMAGE:$VERSION_MAJ
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $R_VERSION_UPDATE != "true"
      changes:
        - tidyverse/latest.Dockerfile

build-version:
  stage: build
  script:
    - cd tidyverse && docker build --pull -t $CI_REGISTRY_IMAGE:4.0.1 -f 4.0.1.Dockerfile .
    - docker push $CI_REGISTRY_IMAGE:4.0.1
  rules:
    - if: $CI_COMMIT_BRANCH == "freeze-version" && $R_VERSION_UPDATE != "true"
      changes:
        - tidyverse/4.0.1.Dockerfile

trigger-latest-build:
  stage: deploy
  before_script:
    - apk add --update curl
    - rm -rf /var/cache/apk/*
  script:
    - curl -X POST -F token=$ROCKER_VERSE -F ref=master https://gitlab.b-data.ch/api/v4/projects/187/trigger/pipeline
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $R_VERSION_UPDATE != "true"
      changes:
        - tidyverse/latest.Dockerfile

trigger-version-build:
  stage: deploy
  before_script:
    - apk add --update curl
    - rm -rf /var/cache/apk/*
  script:
    - curl -X POST -F token=$ROCKER_VERSE -F ref=freeze-version https://gitlab.b-data.ch/api/v4/projects/187/trigger/pipeline
  rules:
    - if: $CI_COMMIT_BRANCH == "freeze-version" && $R_VERSION_UPDATE != "true"
      changes:
        - tidyverse/4.0.1.Dockerfile