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

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_TLS_CERTDIR: "/certs"
  R_VERSION: "4.2.0"
Olivier Benz's avatar
Olivier Benz committed
  UPDATE_MODE: "false"
Olivier Benz's avatar
Olivier Benz committed

before_script:
  - >
    echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER
    --password-stdin $CI_REGISTRY
Olivier Benz's avatar
Olivier Benz committed
  - >
    export VERSION_MAJ_MIN_PAT=$R_VERSION
    
    export VERSION_MAJ_MIN=`echo $VERSION_MAJ_MIN_PAT |
    sed -n "s|\([[:digit:]]\+\.[[:digit:]]\+\).*|\1|p"`
    
    export VERSION_MAJ=`echo $VERSION_MAJ_MIN_PAT |
    sed -n "s|\([[:digit:]]\+\).*|\1|p"`
Olivier Benz's avatar
Olivier Benz committed

build-latest:
  stage: build
  script:
      docker build --pull
      --build-arg R_VERSION
      --build-arg NCPUS=$((`nproc`/2+1))
      -t $CI_REGISTRY_IMAGE:latest
      -t $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN_PAT
      -t $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN
      -t $CI_REGISTRY_IMAGE:$VERSION_MAJ
      -f tidyverse/latest.Dockerfile .
    - docker push -a $CI_REGISTRY_IMAGE
Olivier Benz's avatar
Olivier Benz committed
  rules:
Olivier Benz's avatar
Olivier Benz committed
    - if: $CI_COMMIT_BRANCH == "master" && $UPDATE_MODE != "true"
Olivier Benz's avatar
Olivier Benz committed
      changes:
        - tidyverse/latest.Dockerfile
Olivier Benz's avatar
Olivier Benz committed

build-version:
  stage: build
  script:
      docker build --pull
      --build-arg R_VERSION
      --build-arg NCPUS=$((`nproc`/2+1))
      -t $CI_REGISTRY_IMAGE:$VERSION_MAJ_MIN_PAT
      -f tidyverse/$R_VERSION.Dockerfile .
    - docker push -a $CI_REGISTRY_IMAGE
Olivier Benz's avatar
Olivier Benz committed
  rules:
    - if: $CI_COMMIT_BRANCH == "freeze-version" && $CI_PIPELINE_TRIGGERED
Olivier Benz's avatar
Olivier Benz committed
      changes:
        - tidyverse/$R_VERSION.Dockerfile
Olivier Benz's avatar
Olivier Benz committed

trigger-latest-build:
  stage: deploy
  before_script:
    - apk upgrade --no-cache
    - apk add --update --no-cache curl
Olivier Benz's avatar
Olivier Benz committed
  script:
    - curl -X POST -F token=$ROCKER_VERSE -F ref=master https://gitlab.b-data.ch/api/v4/projects/187/trigger/pipeline
Olivier Benz's avatar
Olivier Benz committed
  rules:
Olivier Benz's avatar
Olivier Benz committed
    - if: $CI_COMMIT_BRANCH == "master" && $UPDATE_MODE != "true"
Olivier Benz's avatar
Olivier Benz committed
      changes:
        - tidyverse/latest.Dockerfile
Olivier Benz's avatar
Olivier Benz committed

trigger-version-build:
  stage: deploy
  before_script:
    - apk upgrade --no-cache
    - apk add --update --no-cache curl
Olivier Benz's avatar
Olivier Benz committed
  script:
    - curl -X POST -F token=$ROCKER_VERSE -F ref=freeze-version https://gitlab.b-data.ch/api/v4/projects/187/trigger/pipeline
Olivier Benz's avatar
Olivier Benz committed
  rules:
    - if: $CI_COMMIT_BRANCH == "freeze-version" && $CI_PIPELINE_TRIGGERED
Olivier Benz's avatar
Olivier Benz committed
      changes:
        - tidyverse/$R_VERSION.Dockerfile