Skip to content

Commit

Permalink
feat: add initial rustdocs workflow (#1042)
Browse files Browse the repository at this point in the history
* feat: add initial rustdocs workflow

* chore: add testing trigger

* chore: change to fetch with CLI

* chore: configure git

* chore: replace github config

* fix: Vercel env variable names

* chore: remove no-deps

* chore: fix index page

* fix

* cargo check for halo2 table

* chore: switch to serving on s3

* chore: fix index page

* typo

---------

Co-authored-by: Jonathan Wang <[email protected]>
  • Loading branch information
yi-sun and jonathanpwang authored Dec 15, 2024
1 parent 7646803 commit b1755e5
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build and Serve Crate Docs

on:
push:
branches: [main]
tags:
- v*.*.*
pull_request:
branches: [main]
paths:
- ".github/workflows/docs.yml"

env:
CARGO_NET_GIT_FETCH_WITH_CLI: true

jobs:
docs:
permissions:
contents: write
packages: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
runs-on:
- runs-on=${{ github.run_id }}
- runner=8cpu-linux-arm64
steps:
- uses: actions/checkout@v4
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@nightly

# TEMPORARY
- name: Give GitHub Actions access to private repositories
uses: webfactory/[email protected]
with:
ssh-private-key: |
${{ secrets.GH_ACTIONS_DEPLOY_PRIVATE_KEY }}
- name: Cargo check
run: cargo check

- name: Build documentation
run: cargo doc --workspace

# We only want the index page to display workspace crates, so we build
# separately and copy over the index as a hack
- name: Build index page
run: |
cargo doc --workspace --no-deps --exclude "openvm-benchmarks" --target-dir target/doc-nodeps
cp target/doc-nodeps/doc/index.html target/doc/
env:
RUSTDOCFLAGS: --enable-index-page -Zunstable-options

- name: Install s5cmd
run: |
source ci/scripts/utils.sh
install_s5cmd
# TODO: store versioned copy of docs when new v*.*.* tag is pushed
- name: Sync static S3 bucket
env:
S3_BUCKET: ${{ vars.CRATE_DOCS_S3_BUCKET }}
run: |
cd target/doc
s5cmd sync . s3://${S3_BUCKET%/}/static/

0 comments on commit b1755e5

Please sign in to comment.