Files
devopsexam/.gitlab-ci.yml
2026-05-08 15:22:19 +02:00

49 lines
1.2 KiB
YAML

stages:
- run
- build
- deploy
run_flask_app:
stage: run
image: python:3.11
before_script:
- pip install -r requirements.txt
script:
- python app.py &
- sleep 5
- curl http://127.0.0.1:5000
build_docker_image:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor
--context "$CI_PROJECT_DIR"
--dockerfile "$CI_PROJECT_DIR/Dockerfile"
--destination "$CI_REGISTRY_IMAGE:latest"
--destination "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
deploy_stage:
stage: deploy
tags:
- manifests-runner
image:
name: bitnami/kubectl:latest
entrypoint: [""]
before_script:
- mkdir -p ~/.kube
- echo "$KUBECONFIGCONTENT" > ~/.kube/config
- chmod 600 ~/.kube/config
script:
- kubectl apply -f manifests/stage/
- kubectl set image deployment/flask-app flask-app=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA -n stage
- kubectl rollout status deployment/flask-app -n stage
environment:
name: stage
rules:
- if: '$CI_COMMIT_BRANCH == "main"'