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

name: Publish Documentation

on:
  workflow_run:
    workflows: ["Documentation Build"]
    branches:
      - main
      - v*
    tags:
      - v*
    types:
      - completed

jobs:
  doc-publish:
    name: Publish Documentation
    runs-on: ubuntu-latest
    if: ${{ github.event.workflow_run.conclusion == 'success' }}

    steps:
    - name: Download artifacts
      uses: dawidd6/action-download-artifact@v2
      with:
        workflow: doc-build.yml

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

    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-1

    - name: Upload to AWS S3
      env:
        HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
      run: |
        if [ "${HEAD_BRANCH:0:1}" == "v" ]; then
          VERSION=${HEAD_BRANCH:1}
        else
          VERSION="latest"
        fi

        aws s3 sync --quiet html-output/html s3://docs.zephyrproject.org/${VERSION} --delete
        aws s3 sync --quiet html-output/html/doxygen/html s3://docs.zephyrproject.org/apidoc/${VERSION} --delete
        aws s3 cp --quiet pdf-output/zephyr.pdf s3://docs.zephyrproject.org/${VERSION}/zephyr.pdf
