fix: Switch CI to DAG

This commit is contained in:
Robert Prehn 2020-12-19 16:39:31 -06:00
parent 39ebe75e18
commit bb7ebc3a42

View file

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