Skip to content
Snippets Groups Projects
Select Git revision
  • 857582b0cb26b43a0bfe91582acd265f6a429b5b
  • dev default protected
  • prod protected
  • 1.0.58
  • 1.0.57
  • 1.0.52
  • 1.0.56
  • 1.0.51
  • 1.0.50
  • 1.0.33
  • 1.0.32
  • 1.0.31
  • 1.0.30
  • 1.0.29
  • 1.0.28
  • 1.0.27
  • 1.0.26
  • 1.0.25
  • 1.0.24
  • 1.0.23
  • 1.0.22
  • 1.0.21
  • 1.0.20
23 results

.gitlab-ci.yml

Blame
  • .gitlab-ci.yml 3.55 KiB
    image: shiplogic/ci-wp-plugin:node18
    
    variables:
      GIT_SUBMODULE_STRATEGY: recursive
      MAX_TAGS_TO_KEEP: 5  # Number of most recent tag versions to keep
    
    stages:
      - deploy
      - tag_deploy
    
    deploy:
      stage: deploy
      only:
        - dev
      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
    
    tag_deploy:
      stage: tag_deploy
      image: shiplogic/ci-wp-plugin:node18
      before_script:
        # Export AWS credentials for prod branch (since tags are created from prod)
        - 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
        
        # Check if variables are set (without exposing values)
        - if [ -z "$AWS_ACCESS_KEY_ID" ]; then echo "AWS_ACCESS_KEY_ID is empty"; else echo "AWS_ACCESS_KEY_ID is set"; fi
        - if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then echo "AWS_SECRET_ACCESS_KEY is empty"; else echo "AWS_SECRET_ACCESS_KEY is set"; fi
        
        # Verify tag was created from prod branch
        - git fetch origin prod
        - COMMIT_BRANCH=$(git branch -r --contains $CI_COMMIT_SHA | grep "origin/prod" || echo "")
        - if [ -z "$COMMIT_BRANCH" ]; then echo "Tag was not created from prod branch. Skipping deployment."; exit 1; fi
      script:
      # Download the tagged version archive
      - 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"
      
      # Upload to S3 bucket both as versioned and as "latest"
      - 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
      
      # Cleanup old tag versions - keep only the most recent MAX_TAGS_TO_KEEP
      - echo "Cleaning up old tag versions, keeping only the most recent $MAX_TAGS_TO_KEEP..."
      - aws s3 ls s3://bobgo-s3-magento-plugin-prod/tags/ --region=af-south-1 > tag_list.txt
      - grep "bobgo-magento-extension-" tag_list.txt > filtered_tags.txt
      - sort -r filtered_tags.txt > sorted_tags.txt
      - tail -n +$((MAX_TAGS_TO_KEEP + 1)) sorted_tags.txt > tags_to_delete.txt
      - cat tags_to_delete.txt | awk '{print $4}' > keys_to_delete.txt
      - |
        while read KEY; do 
          echo "Deleting old tag version: $KEY"
          aws s3 rm "s3://bobgo-s3-magento-plugin-prod/tags/$KEY" --region=af-south-1
        done < keys_to_delete.txt
      
      # Output the URLs
      - echo "Tagged version URL: https://bobgo-s3-magento-plugin-prod.s3.af-south-1.amazonaws.com/tags/bobgo-magento-extension-${CI_COMMIT_TAG}.zip"
      - echo "Latest version URL: https://bobgo-s3-magento-plugin-prod.s3.af-south-1.amazonaws.com/latest/latest.zip"