From 76a6ec062d944e15a9733cb9b259ae4f0fd74e90 Mon Sep 17 00:00:00 2001 From: cydia2001 Date: Wed, 11 Mar 2026 02:11:27 +0000 Subject: [PATCH] ci: use peaceiris action for mdbook Replace manual mdBook installation in CI and Pages workflows with peaceiris/actions-mdbook@v2 and keep a regression test to ensure the action stays in use. --- .github/workflows/main.yml | 22 ++++++++-------------- .github/workflows/update_docs.yml | 11 ++++------- tests/test_update_docs_workflow.py | 8 ++++++++ 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 610e40a..44e4aa1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,13 +18,10 @@ jobs: with: python-version: '3.10' - - name: Install Rust toolchain - run: | - curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal - echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - - name: Install mdBook - run: cargo install mdbook --locked + - name: Setup mdBook + uses: peaceiris/actions-mdbook@v2 + with: + mdbook-version: 'latest' - name: Run mdBook regression tests run: | @@ -48,14 +45,11 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.10' - - - name: Install Rust toolchain - run: | - curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal - echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - name: Install mdBook - run: cargo install mdbook --locked + - name: Setup mdBook + uses: peaceiris/actions-mdbook@v2 + with: + mdbook-version: 'latest' - name: Build Chinese HTML with mdBook run: bash build_mdbook_zh.sh diff --git a/.github/workflows/update_docs.yml b/.github/workflows/update_docs.yml index 0c3ff3c..1a30e38 100644 --- a/.github/workflows/update_docs.yml +++ b/.github/workflows/update_docs.yml @@ -29,13 +29,10 @@ jobs: with: python-version: '3.10' - - name: Install Rust toolchain - run: | - curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal - echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - - name: Install mdBook - run: cargo install mdbook --locked + - name: Setup mdBook + uses: peaceiris/actions-mdbook@v2 + with: + mdbook-version: 'latest' - name: Run mdBook regression tests run: | diff --git a/tests/test_update_docs_workflow.py b/tests/test_update_docs_workflow.py index a13304d..68d0c76 100644 --- a/tests/test_update_docs_workflow.py +++ b/tests/test_update_docs_workflow.py @@ -6,6 +6,7 @@ from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[1] WORKFLOW_PATH = REPO_ROOT / ".github" / "workflows" / "update_docs.yml" +CI_WORKFLOW_PATH = REPO_ROOT / ".github" / "workflows" / "main.yml" class UpdateDocsWorkflowTests(unittest.TestCase): @@ -19,6 +20,13 @@ class UpdateDocsWorkflowTests(unittest.TestCase): self.assertIn("${{ steps.pages.outputs.base_url }}", workflow) self.assertNotIn("git clone https://x-access-token:${DEPLOY_TOKEN}", workflow) + def test_workflows_use_peaceiris_mdbook_action(self) -> None: + for workflow_path in (WORKFLOW_PATH, CI_WORKFLOW_PATH): + workflow = workflow_path.read_text(encoding="utf-8") + self.assertIn("uses: peaceiris/actions-mdbook@v2", workflow, workflow_path.as_posix()) + self.assertIn("mdbook-version: 'latest'", workflow, workflow_path.as_posix()) + self.assertNotIn("cargo install mdbook --locked", workflow, workflow_path.as_posix()) + if __name__ == "__main__": unittest.main()