diff --git a/.github/workflows/docs-pr.yml b/.github/workflows/docs-pr.yml index 84adc61e..5b68bf52 100644 --- a/.github/workflows/docs-pr.yml +++ b/.github/workflows/docs-pr.yml @@ -5,12 +5,15 @@ name: Collection Docs concurrency: - group: docs-${{ github.head_ref }} + group: docs-pr-${{ github.head_ref }} cancel-in-progress: true on: pull_request_target: types: [opened, synchronize, reopened, closed] +env: + GHP_BASE_URL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }} + jobs: build-docs: permissions: @@ -18,13 +21,30 @@ jobs: name: Build Ansible Docs uses: ansible-community/github-docs-build/.github/workflows/_shared-docs-build-pr.yml@main with: + init-lenient: false init-fail-on-error: true + squash-hierarchy: true + render-file-line: '> * `$` [$](https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/pr/${{ github.event.number }}/$)' + + publish-docs-gh-pages: + # for now we won't run this on forks + if: github.repository == 'ansible-collections/community.docker' + permissions: + contents: write + needs: [build-docs] + name: Publish Ansible Docs + uses: ansible-community/github-docs-build/.github/workflows/_shared-docs-build-publish-gh-pages.yml@main + with: + artifact-name: ${{ needs.build-docs.outputs.artifact-name }} + action: ${{ (github.event.action == 'closed' || needs.build-docs.outputs.changed != 'true') && 'teardown' || 'publish' }} + secrets: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} comment: permissions: pull-requests: write runs-on: ubuntu-latest - needs: build-docs + needs: [build-docs, publish-docs-gh-pages] name: PR comments steps: - name: PR comment @@ -42,13 +62,20 @@ jobs: Thank you for contribution!✨ - This PR has been merged and your docs changes will be incorporated when they are next published. + This PR has been merged and the docs are now incorporated into `main`: + ${{ env.GHP_BASE_URL }}/branch/main body: | ## Docs Build 📝 Thank you for contribution!✨ - The docsite for **this PR** is available for download as an artifact from this run: + The docs for **this PR** have been published here: + ${{ env.GHP_BASE_URL }}/pr/${{ github.event.number }} + + You can compare to the docs for the `main` branch here: + ${{ env.GHP_BASE_URL }}/branch/main + + The docsite for **this PR** is also available for download as an artifact from this run: ${{ needs.build-docs.outputs.artifact-url }} File changes: diff --git a/.github/workflows/docs-push.yml b/.github/workflows/docs-push.yml new file mode 100644 index 00000000..0afa5fe2 --- /dev/null +++ b/.github/workflows/docs-push.yml @@ -0,0 +1,43 @@ +--- +# Copyright (c) Ansible Project +# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt) +# SPDX-License-Identifier: GPL-3.0-or-later + +name: Collection Docs +concurrency: + group: docs-push-${{ github.sha }} + cancel-in-progress: true +on: + push: + branches: + - main + - stable-* + tags: + - '*' + # Run CI once per day (at 09:00 UTC) + schedule: + - cron: '0 9 * * *' + +jobs: + build-docs: + permissions: + contents: read + name: Build Ansible Docs + uses: ansible-community/github-docs-build/.github/workflows/_shared-docs-build-push.yml@main + with: + init-lenient: false + init-fail-on-error: true + squash-hierarchy: true + + publish-docs-gh-pages: + # for now we won't run this on forks + if: github.repository == 'ansible-collections/community.docker' + permissions: + contents: write + needs: [build-docs] + name: Publish Ansible Docs + uses: ansible-community/github-docs-build/.github/workflows/_shared-docs-build-publish-gh-pages.yml@main + with: + artifact-name: ${{ needs.build-docs.outputs.artifact-name }} + secrets: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}