Web #654
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
# Workflow to build your docs with oranda (and mdbook) | |
# and deploy them to Github Pages | |
name: Web | |
# We're going to push to the gh-pages branch, so we need that permission | |
permissions: | |
contents: write | |
# What situations do we want to build docs in? | |
# All of these work independently and can be removed / commented out | |
# if you don't want oranda/mdbook running in that situation | |
on: | |
# Check that a PR didn't break docs! | |
# | |
# Note that the "Deploy to Github Pages" step won't run in this mode, | |
# so this won't have any side-effects. But it will tell you if a PR | |
# completely broke oranda/mdbook. Sadly we don't provide previews (yet)! | |
pull_request: | |
# Whenever a workflow called "Release" completes, update the docs! | |
# | |
# If you're using cargo-dist, this is recommended, as it will ensure that | |
# oranda always sees the latest release right when it's available. Note | |
# however that Github's UI is wonky when you use workflow_run, and won't | |
# show this workflow as part of any commit. You have to go to the "actions" | |
# tab for your repo to see this one running (the gh-pages deploy will also | |
# only show up there). | |
workflow_run: | |
workflows: ["Release"] | |
types: | |
- completed | |
# Run manually | |
workflow_dispatch: | |
# Alright, let's do it! | |
jobs: | |
web: | |
name: Build and deploy site and docs | |
runs-on: ubuntu-latest | |
env: | |
ORANDA_VERSION: v0.5.0 | |
steps: | |
# Setup | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: swatinem/rust-cache@v2 | |
# If you use any mdbook plugins, here's the place to install them! | |
# Install and run oranda (and mdbook) | |
# This will write all output to ./public/ (including copying mdbook's output to there) | |
- name: Install and run oranda | |
run: | | |
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/oranda/releases/download/${{ env.ORANDA_VERSION }}/oranda-installer.sh | sh | |
oranda build | |
- name: Check HTML for broken internal links | |
uses: untitaker/hyperlink@0.1.29 | |
with: | |
args: ./public | |
# Deploy to our gh-pages branch (creating it if it doesn't exist) | |
# the "public" dir that oranda made above will become the root dir | |
# of this branch. | |
# | |
# Note that once the gh-pages branch exists, you must | |
# go into repo's settings > pages and set "deploy from branch: gh-pages" | |
# the other defaults work fine. | |
- name: Deploy to Github Pages | |
uses: JamesIves/github-pages-deploy-action@v4.4.1 | |
# ONLY if we're on master (so no PRs or feature branches allowed!) | |
if: ${{ github.ref == 'refs/heads/master' }} | |
with: | |
branch: gh-pages | |
# Gotta tell the action where to find oranda's output | |
folder: public | |
token: ${{ secrets.GITHUB_TOKEN }} | |
single-commit: true |