# Copyright (c) 2020 Linaro Limited.
# Copyright (c) 2021 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

name: Documentation Publish (Pull Request)

on:
  workflow_run:
    workflows: ["Documentation Build"]
    types:
    - completed

jobs:
  doc-publish:
    name: Publish Documentation
    runs-on: ubuntu-22.04
    if: |
      github.event.workflow_run.event == 'pull_request' &&
      github.event.workflow_run.conclusion == 'success' &&
      github.repository == 'zephyrproject-rtos/zephyr'

    steps:
    - name: Download artifacts
      uses: dawidd6/action-download-artifact@v2
      with:
        workflow: doc-build.yml
        run_id: ${{ github.event.workflow_run.id }}

    - name: Load PR number
      run: |
        echo "PR_NUM=$(<pr_num/pr_num)" >> $GITHUB_ENV

    - name: Check PR number
      id: check-pr
      uses: carpentries/actions/check-valid-pr@v0.14.0
      with:
        pr: ${{ env.PR_NUM }}
        sha: ${{ github.event.workflow_run.head_sha }}

    - name: Validate PR number
      if: steps.check-pr.outputs.VALID != 'true'
      run: |
        echo "ABORT: PR number validation failed!"
        exit 1

    - name: Uncompress HTML docs
      run: |
        tar xf html-output/html-output.tar.xz -C html-output
        tar xf api-coverage/api-coverage.tar.xz -C api-coverage

    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v2
      with:
        aws-access-key-id: ${{ vars.AWS_BUILDS_ZEPHYR_PR_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_BUILDS_ZEPHYR_PR_SECRET_ACCESS_KEY }}
        aws-region: us-east-1

    - name: Upload to AWS S3
      env:
        HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
      run: |
        aws s3 sync --quiet html-output/html \
          s3://builds.zephyrproject.org/${{ github.event.repository.name }}/pr/${PR_NUM}/docs \
          --delete
        aws s3 sync --quiet api-coverage/coverage-report/ \
          s3://builds.zephyrproject.org/${{ github.event.repository.name }}/pr/${PR_NUM}/api-coverage \
          --delete
