64 lines
1.5 KiB
YAML
64 lines
1.5 KiB
YAML
stages:
|
|
- test
|
|
- deploy
|
|
|
|
cache:
|
|
paths:
|
|
- _build/
|
|
- deps/
|
|
|
|
variables:
|
|
POSTGRES_PASSWORD: "postgres"
|
|
POSTGRES_USER: "postgres"
|
|
DATABASE_URL: "postgres"
|
|
MIX_ENV: "test"
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_HOST: tcp://docker:2376
|
|
|
|
test:
|
|
stage: test
|
|
needs: []
|
|
image: "elixir:1.10"
|
|
services:
|
|
- name: postgres:12
|
|
script: script/cibuild
|
|
|
|
deploy_to_tags:
|
|
stage: deploy
|
|
needs: ['test']
|
|
image: "node:15.0"
|
|
except:
|
|
- tags
|
|
script:
|
|
- npm install
|
|
- npx semantic-release
|
|
|
|
build_image_for_commit:
|
|
stage: test
|
|
needs: []
|
|
image: "docker:19.03.12"
|
|
services:
|
|
- name: docker:19.03.12-dind
|
|
only:
|
|
- tags
|
|
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
|
|
|
|
deploy_commit_image_to_tag:
|
|
stage: deploy
|
|
needs: ['test', 'build_image_for_commit']
|
|
image: "docker:19.03.12"
|
|
services:
|
|
- name: docker:19.03.12-dind
|
|
only:
|
|
- tags
|
|
script:
|
|
- docker login "https://${CI_REGISTRY}" -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
|
|
- docker pull $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
|
|
- docker push $CI_REGISTRY_IMAGE:latest
|