From d6c8bd2fc167426831d05a0bc3aab8178ab5d63e Mon Sep 17 00:00:00 2001 From: "Joshua A. Anderson" Date: Wed, 5 Jun 2024 10:17:26 -0400 Subject: [PATCH] Add `setup-mdbook` action. (#2) --- .github/workflows/test.yaml | 17 ++++++++++++++++- README.md | 20 +++++++++++++++++++- setup-mdbook/action.yaml | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 setup-mdbook/action.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 57b9adc..b4e84e4 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -57,10 +57,25 @@ jobs: - run: uv --version - run: python -m build --version + setup_mdbook: + name: setup-mdbook [default] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + - name: Set up mdbook + uses: ./setup-mdbook + - run: mdbook --version + - run: mdbook-linkcheck --version + tests_complete: name: All tests if: always() - needs: [setup_uv_default, setup_uv_version, setup_uv_lockfile] + needs: + - setup_uv_default + - setup_uv_version + - setup_uv_lockfile + - setup_mdbook runs-on: ubuntu-latest steps: diff --git a/README.md b/README.md index 741f112..0e823ee 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,27 @@ steps: with: python-version: "3.12" - name: Set up Python environment - uses: glotzerlab/workflows/setup-python@ # v0.1.0 + uses: glotzerlab/workflows/setup-uv@ # v0.1.0 with: lockfile: "requirements.txt" ``` [uv]: https://github.com/astral-sh/uv + +## setup-mdbook + +`setup-mdbook` installs [mdbook] and *optionally* installs mdbook plugins: +* [mdbook-linkcheck] + +In your action workflow: +```yaml +steps: +- name: Set up mdbook + uses: glotzerlab/workflows/setup-mdbook@ # v0.1.0 +``` + +See [setup-mdbook/action.yaml] for all options. + +[mdbook]: https://rust-lang.github.io/mdBook/ +[mdbook-linkcheck]: https://github.com/Michael-F-Bryan/mdbook-linkcheck +[setup-mdbook/action.yaml]: setup-mdbook/action.yaml diff --git a/setup-mdbook/action.yaml b/setup-mdbook/action.yaml new file mode 100644 index 0000000..fe66cf0 --- /dev/null +++ b/setup-mdbook/action.yaml @@ -0,0 +1,35 @@ +name: Setup mdbook +description: Install mdbook and optional mdbook plugins. + +inputs: + mdbook_version: + description: 'mdbook version to install.' + required: false + default: '0.4.40' + linkcheck: + description: 'Whether to install mdbook-linkcheck.' + required: false + default: 'true' + linkcheck_version: + description: 'mdbook-linkcheck version to install.' + required: false + default: '0.7.7' + platform: + description: 'Download executables for the given platform.' + required: false + default: x86_64-unknown-linux-gnu + +runs: + using: "composite" + steps: + - name: Install mdbook + run: | + mkdir -p "$HOME/.cargo/bin" + curl -sSL "https://github.com/rust-lang/mdBook/releases/download/v${{ inputs.mdbook_version }}/mdbook-v${{ inputs.mdbook_version }}-${{ inputs.platform }}.tar.gz" | tar -xvz --directory "$HOME/.cargo/bin" + shell: bash + - name: Install mdbook-linkcheck + run: | + curl -sSL "https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v${{ inputs.linkcheck_version }}/mdbook-linkcheck.${{ inputs.platform }}.zip" -o mdbook-linkcheck.zip + unzip mdbook-linkcheck.zip -d "$HOME/.cargo/bin" + chmod a+x "$HOME/.cargo/bin/mdbook-linkcheck" + shell: bash