turniere-backend/.gitlab-ci.yml

46 lines
1.3 KiB
YAML

stages:
- build
- test
build_image:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- |
[ -z "$DOCKER_IMAGE_ENVS" ] && DOCKER_IMAGE_ENVS="production development test"
for env in $DOCKER_IMAGE_ENVS; do
/kaniko/executor --context "${CI_PROJECT_DIR}" \
--dockerfile "${CI_PROJECT_DIR}/docker/${env}/Dockerfile" \
--destination "${CI_REGISTRY_IMAGE}/${env}:latest" \
--destination "${CI_REGISTRY_IMAGE}/${env}/commits:${CI_COMMIT_SHA}" \
--destination "${CI_REGISTRY_IMAGE}/${env}/refs:${CI_COMMIT_REF_SLUG}" \
--build-arg base_commit="$CI_COMMIT_SHA" \
--cache=true \
--cache-copy-layers=true
done
rails spec:
stage: test
image: $CI_REGISTRY_IMAGE/test/commits:$CI_COMMIT_SHA
rules:
- if: $SKIP_TEST
when: never
- if: $CI_PIPELINE_SOURCE != "push"
when: never
- changes:
- '**/*.rb'
- 'Gemfile'
- 'Gemfile.lock'
script:
- cd /app
- bundle exec rails db:migrate
- bundle exec rspec
artifacts:
paths:
- specs_with_runtime.txt
expire_in: 30 days