Publish docs #1530
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish docs | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: | |
- Pytest | |
types: | |
- completed | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
paths: | |
- "docs/**" | |
- "mkdocs.yml" | |
- ".github/workflows/mkdocs.yml" | |
push: | |
branches: | |
- main | |
paths: | |
- "docs/**" | |
- "mkdocs.yml" | |
- ".github/workflows/mkdocs.yml" | |
jobs: | |
docs-preview: | |
name: Publish docs preview | |
runs-on: ubuntu-latest | |
# only pull requests should generate a preview | |
if: github.event.pull_request | |
permissions: | |
pull-requests: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: "refs/pull/${{ github.event.number }}/merge" | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version-file: .github/workflows/.python-version | |
cache: pip | |
cache-dependency-path: "docs/requirements.txt" | |
- name: Build MkDocs website | |
run: | | |
pip install -r docs/requirements.txt | |
mkdocs build | |
- name: Install Netlify CLI | |
run: npm install --location=global netlify-cli@17.x.x | |
- name: Deploy Preview to Netlify | |
run: | | |
netlify deploy \ | |
--alias="${GITHUB_REPOSITORY#*/}-${{ github.event.number }}" \ | |
--auth=${{ secrets.NETLIFY_AUTH_TOKEN }} \ | |
--dir="site" \ | |
--site=${{ secrets.NETLIFY_PREVIEW_APP_SITE_ID }} | |
- name: Find existing comment | |
uses: peter-evans/find-comment@v3 | |
id: find-comment | |
with: | |
issue-number: ${{ github.event.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: "Preview url: https://" | |
- name: Add Netlify link PR comment | |
uses: actions/github-script@v7 | |
if: steps.find-comment.outputs.comment-id == '' | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const hostnameSuffix = "cal-itp-previews.netlify.app" | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: `Preview url: https://${context.repo.repo}-${{ github.event.number }}--${hostnameSuffix}`, | |
}) | |
docs: | |
name: Publish docs | |
runs-on: ubuntu-latest | |
# don't publish for pull requests, and also not for unsuccessful (triggering) workflow runs | |
if: github.event.pull_request == null && (github.event.workflow_run == null || github.event.workflow_run.conclusion == 'success') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download coverage report | |
uses: dawidd6/action-download-artifact@v6 | |
with: | |
workflow: tests-pytest.yml | |
branch: main | |
event: push | |
name: coverage-report | |
path: docs/tests/coverage | |
- name: Deploy docs | |
uses: mhausenblas/mkdocs-deploy-gh-pages@master | |
env: | |
REQUIREMENTS: docs/requirements.txt | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |