Skip to content
Snippets Groups Projects
Commit 85888e02 authored by Bryan BRANCOTTE's avatar Bryan BRANCOTTE
Browse files

rework caching

parent 79f22898
No related branches found
No related tags found
1 merge request!9Draft: split build in multiple stage
Pipeline #102209 failed
......@@ -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"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment