image: node:14.21.3

pipelines:
  branches:
    develop:
      - step:
          name: Build Staging
          script:
            - pushd jam-ui
            - npm install
            - popd
            - pushd jam-ui/cicd
            - npm install
            - NODE_ENV=production ENVIRONMENT=staging ./generate.sh
            - popd
            - cd jam-ui
            - NODE_ENV=production CI=false REACT_APP_ORIGIN=staging.jamkazam.com REACT_APP_CLIENT_BASE_URL=https://staging.jamkazam.com REACT_APP_API_BASE_URL=https://staging.jamkazam.com/api REACT_APP_BITBUCKET_BUILD_NUMBER=$BITBUCKET_BUILD_NUMBER REACT_APP_BITBUCKET_COMMIT=$BITBUCKET_COMMIT npm run build
          artifacts:
            - jam-ui/build/**
      - step:
          name: Deploy to staging - SPA
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/stg"
                LOCAL_PATH: "jam-ui/build"
                EXTRA_ARGS: "--exclude=*backing-tracks/*"
      - step:
          name: Deploy to staging - backing-tracks
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/stg/backing-tracks"
                LOCAL_PATH: "jam-ui/build/backing-tracks"
                EXTRA_ARGS: "--exclude=*.js --content-type text/html"
      - step:
          name: Deploy to staging - backing-tracks js
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/stg/js"
                LOCAL_PATH: "jam-ui/build/js"
                EXTRA_ARGS: "--content-type text/javascript"
#      - step:
#          name: Deploy to staging - invalidate cloudfront distribution
#          deployment: staging
#          script:
#            - pipe: atlassian/aws-cloudfront-invalidate:0.10.1
#              variables:
#                DISTRIBUTION_ID: "E2AQIC9RSON94Q" # ESQDIABYLT0RV
  custom:
    build-and-deploy-to-production:
      - step:
          name: Build Production
          script:
            - pushd jam-ui
            - npm install
            - popd
            - pushd jam-ui/cicd
            - npm install
            - NODE_ENV=production ENVIRONMENT=production ./generate.sh
            - popd
            - cd jam-ui
            - NODE_ENV=production CI=false REACT_APP_ORIGIN=jamkazam.com REACT_APP_CLIENT_BASE_URL=https://www.jamkazam.com REACT_APP_API_BASE_URL=https://www.jamkazam.com/api REACT_APP_BITBUCKET_BUILD_NUMBER=$BITBUCKET_BUILD_NUMBER REACT_APP_BITBUCKET_COMMIT=$BITBUCKET_COMMIT npm run build
      
          artifacts:
            - jam-ui/build/**
      - step:
          name: Deploy to production - SPA
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/prd"
                LOCAL_PATH: "jam-ui/build"
                EXTRA_ARGS: "--exclude=*backing-tracks/*"
      - step:
          name: Deploy to production - backing-tracks
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/prd/backing-tracks"
                LOCAL_PATH: "jam-ui/build/backing-tracks"
                EXTRA_ARGS: "--exclude=*.js --content-type text/html"
      - step:
          name: Deploy to production - backing-tracks js
          script:
            - pipe: atlassian/aws-s3-deploy:1.6.2
              variables:
                S3_BUCKET: "jamkazam-ui/prd/js"
                LOCAL_PATH: "jam-ui/build/js"
                EXTRA_ARGS: "--content-type text/javascript"
      #- step:
      #    name: Deploy to production - invalidate cloudfront distribution
      #    deployment: production
      #    script:
      #      - pipe: atlassian/aws-cloudfront-invalidate:0.10.1
      #        variables:
      #          DISTRIBUTION_ID: "ESQDIABYLT0RV" 