stages:
  - build
  - deploy

build_qa:
  image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
  services:
    - docker:dind
  tags:
    - meedan
    - meedan-labs
  stage: build
  variables:
    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
  script:
    - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $ECR_API_BASE_URL
    - docker build --build-arg DEPLOY_BRANCH=develop --build-arg TIMESTAMP=$(date '+%Y%m%d%H%M%S') -f production/Dockerfile -t "$ECR_API_BASE_URL/qa/check/web:$CI_COMMIT_SHA" . 2>&1 | tee .docker_build_out
    - if grep "ERROR in" .docker_build_out; then 
        echo "Docker build error detected!"; 
        exit 1;
      fi
    - docker push "$ECR_API_BASE_URL/qa/check/web:$CI_COMMIT_SHA"
  only:
    - develop

deploy_qa:
  image: python:3-alpine
  stage: deploy
  tags:
    - meedan
    - meedan-labs
  variables:
    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
    AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
  script:
    - apk add --no-cache curl jq python3 py3-pip git
    - pip install setuptools==75.1.0
    - pip install urllib3==2.0.6
    - pip install botocore==1.31.62
    - pip install boto3==1.28.62
    - pip install ecs-deploy==1.15.0
    - ecs deploy ecs-qa  qa-check-web --image qa-check-web-c $ECR_API_BASE_URL/qa/check/web:$CI_COMMIT_SHA -r arn:aws:iam::848416313321:role/ECSSecretsAccessRole --exclusive-secrets --exclusive-env -e qa-check-web-c APP check-web -e qa-check-web-c DEPLOY_ENV qa --timeout 3600
    - echo "new Image was deployed $ECR_API_BASE_URL/qa/check/web:$CI_COMMIT_SHA"
    - sh scripts/clear-cf-cache.sh
  only:
    - develop

build_live:
  image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
  services:
    - docker:dind
  tags:
    - meedan
    - meedan-labs
  stage: build
  variables:
    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
  script:
    - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $ECR_API_BASE_URL
    - docker build --build-arg DEPLOY_BRANCH=master --build-arg TIMESTAMP=$(date '+%Y%m%d%H%M%S') -f production/Dockerfile -t "$ECR_API_BASE_URL/live/check/web:$CI_COMMIT_SHA" . 2>&1 | tee .docker_build_out
    - if grep "ERROR in" .docker_build_out; then 
        echo "Docker build error detected!"; 
        exit 1;
      fi
    - docker push "$ECR_API_BASE_URL/live/check/web:$CI_COMMIT_SHA"
  only:
    - master

deploy_live:
  image: python:3-alpine
  stage: deploy
  when: manual
  tags:
    - meedan
    - meedan-labs
  variables:
    AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
    AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
    AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
  script:
    - apk add --no-cache curl jq python3 py3-pip git
    - pip install setuptools==75.1.0
    - pip install urllib3==2.0.6
    - pip install botocore==1.31.62
    - pip install boto3==1.28.62
    - pip install ecs-deploy==1.15.0
    - ecs deploy ecs-live  live-check-web --image live-check-web-c $ECR_API_BASE_URL/live/check/web:$CI_COMMIT_SHA -r arn:aws:iam::848416313321:role/ECSSecretsAccessRole --exclusive-secrets --exclusive-env -e live-check-web-c APP check-web -e live-check-web-c DEPLOY_ENV live --timeout 3600
    - echo "new Image was deployed $ECR_API_BASE_URL/live/check/web:$CI_COMMIT_SHA"
    - sh scripts/clear-cf-cache.sh
  only:
    - master