name: Build and upload docs

on:
  push:
    branches:
      - main
      - 3.0.x
      - 2.4.x
      - 2.3.x
      - 2.2.x

env:
  # https://github.com/actions/checkout/issues/440#issuecomment-854240996
  AWS_EC2_METADATA_DISABLED: true

permissions:
  contents: read

jobs:
  build:
    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        uses: sdkman/sdkman-action@master
        id: sdkman
        with:
          candidate: java
          version: '8.0.332-tem'
      - name: Set up 8.0.332-tem
        uses: actions/setup-java@v1
        with:
          java-version: 8
          jdkFile: ${{ steps.sdkman.outputs.file }}
      - uses: actions/cache@v1
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-
      - name: Build docs
        run: ./mvnw clean package javadoc:aggregate -Pdocs,spring -DskipTests=true -e
      - name: Upload to S3
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.S3_AWS_ACCESS_KEY }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_AWS_SECRET_KEY }}
        run: |
          aws s3 sync --acl public-read docs/target/generated-docs/ s3://awspring-docs/spring-cloud-aws/docs/
          aws s3 sync --acl public-read target/site/ s3://awspring-docs/spring-cloud-aws/docs/
          aws cloudfront create-invalidation --distribution-id EA7LER7CI960A --paths "/*"
