Skip to content

Publish docs

Publish docs #1530

Workflow file for this run

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 }}