diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 545f2785..2394a08b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,3 @@ -stages: - - prebuild_and_test - - tag - - push_image - cache: paths: - _build @@ -16,40 +11,31 @@ variables: DOCKER_TLS_CERTDIR: "/certs" DOCKER_HOST: tcp://docker:2376 -prebuild: - stage: prebuild_and_test - image: docker:19.03.12 - services: - - name: docker:19.03.12-dind - 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 - test: - stage: prebuild_and_test + needs: [] image: "elixir:1.10" services: - name: postgres:12 script: script/cibuild deploy_to_tags: - stage: tag + needs: ['test'] image: "node:15.0" script: - npm install - npx semantic-release deploy_to_registry: - stage: push_image + needs: ['test'] image: "docker:19.03.12" services: - name: docker:19.03.12-dind only: - tags script: - - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + - 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 tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG