CI: Node.js compile on-demand workflow dispatch #13
Workflow file for this run
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
# Requires GitHub Pages publishing branch to be `gh-pages` | |
name: GitHub Pages | |
on: | |
pull_request: | |
types: | |
# - edited # PR's base branch was changed | |
- opened | |
- reopened | |
- synchronize # PR's branch was edited (i.e. new commits) | |
release: | |
types: | |
- published | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
path-filter: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: read | |
outputs: | |
changes: ${{ steps.filter.outputs.changes }} | |
steps: | |
- uses: actions/checkout@v3 | |
- id: filter | |
uses: dorny/paths-filter@v2 | |
with: | |
filters: | | |
changes: | |
- '**/mkdocs.yml' | |
- '**/*.md' | |
lint: | |
needs: | |
- path-filter | |
if: ${{ needs.path-filter.outputs.changes == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: docker run -v "${PWD}:/workdir" ghcr.io/igorshubovych/markdownlint-cli:latest --disable MD013 MD033 MD046 -- "**/*.md" | |
build: | |
needs: | |
- path-filter | |
if: ${{ github.event_name == 'pull_request' && needs.path-filter.outputs.changes == 'true' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
# the `git-revision-date-localized` plugin needs full history to find page creation date | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
- uses: actions/cache@v3 | |
with: | |
key: ${{ github.ref }} | |
path: .cache | |
- run: | | |
pip install mkdocs-material | |
pip install \ | |
mkdocs-exclude-search \ | |
mkdocs-git-revision-date-localized-plugin \ | |
mkdocs-redirects \ | |
mkdocs-htmlproofer-plugin \ | |
mdx_truly_sane_lists | |
- run: | | |
pip install pillow cairosvg | |
sudo apt-get install libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev | |
- run: mkdocs build --strict --verbose | |
# !!! This check should be required by GitHub !!! | |
pages-status-check: | |
if: always() | |
needs: | |
- path-filter | |
- lint | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: re-actors/alls-green@release/v1 | |
with: | |
allowed-skips: lint, build | |
jobs: ${{ toJSON(needs) }} | |
deploy: | |
if: github.event_name == 'release' | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
# the `git-revision-date-localized` plugin needs full history to find page creation date | |
fetch-depth: 0 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
- uses: actions/cache@v3 | |
with: | |
key: ${{ github.ref }} | |
path: .cache | |
- run: | | |
pip install mkdocs-material | |
pip install \ | |
mkdocs-exclude-search \ | |
mkdocs-git-revision-date-localized-plugin \ | |
mkdocs-redirects \ | |
mkdocs-htmlproofer-plugin \ | |
mdx_truly_sane_lists | |
- run: | | |
pip install pillow cairosvg | |
sudo apt-get install libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev | |
- run: mkdocs gh-deploy --strict --verbose --force |