54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
variables:
|
|
CI_PROJECT_DIR: "."
|
|
CI_REGISTRY_IMAGE: hub.ducoterra.net/ducoterra/button
|
|
DEPLOY: button
|
|
|
|
stages:
|
|
- build
|
|
- test
|
|
- deploy
|
|
|
|
build:
|
|
only:
|
|
variables:
|
|
- $CI_COMMIT_TAG
|
|
stage: build
|
|
image:
|
|
name: gcr.io/kaniko-project/executor:debug
|
|
entrypoint: [""]
|
|
script:
|
|
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
|
|
|
test:
|
|
stage: test
|
|
variables:
|
|
POSTGRES_PASSWORD: postgres
|
|
only:
|
|
variables:
|
|
- $CI_COMMIT_TAG
|
|
services:
|
|
- name: postgres:12
|
|
alias: postgres
|
|
image:
|
|
name: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
|
entrypoint: [""]
|
|
script:
|
|
- python manage.py test
|
|
|
|
deploy:
|
|
stage: deploy
|
|
only:
|
|
variables:
|
|
- $CI_COMMIT_TAG
|
|
image:
|
|
name: debian:10
|
|
entrypoint: [""]
|
|
script:
|
|
- apt -qq update >> /dev/null && apt -qq install -y curl gettext >> /dev/null
|
|
- curl -o /usr/bin/kubectl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
|
|
- chmod +x /usr/bin/kubectl
|
|
- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
|
- helm upgrade --install $DEPLOY ./helm --set image=$CI_REGISTRY_IMAGE --set tag=$CI_COMMIT_TAG
|
|
- sleep 10
|
|
- POD=$(kubectl get pods --selector=app=$DEPLOY --output=jsonpath='{.items[*].metadata.name}')
|
|
- kubectl exec $POD -- python manage.py migrate |