68 lines
2.3 KiB
YAML
68 lines
2.3 KiB
YAML
include:
|
|
#- local: 'ci_templates/.cic-template.yml' #kaniko build templates
|
|
# these includes are app specific unit tests
|
|
- local: 'apps/cic-eth/.gitlab-ci.yml'
|
|
- local: 'apps/cic-ussd/.gitlab-ci.yml'
|
|
- local: 'apps/cic-notify/.gitlab-ci.yml'
|
|
- local: 'apps/cic-meta/.gitlab-ci.yml'
|
|
- local: 'apps/cic-cache/.gitlab-ci.yml'
|
|
#- local: 'apps/contract-migration/.gitlab-ci.yml'
|
|
#- local: 'apps/data-seeding/.gitlab-ci.yml'
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- deploy
|
|
|
|
image: registry.gitlab.com/grassrootseconomics/cic-internal-integration/docker-with-compose:latest
|
|
|
|
variables:
|
|
DOCKER_BUILDKIT: "1"
|
|
COMPOSE_DOCKER_CLI_BUILD: "1"
|
|
CI_DEBUG_TRACE: "true"
|
|
TAG: $CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA
|
|
|
|
|
|
# runs on protected branches and pushes to repo
|
|
build-push:
|
|
stage: build
|
|
tags:
|
|
- integration
|
|
before_script:
|
|
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
|
|
script:
|
|
- TAG=$TAG sh ./scripts/build-push.sh
|
|
rules:
|
|
- if: $CI_COMMIT_REF_PROTECTED == "true"
|
|
when: always
|
|
|
|
deploy-k8s-dev:
|
|
stage: deploy
|
|
image: line/kubectl-kustomize
|
|
variables:
|
|
CI_DEBUG_TRACE: "true"
|
|
script:
|
|
- kubectl config set-cluster k8s --server="${K8S_DEV_SERVER?dev server missing}"
|
|
- kubectl config set clusters.k8s.certificate-authority-data ${K8S_DEV_CERTIFICATE_AUTHORITY_DATA}
|
|
- kubectl config set-credentials gitlab --token="${K8S_DEV_USER_TOKEN}"
|
|
- kubectl config set-context grassroots --cluster=k8s --user=gitlab --namespace grassroots
|
|
- kubectl config use-context grassroots
|
|
#- sed -i "s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g" deployment.yaml
|
|
#- kubectl apply -f deployment.yaml
|
|
- echo "Wiping state..."
|
|
- kubectl delete jobs.batch --all
|
|
- kubectl delete hr postgresql && kubectl delete pvc -l 'app.kubernetes.io/name=postgresql'
|
|
- kubectl delete sts,pvc -l 'app=bloxberg-validator'
|
|
- kubectl delete hr redis && kubectl delete pvc -l 'app=redis'
|
|
- kubectl apply -f kubernetes/eth-node/ -f kubernetes/postgresql/ -f kubernetes/redis/
|
|
- echo "deploy and run database migrations..."
|
|
# set image based on deploy tag
|
|
- bash ./scripts/set-image.sh
|
|
- kubectl apply -f .
|
|
- echo "run contract migrations..."
|
|
- kubectl apply -f kubernetes/contract-migration/contract-migration-job.yaml
|
|
rules:
|
|
- if: $CI_COMMIT_REF_PROTECTED == "true"
|
|
when: always
|
|
|