📄 Add documentation for release strategy #15
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
name: Deploy Github Pages | |
on: | |
push: | |
branches: [master] | |
workflow_dispatch: | |
workflow_call: | |
inputs: | |
skip-publish: | |
default: false | |
description: "Creates the documentation in this workflow without publishing" | |
required: false | |
type: boolean | |
jobs: | |
generate: | |
name: Generate cargo docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare runner | |
uses: ./.github/actions/prepare-runner | |
- name: Install toolchain | |
uses: ./.github/actions/rust-toolchain | |
with: | |
rust: nightly | |
- name: Install mdbook | |
uses: ./.github/actions/cargo-install | |
with: | |
target: mdbook | |
- name: Install mdbook-mermaid | |
uses: ./.github/actions/cargo-install | |
with: | |
target: mdbook-mermaid | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Install markdownlint | |
uses: ./.github/actions/npm-install | |
with: | |
target: markdownlint-cli | |
- name: Install markdownlint-github-annotation | |
uses: ./.github/actions/cargo-install | |
with: | |
target: markdownlint-github-annotation | |
git-repo: https://github.com/bitwizeshift/markdownlint-github-annotation | |
- name: Lint Markdown | |
shell: bash | |
run: | | |
markdownlint \ | |
--json docs/**.md README.md 2>&1 \ | |
| markdownlint-github-annotation | |
- name: Build | |
uses: ./.github/actions/cargo-build | |
- name: Generate Cargo Docs | |
run: | | |
RUSTDOCFLAGS="--enable-index-page -Zunstable-options" \ | |
cargo +nightly doc --no-deps --workspace | |
- name: Get mdbook dependencies | |
shell: bash | |
run: ./docs/get-dependencies.bash | |
- name: Generate Book | |
run: | | |
mdbook build docs | |
mkdir -p target/doc | |
cp -r docs/book target/doc/book | |
- name: Generate coverage report | |
run: | | |
cargo llvm-cov --html | |
cp -r target/llvm-cov/html target/doc/coverage | |
- name: Generate license manifest | |
uses: ./.github/actions/cargo-about | |
with: | |
output-file: target/doc/licenses.html | |
# Some of the doc generation steps above create the directories with | |
# 0750 for permissions -- which is triggering warning annotations in the | |
# workflow summaries. Manually converting this to 0755 helps to suppress | |
# this. | |
- name: Fix permissions | |
run: | | |
find ./target -type d -exec chmod 0755 {} \; | |
find ./target -type f -name '.lock' -delete | |
- name: Upload Pages Artifact | |
if: inputs.skip-publish != true | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./target/doc | |
deploy: | |
name: Deploy to GH Pages | |
runs-on: ubuntu-latest | |
if: inputs.skip-publish != true | |
needs: generate | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Upload GH Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 | |
- name: Create summary | |
if: success() | |
run: | | |
echo "# Documentation successfully deployed 🚀" >> "${GITHUB_STEP_SUMMARY}" | |
echo "" >> "${GITHUB_STEP_SUMMARY}" | |
echo "Deployed documentation links:" >> "${GITHUB_STEP_SUMMARY}" | |
echo "" >> "${GITHUB_STEP_SUMMARY}" | |
echo "* [📦 Crate documentation](https://bitwizeshift.github.io/alloy-rs/)" >> "${GITHUB_STEP_SUMMARY}" | |
echo "* [📕 Handbook](https://bitwizeshift.github.io/alloy-rs/book/)" >> "${GITHUB_STEP_SUMMARY}" | |
echo "* [📈 Coverage Report](https://bitwizeshift.github.io/alloy-rs/coverage)" >> "${GITHUB_STEP_SUMMARY}" | |
echo "* [🔑 Licenses](https://bitwizeshift.github.io/alloy-rs/licenses.html)" >> "${GITHUB_STEP_SUMMARY}" |