.gitlab-ci.yml 5.72 KiB
workflow:
rules:
# NOTE: don't run pipeline if commit is a Merge/Pull-Request
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: 'never'
# Otherwise:
- when: 'always'
variables:
version: '0.0.$CI_PIPELINE_IID'
k8sVersion: '1.20.5'
MONGOIMAGE: 'mongo:4.2.3-bionic'
stages:
- build
- test
- deploy
- release
job_build-image:
stage: build
tags:
- docker-privileged
image: docker:20.10.12
services:
- name: docker:20.10.12-dind
before_script:
# - apk add --no-cache docker-compose
- docker network create -d bridge my-build-network
- docker pull mongo
- docker run --name mongo --network my-build-network -d mongo
# - docker run --network my-build-network --rm mongo mongo #--host some-mongo test
script:
# - docker-compose up -f docker-compose.test.yml -d
- docker build --file "./app/server/Dockerfile" --tag ${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA} .
# NOTE: push image to local registry so that it can be accessed in subsequent jobs
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- docker push "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
after_script:
# - docker-compose down
- docker image rm --force "${CI_REGISTRY_IMAGE}:${CI_PIPELINE_IID}-${CI_COMMIT_SHORT_SHA}"
- docker image rm --force mongo
- docker network rm my-build-network
- docker network ls
- docker network prune
- echo y
- docker network ls
job_test-image:
stage: test
image: docker:20.10.12
tags:
- docker-privileged
services:
- name: docker:20.10.12-dind
variables:
# NOTE: some random port that hopefully is free on the runner
outerPort: '38080'
before_script:
- docker network create -d bridge test-img-network
# - apk add --no-cache docker-compose
# - docker-compose -f docker-compose.mongo.yml up
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
- docker pull mongo
- docker run --name mongo --network test-img-network -d mongo
- echo ${CI_REGISTRY_IMAGE}
- echo ${CI_PIPELINE_IID}
- echo ${CI_COMMIT_SHORT_SHA}