stages: - build - deploy variables: DOCKER_BUILDKIT: 1 CI_BUILDX_ARCHS: "linux/amd64" build: stage: build image: docker:24 services: - docker:24-dind before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY script: - docker build -f k8s/Dockerfile -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker push $CI_REGISTRY_IMAGE:latest rules: - if: $CI_COMMIT_BRANCH == "main" deploy: stage: deploy image: name: bitnami/kubectl:latest entrypoint: [''] script: - kubectl config get-contexts - kubectl config use-context graham/towerops:towerops - kubectl set image deployment/towerops towerops=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHA -n towerops - kubectl rollout status deployment/towerops -n towerops --timeout=5m environment: name: production kubernetes: namespace: towerops rules: - if: $CI_COMMIT_BRANCH == "main"