| # 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 |
| id: download-artifacts |
| uses: dawidd6/action-download-artifact@v6 |
| with: |
| workflow: doc-build.yml |
| run_id: ${{ github.event.workflow_run.id }} |
| if_no_artifact_found: ignore |
| |
| - name: Load PR number |
| if: steps.download-artifacts.outputs.found_artifact == 'true' |
| uses: actions/github-script@v7 |
| with: |
| script: | |
| let fs = require("fs"); |
| let pr_number = Number(fs.readFileSync("./pr_num/pr_num")); |
| core.exportVariable("PR_NUM", pr_number); |
| |
| - name: Check PR number |
| if: steps.download-artifacts.outputs.found_artifact == 'true' |
| 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.download-artifacts.outputs.found_artifact == 'true' && |
| steps.check-pr.outputs.VALID != 'true' |
| run: | |
| echo "ABORT: PR number validation failed!" |
| exit 1 |
| |
| - name: Uncompress HTML docs |
| if: steps.download-artifacts.outputs.found_artifact == 'true' |
| run: | |
| tar xf html-output/html-output.tar.xz -C html-output |
| if [ -f api-coverage/api-coverage.tar.xz ]; then |
| tar xf api-coverage/api-coverage.tar.xz -C api-coverage |
| fi |
| |
| - name: Configure AWS Credentials |
| if: steps.download-artifacts.outputs.found_artifact == 'true' |
| uses: aws-actions/configure-aws-credentials@v4 |
| 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 |
| if: steps.download-artifacts.outputs.found_artifact == 'true' |
| 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 |
| if [ -d api-coverage/coverage-report ]; then |
| aws s3 sync --quiet api-coverage/coverage-report/ \ |
| s3://builds.zephyrproject.org/${{ github.event.repository.name }}/pr/${PR_NUM}/api-coverage \ |
| --delete |
| fi |