diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c21e4d2d811c0efdbc006937aca8eace75db47c..2cb5617d758f14b619675a3ef4414420945db993 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -27,15 +27,11 @@ build-my-base: --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:latest" --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:$CI_COMMIT_SHA" --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:latest" - --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/base:latest" - --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/base.5.5:latest" --file Dockerfile --target ${STAGE_NAME} ./ - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:$CI_COMMIT_SHA" - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:latest" - - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/base:latest" - - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/base.5.5:latest" @@ -46,25 +42,25 @@ build-my-rbase: STAGE_NAME: "my-rbase" script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - if [ "$R_VERSION" == "latest" ]; then export R_VERSION_PATH_TAG="v-latest"; else export R_VERSION_PATH_TAG=$R_VERSION; fi # pull the previous stage - - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/my-base:latest" + - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/my-base:$CI_COMMIT_SHA" # pull the latest build of the target R version in order to re-use it - - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$R_VERSION" || true + - docker pull "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}-${R_VERSION}:latest" || true # pull the latest build of the target R version in order to re-use it - docker pull "$CI_REGISTRY_IMAGE:$R_VERSION" || true # building - docker build - --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/my-base:latest" - --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$R_VERSION" + --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/my-base:$CI_COMMIT_SHA" + --cache-from "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}-${R_VERSION}:latest" --cache-from "$CI_REGISTRY_IMAGE:$R_VERSION" --build-arg R_VERSION - --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/${R_VERSION_PATH_TAG}:$CI_COMMIT_SHA" + --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}-${R_VERSION}:$CI_COMMIT_SHA" + --tag "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}-${R_VERSION}:latest" --file Dockerfile --target ${STAGE_NAME} ./ # push image tagged with its versions - - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}/${R_VERSION_PATH_TAG}:$CI_COMMIT_SHA" + - docker push "$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG/${STAGE_NAME}:${R_VERSION}" parallel: matrix: - R_VERSION: ["3.6.3", "4.2.3", "latest"]