Automatically add exercise links to sections. (#52)

We use an mdbook preprocessor to automatically generate links to the relevant exercise for each section.
We remove all existing manual links and refactor the deploy process to push the rendered book to a branch.
This commit is contained in:
Luca Palmieri
2024-05-24 18:15:38 +02:00
committed by GitHub
parent 99591a715e
commit 1aae615bb4
65 changed files with 1855 additions and 212 deletions

View File

@@ -9,22 +9,20 @@ on:
- main
jobs:
formatter:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dprint/check@v2.2
check-links:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install plugin
run: cargo install --path helpers/mdbook-exercise-linker
- uses: taiki-e/install-action@v2
with:
tool: mdbook
- name: Build book
run: |
cd book
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.40/mdbook-v0.4.40-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=.
./mdbook build
mdbook build
- name: Link Checker
uses: lycheeverse/lychee-action@v1
with:
@@ -34,3 +32,25 @@ jobs:
--require-https
--no-progress
book/book
# Upload the book as an artifact
- uses: actions/upload-artifact@v4
with:
name: book
path: book/book
# Commit and push all changed files.
# Must only affect files that are listed in "paths-ignore".
- name: Git commit build artifacts
# Only run on main branch push (e.g. pull request merge).
if: github.event_name == 'push'
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "username@users.noreply.github.com"
git add --force book/book
git commit -m "${{ env.CI_COMMIT_MESSAGE }}"
git push --set-upstream --force-with-lease origin deploy
formatter:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dprint/check@v2.2