name: Build Technology Radar

on:
  workflow_dispatch: # allows triggering the workflow manually
  pull_request:
  push:
    branches:
      - main

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: actions/setup-node@v4
        with:
          node-version: "lts/*"
      - uses: actions/cache@v4
        with:
          path: |
            ~/.npm
            .techradar
          key: ${{ runner.os }}-techradar-${{ hashFiles('**/package-lock.json') }}
      - run: npm ci
      - run: npm run build
      - run: if [ -n "$(git status --porcelain)" ]; then echo 'workspace is dirty after rebuilding' ; git status ; git diff ; exit 1 ; fi
      - name: Upload Artifact
        uses: actions/upload-artifact@v4
        with:
          name: build
          path: build

  deploy-test:
    needs: build
    if: github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
    runs-on: ubuntu-latest
    environment:
      name: techradar-test-aoe
      url: http://techradar-test-aoe.s3-website.eu-central-1.amazonaws.com/techradar/
    permissions:
      id-token: write
      contents: read
    steps:
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@master
        with:
          aws-region: eu-central-1
          role-to-assume: arn:aws:iam::511165248623:role/github_techradar
          role-session-name: GitHubActions
      - name: Download Artifact
        uses: actions/download-artifact@v4
        with:
          name: build
          path: build
      - run: 'aws s3 sync --delete build/ s3://techradar-test-aoe/techradar/'

  deploy:
    needs: build
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment:
      name: techradar
      url: https://www.aoe.com/techradar/
    permissions:
      id-token: write
      contents: read
    steps:
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@master
        with:
          aws-region: eu-central-1
          role-to-assume: arn:aws:iam::511165248623:role/github_techradar
          role-session-name: GitHubActions
      - name: Download Artifact
        uses: actions/download-artifact@v4
        with:
          name: build
          path: build
      - run: 'aws s3 sync --delete build/ s3://techradar-prod-aoe/techradar/'

#  deploy:
#    runs-on: ubuntu-20.04
#    if: github.ref == 'refs/heads/main'
#    needs: build
#    environment:
#      name: techradar
#      url: https://www.aoe.com/techradar/index.html
#    steps:
#      - name: Download Artifact
#        uses: actions/download-artifact@v3
#        with:
#          name: build
#          path: build
#      - uses: jakejarvis/s3-sync-action@master
#        with:
#          args: --acl public-read
#        env:
#          AWS_S3_BUCKET: "techradar.aoe.com"
#          AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }}
#          AWS_SECRET_ACCESS_KEY: ${{ secrets.ACCESS_SECRET }}
#          AWS_REGION: "eu-central-1"
#          SOURCE_DIR: "build"
#          DEST_DIR: "techradar"
#
#  deploy-dev:
#    runs-on: ubuntu-20.04
#    if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
#    needs: build
#    environment:
#      name: techradar-next
#      url: http://techradar-next.aoe.com.s3.eu-central-1.amazonaws.com/techradar/index.html
#    steps:
#      - run: echo "WARNING! THIS DEPLOYS A STAGING ENV, RERUN THIS JOB TO GET YOUR CHANGES DEPLOYED TO STAGING"
#      - name: Download Artifact
#        uses: actions/download-artifact@v3
#        with:
#          name: build
#          path: build
#      - uses: jakejarvis/s3-sync-action@master
#        with:
#          args: --acl public-read
#        env:
#          AWS_S3_BUCKET: "techradar-next.aoe.com"
#          AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY }}
#          AWS_SECRET_ACCESS_KEY: ${{ secrets.ACCESS_SECRET }}
#          AWS_REGION: "eu-central-1"
#          SOURCE_DIR: "build"
#          DEST_DIR: "techradar"
