Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.88 KiB
Newer Older
Olivier Benz's avatar
Olivier Benz committed
image: docker:stable
services:
  - docker:stable-dind

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"
  CRAN: https://cloud.r-project.org
  R_VERSION_UPDATE: "false"
Olivier Benz's avatar
Olivier Benz committed

before_script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
Olivier Benz's avatar
Olivier Benz committed
  - export VERSION_MAJ_MIN_PAT=`sed -n "s|.*R_VERSION:-\([0-9]\.[0-9]\.[0-9]\).*|\1|p" r-ver/latest.Dockerfile`
Olivier Benz's avatar
Olivier Benz committed
  - export VERSION_MAJ_MIN=`echo "${VERSION_MAJ_MIN_PAT:0:3}"`
  - export VERSION_MAJ=`echo "${VERSION_MAJ_MIN_PAT:0:1}"`

Olivier Benz's avatar
Olivier Benz committed
build-latest:
  stage: build
Olivier Benz's avatar
Olivier Benz committed
  script:
Olivier Benz's avatar
Olivier Benz committed
    - docker build --build-arg CRAN=$CRAN --pull -t $CI_REGISTRY_IMAGE:latest -f r-ver/latest.Dockerfile .
Olivier Benz's avatar
Olivier Benz committed
    - 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
  only:
Olivier Benz's avatar
Olivier Benz committed
    refs:
      - master
    changes:
      - r-ver/latest.Dockerfile
Olivier Benz's avatar
Olivier Benz committed
build-version:
  stage: build
  script:
    - docker build --pull -t $CI_REGISTRY_IMAGE:3.6.2 -f r-ver/3.6.2.Dockerfile .
    - docker push $CI_REGISTRY_IMAGE:3.6.2
  only:
    refs:
      - freeze-version
    changes:
      - r-ver/3.6.2.Dockerfile

Olivier Benz's avatar
Olivier Benz committed
trigger-latest-build:
  stage: deploy
  before_script:
    - apk add --update curl
    - rm -rf /var/cache/apk/*
  script:
    - curl -X POST -F token=$R_TIDYVERSE -F ref=master https://gitlab.b-data.ch/api/v4/projects/173/trigger/pipeline
    - curl -X POST -F token=$R_PLUMBER -F ref=master https://gitlab.b-data.ch/api/v4/projects/176/trigger/pipeline
  only:
    refs:
      - master
    changes:
      - r-ver/latest.Dockerfile
Olivier Benz's avatar
Olivier Benz committed
  except:
    variables:
      - $R_VERSION_UPDATE == "true"