stages: - build - deploy clean-old: stage: clean image: name: docker/compose:1.28.0 entrypoint: [""] allow_failure: true variables: PRODUCTION_BRANCH: main STAGING_BRANCH: "staging" DEPLOY_TO: "staging" rules: - if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH when: on_success before_script: - echo DEPLOY_TO = $DEPLOY_TO script: - docker-compose -f deployments/$DEPLOY_TO/docker-compose.yaml down --volumes --rmi local build-app: stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] variables: DOCKER_BUILD_PATH: "./Dockerfile" STAGING_BRANCH: "staging" PRODUCTION_BRANCH: "main" rules: - if: $CI_COMMIT_BRANCH == $PRODUCTION_BRANCH || $CI_COMMIT_BRANCH == $STAGING_BRANCH when: on_success before_script: - echo PRODUCTION_BRANCH = $PRODUCTION_BRANCH - echo STAGING_BRANCH = $STAGING_BRANCH - echo CI_REGISTRY = $CI_REGISTRY - echo CI_REGISTRY_USER = $CI_REGISTRY_USER - echo CI_PROJECT_DIR = $CI_PROJECT_DIR - echo CI_REGISTRY_IMAGE = $CI_REGISTRY_IMAGE - echo CI_COMMIT_REF_SLUG = $CI_COMMIT_REF_SLUG - echo DOCKER_BUILD_PATH = $DOCKER_BUILD_PATH - echo CI_PIPELINE_ID = $CI_PIPELINE_ID 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 \ --cache=true --cache-repo=$CI_REGISTRY_IMAGE \ --dockerfile $CI_PROJECT_DIR/$DOCKER_BUILD_PATH --target production \ --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID deploy-to-staging: stage: deploy image: name: docker/compose:1.28.0 entrypoint: [""] variables: DEPLOY_TO: "staging" BRANCH: "staging" rules: - if: $CI_COMMIT_BRANCH == $BRANCH before_script: - echo CI_PROJECT_NAME = $CI_PROJECT_NAME - echo CI_REGISTRY = $CI_REGISTRY - echo REGISTRY_USER = $REGISTRY_USER - echo REGISTRY_TOKEN = $REGISTRY_TOKEN - echo DEPLOY_TO = $DEPLOY_TO - echo BRANCH = $BRANCH script: - docker login -u $REGISTRY_USER -p $REGISTRY_TOKEN $CI_REGISTRY - docker-compose -f deployments/$DEPLOY_TO/docker-compose.yaml up -d