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
# From https://github.com/rust-lang/mdBook/wiki/Automated-Deployment%3A-GitHub-Actions#raw-example | |
name: Build `html-*` static files, publish `html-book` to Pages | |
on: | |
workflow_dispatch: # Allows you to run this workflow manually from the Actions tab | |
push: | |
branches: | |
- main | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: write # need write to push to branches | |
pages: write | |
id-token: write | |
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | |
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | |
concurrency: | |
group: "pages" | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
MDBOOK_VERSION: v0.4.34 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install Bun (uses cache in action) | |
uses: oven-sh/setup-bun@v1 | |
with: | |
bun-version: 1.0.0 | |
- name: Install js/ts dependancies with Bun | |
run: bun install | |
- name: Install mdBook | |
run: | | |
url="https://github.com/rust-lang/mdbook/releases/download/${MDBOOK_VERSION}/mdbook-${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz" | |
mkdir mdbook | |
curl -sSL $url | tar -xz --directory=./mdbook | |
echo `pwd`/mdbook >> $GITHUB_PATH | |
- name: Build static slides to embed in gh-pages book | |
run: bun build-slides-gh-pages | |
- name: Build book | |
run: mdbook build | |
- name: Embed `html-slides` into `html-book`, fix relative paths | |
run: | | |
rsync -av html-slides/content/ html-book/ --ignore-existing | |
rsync -av html-slides/ --exclude 'content' html-book/ --ignore-existing | |
find html-book/ -regex .*\.html | xargs sed -i 's#./../../../#../../#g' | |
chmod +rw html-book | |
# TODO: Without making a _branch_ that bloats the .git object, | |
# we should push out the static build files in html-book/ and html-slides/ to some archive, | |
# thus the bok and slides will be usable anywhere independently and | |
# a simple download to have a copy locally without building it yourself | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v3 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
path: ./html-book | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v2 |