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:
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
@@ -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
|
||||
Reference in New Issue
Block a user