From ae7803a6c343cc1cf4d53fcd29f637fc754d3db0 Mon Sep 17 00:00:00 2001 From: Robert Prehn <3952444+prehnRA@users.noreply.github.com> Date: Thu, 25 Mar 2021 22:27:42 -0500 Subject: [PATCH] feat: Add dependency phase for easier caching --- .gitlab-ci.yml | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ea6177c..203e6783 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ stages: + - dependencies - test - deploy_tags - deploy @@ -12,9 +13,37 @@ variables: DOCKER_HOST: tcp://docker:2376 GIT_STRATEGY: fetch +fetch_application_dependencies: + stage: dependencies + image: "elixir:1.10" + cache: + key: + files: + - mix.lock + paths: + - _build/ + - deps/ + script: + - mix deps.get + +fetch_asset_dependencies: + stage: dependencies + image: "node:15.0" + only: + - master + cache: + key: + files: + - apps/app/assets/package-lock.json + paths: + - apps/app/assets/node_modules/ + script: + - cd apps/app/assets/ && npm install + test: stage: test - needs: [] + needs: + - fetch_application_dependencies image: "elixir:1.10" services: - name: postgres:12 @@ -29,26 +58,20 @@ test: build_image_for_commit: stage: test - needs: [] + needs: + - fetch_asset_dependencies + - fetch_application_dependencies image: "docker:19.03.12" only: - master services: - name: docker:19.03.12-dind - cache: - key: - files: - - mix.lock - - apps/app/assets/package-lock.json - paths: - - _build/ - - deps/ - - apps/app/assets/node_modules/ script: - docker login "https://${CI_REGISTRY}" -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD - docker pull $CI_REGISTRY_IMAGE:latest || true - docker build --cache-from $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + - docker cp $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA: deploy_to_tags: stage: deploy_tags