|
name: Deploy to GitHub Pages |
|
|
|
on: |
|
push: |
|
branches: ["main"] |
|
pull_request: |
|
workflow_dispatch: |
|
|
|
permissions: {} |
|
|
|
concurrency: |
|
group: pages-${{ github.ref }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
build-and-deploy: |
|
runs-on: ubuntu-latest |
|
permissions: |
|
contents: write |
|
steps: |
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
|
with: |
|
persist-credentials: false |
|
|
|
- name: Setup mise |
|
uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4 |
|
with: |
|
cache: true |
|
|
|
- name: Build docs |
|
env: |
|
HUGO_BASEURL: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/ |
|
run: mise run build-docs |
|
|
|
# Only publish from pushes to main. On pull requests the steps above |
|
# still run (building the docs and exercising `mise install --locked`), |
|
# so a broken lockfile or docs build is caught before merge. |
|
- name: Push rendered site to gh-pages |
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main' |
|
uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4.1.0 |
|
with: |
|
github_token: ${{ secrets.GITHUB_TOKEN }} |
|
publish_dir: ./docs/public |
|
publish_branch: gh-pages |
|
keep_files: true |
|
user_name: "github-actions[bot]" |
|
user_email: "41898282+github-actions[bot]@users.noreply.github.com" |