Skip to content

WEB3-321: feat: deploy steel docs on github pages #13

WEB3-321: feat: deploy steel docs on github pages

WEB3-321: feat: deploy steel docs on github pages #13

name: Deploy Steel Documentation
on:
pull_request:
push:
tags:
- 'v[0-9]+.[0-9]+*' # matches v1.0, v1.1, v2.0, v2.1.0, etc.
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
env:
RISC0_TOOLCHAIN_VERSION: r0.1.81.0
RISC0_MONOREPO_REF: "main"
jobs:
build:
runs-on: ubuntu-latest
steps:
# This is a workaround from: https://github.com/actions/checkout/issues/590#issuecomment-970586842
- run: "git checkout -f $(git -c user.name=x -c user.email=x@x commit-tree $(git hash-object -t tree /dev/null) < /dev/null) || :"
- uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4
- uses: risc0/risc0/.github/actions/rustup@main
with:
toolchain: nightly-2024-09-04
- name: Build documentation
run: |
if ! cargo +nightly-2024-09-04 doc -p risc0-steel --all-features --no-deps; then
echo "Documentation build failed"
exit 1
fi
env:
RISC0_SKIP_BUILD: true
RISC0_SKIP_BUILD_KERNEL: true
RUSTDOCFLAGS: "--cfg docsrs -D warnings"
- name: Setup doc directory structure
run: |
cd target/doc || exit 1
# Create the risc0_steel directory first
mkdir -p risc0_steel
# Find all image references and create symlinks with proper relative paths
for img in $(find ../../crates -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.gif" -o -name "*.svg" \)); do
filename=$(basename $img)
# Create absolute path symlinks in root doc directory
ln -sf $(realpath $img) $filename
# Create relative path symlinks in risc0_steel directory
ln -sf $(realpath $img) risc0_steel/$filename
done
- name: Create index.html redirect
run: |
echo '<meta http-equiv="refresh" content="0; url=risc0_steel/index.html">' > target/doc/index.html
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: target/doc
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4