image: shiplogic/ci-wp-plugin:node18

variables:
  GIT_SUBMODULE_STRATEGY: recursive
  MAX_TAGS_TO_KEEP: 5

stages:
  - deploy
  - tag_deploy

deploy:
  stage: deploy
  before_script:
    - AWS_ACCESS_KEY_ID_KEY=$(echo "$CI_COMMIT_BRANCH"_"AWS_ACCESS_KEY_ID")
    - AWS_ACCESS_KEY_ID=$(eval echo -e "\$$AWS_ACCESS_KEY_ID_KEY")
    - AWS_SECRET_ACCESS_KEY_KEY=$(echo "$CI_COMMIT_BRANCH"_"AWS_SECRET_ACCESS_KEY")
    - AWS_SECRET_ACCESS_KEY=$(eval echo -e "\$$AWS_SECRET_ACCESS_KEY_KEY")
    - export AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY
  script:
    - ./make-zip.sh
    - aws s3 cp bobgo-magento-plugin.zip s3://bobgo-s3-magento-plugin-dev/ --region=af-south-1
  rules:
    - if: $CI_COMMIT_BRANCH == "dev"
      when: always

tag_deploy:
  stage: tag_deploy
  before_script:
    - AWS_ACCESS_KEY_ID_KEY="prod_AWS_ACCESS_KEY_ID"
    - AWS_SECRET_ACCESS_KEY_KEY="prod_AWS_SECRET_ACCESS_KEY"
    - AWS_ACCESS_KEY_ID=$(eval echo -e "\$$AWS_ACCESS_KEY_ID_KEY")
    - AWS_SECRET_ACCESS_KEY=$(eval echo -e "\$$AWS_SECRET_ACCESS_KEY_KEY")
    - export AWS_ACCESS_KEY_ID
    - export AWS_SECRET_ACCESS_KEY
    - git fetch origin prod
    - TAG_BRANCH=$(git for-each-ref --format='%(refname:short)' --contains $CI_COMMIT_SHA refs/heads/ | grep "^prod$" || echo "")
    - echo "Current branches containing this commit: $(git for-each-ref --format='%(refname:short)' --contains $CI_COMMIT_SHA refs/heads/)"
    - |
      if [ -z "$TAG_BRANCH" ]; then
        echo "Tag ${CI_COMMIT_TAG} was not created on the prod branch."
        exit 1
      else
        echo "Tag ${CI_COMMIT_TAG} was created on the prod branch."
      fi
  script:
    - "TAG_ARCHIVE_URL=https://gitlab.bob.co.za/bob-public-utils/bobgo-magento-extension/-/archive/${CI_COMMIT_TAG}/bobgo-magento-extension-${CI_COMMIT_TAG}.zip"
    - curl -o bobgo-magento-extension-${CI_COMMIT_TAG}.zip "$TAG_ARCHIVE_URL"
    - aws s3 cp bobgo-magento-extension-${CI_COMMIT_TAG}.zip s3://bobgo-s3-magento-plugin-prod/tags/bobgo-magento-extension-${CI_COMMIT_TAG}.zip --region=af-south-1 --acl public-read
    - aws s3 cp bobgo-magento-extension-${CI_COMMIT_TAG}.zip s3://bobgo-s3-magento-plugin-prod/latest/latest.zip --region=af-south-1 --acl public-read
    - echo "Tagged version URL in S3 bucket ready for download"
  rules:
    - if: $CI_COMMIT_TAG
      when: always