auth/.gitlab-ci.yml

79 lines
2.2 KiB
YAML
Raw Normal View History

2023-01-10 14:28:19 +00:00
image: docker:20.10.22
stages:
- test
2023-02-09 13:20:05 +00:00
- build
2023-04-04 09:59:05 +00:00
- push
2023-01-10 14:28:19 +00:00
##############
# TEST STAGE #
##############
2023-01-11 11:50:04 +00:00
test:
2023-01-10 14:28:19 +00:00
stage: test
image: docker/compose:latest
2023-01-12 11:51:40 +00:00
variables:
2023-03-30 08:28:20 +00:00
DOCKER_TLS_CERTDIR: ''
2023-01-10 14:28:19 +00:00
services:
- docker:dind
script:
2023-02-09 13:20:05 +00:00
- docker-compose -f docker-compose.ci.tools.yml -p auth-tools --env-file ci/.env.ci up -d
2023-01-10 14:28:19 +00:00
- sh ci/wait-up.sh
2023-02-09 13:20:05 +00:00
- docker-compose -f docker-compose.ci.service.yml -p auth-service --env-file ci/.env.ci up -d
2023-02-28 09:46:03 +00:00
- docker exec -t v3-auth-api sh -c "npm run test:integration:ci"
2023-01-10 14:28:19 +00:00
coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
2023-02-09 13:20:05 +00:00
###############
# BUILD STAGE #
###############
build:
stage: build
image: docker:20.10.22
variables:
2023-03-30 08:28:20 +00:00
DOCKER_TLS_CERTDIR: ''
2023-02-09 13:20:05 +00:00
services:
- docker:dind
before_script:
2023-04-04 09:59:05 +00:00
- echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
2023-02-09 13:20:05 +00:00
script:
2023-04-04 09:59:05 +00:00
# fetches the latest image (not failing if image is not found)
- docker pull $CI_REGISTRY_IMAGE:latest || true
- >
docker build
--pull
--cache-from $CI_REGISTRY_IMAGE:latest
--tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
.
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
##############
# PUSH STAGE #
##############
push latest:
stage: push
variables:
GIT_STRATEGY: none
2023-02-09 13:20:05 +00:00
only:
- main
2023-04-04 10:18:20 +00:00
before_script:
- echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
2023-04-04 09:59:05 +00:00
script:
2023-04-04 10:18:20 +00:00
- export VERSION=$(docker run --rm -v "$PWD":/usr/src/app:ro -w /usr/src/app node:slim node -p "require('./package.json').version")
2023-04-04 09:59:05 +00:00
- docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
2023-04-04 10:18:20 +00:00
- docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$VERSION $CI_REGISTRY_IMAGE:latest
2023-04-04 09:59:05 +00:00
- docker push $CI_REGISTRY_IMAGE:latest
2023-04-04 10:18:20 +00:00
# push tag:
# stage: push
# variables:
# GIT_STRATEGY: none
# only:
# - tags
# before_script:
# - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
# script:
# - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
# - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
# - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME