Gitlab CI (go)
Integrated build, test and Docker image generation.
-
Docker build -
Testing the Gateway image -
Push to the Docker Registry -
Avoid using the --allow-untrusted
flag onapk add
- USE: https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html#including-the-provided-template
- Check: https://docs.gitlab.com/ee/user/application_security/dast/index.html
Boilerplate:
# BASE
# https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#container-registry-examples
image: docker:stable
services:
- docker:dind
stages:
- build
- test
- release
- deploy
variables:
#DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
CENSUS_MANAGER_API_BUILD_IMAGE: ${CI_REGISTRY_IMAGE}/census-manager-api:${CI_COMMIT_REF_SLUG}
CENSUS_MANAGER_API_RELEASE_IMAGE: ${CI_REGISTRY_IMAGE}/census-manager-api:latest
before_script:
- docker login -u gitlab-ci-token -p ${CI_BUILD_TOKEN} ${CI_REGISTRY}
###############################################################################
## CENSUS MANAGER API
###############################################################################
census-manager-docker-build:
stage: build
script:
- docker pull ${CENSUS_MANAGER_API_RELEASE_IMAGE} || true
- docker build --pull -t ${CENSUS_MANAGER_API_BUILD_IMAGE} -f Dockerfile .
- docker push ${CENSUS_MANAGER_API_BUILD_IMAGE}
only:
changes:
- Dockerfile
- src/**/*
- tsconfig.json
- .env
- .env.production
- .dockerignore
- package.json
- package-lock.json
# census-manager-docker-test:
# stage: test
# script:
# - docker pull ${CENSUS_MANAGER_API_BUILD_IMAGE}
# - docker run ${CENSUS_MANAGER_API_BUILD_IMAGE} /script/to/run/tests
census-manager-docker-release:
stage: release
script:
- docker pull ${CENSUS_MANAGER_API_BUILD_IMAGE}
- docker tag ${CENSUS_MANAGER_API_BUILD_IMAGE} ${CENSUS_MANAGER_API_RELEASE_IMAGE}
- docker push ${CENSUS_MANAGER_API_RELEASE_IMAGE}
only:
changes:
- Dockerfile
- src/**/*
- tsconfig.json
- .env
- .env.production
- .dockerignore
- package.json
- package-lock.json
refs:
- master
Edited by Sparky Tunes