diff --git a/.github/workflows/book-tests.yml b/.github/workflows/book-tests.yml new file mode 100644 index 00000000..f9c8efd1 --- /dev/null +++ b/.github/workflows/book-tests.yml @@ -0,0 +1,52 @@ +# Documentation and mdbook related jobs. +# Heavily inspired by Reth https://github.com/paradigmxyz/reth/blob/main/.github/workflows/book.yml + +name: book-tests + +on: + pull_request: + branches: [main] + paths: + - 'book/**' + +jobs: + test: + runs-on: ubuntu-latest + name: test + timeout-minutes: 60 + + steps: + - uses: actions/checkout@v4 + + - name: Install mdbook + run: | + mkdir mdbook + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook + echo $(pwd)/mdbook >> $GITHUB_PATH + - name: Install mdbook-template + run: | + mkdir mdbook-template + curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook-template + echo $(pwd)/mdbook-template >> $GITHUB_PATH + - name: Run tests + working-directory: ./book + run: mdbook test + + lint: + runs-on: ubuntu-latest + name: lint + timeout-minutes: 60 + + steps: + - uses: actions/checkout@v4 + + - name: Install mdbook-linkcheck + run: | + mkdir mdbook-linkcheck + curl -sSL -o mdbook-linkcheck.zip https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/latest/download/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip + unzip mdbook-linkcheck.zip -d ./mdbook-linkcheck + chmod +x $(pwd)/mdbook-linkcheck/mdbook-linkcheck + echo $(pwd)/mdbook-linkcheck >> $GITHUB_PATH + - name: Run linkcheck + working-directory: ./book + run: mdbook-linkcheck --standalone diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 28b1d647..e6c75a19 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,7 +13,7 @@ env: REGISTRY_IMAGE: flashbots/rollup-boost jobs: - build: + release: name: Publish Docker Image strategy: matrix: diff --git a/.vercel/build.sh b/.vercel/build.sh new file mode 100644 index 00000000..5e899e2a --- /dev/null +++ b/.vercel/build.sh @@ -0,0 +1,56 @@ +#!/bin/bash +set -e + +mkdir -p $HOME/bin +export PATH=$HOME/bin:$PATH +REPO_ROOT=$(pwd) + +echo "Installing mdbook..." +curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.14/mdbook-v0.4.14-x86_64-unknown-linux-gnu.tar.gz | tar -xz +chmod +x ./mdbook +cp ./mdbook $HOME/bin/ + +echo "Installing mdbook-template..." +curl -sSL https://github.com/sgoudham/mdbook-template/releases/latest/download/mdbook-template-x86_64-unknown-linux-gnu.tar.gz | tar -xz +chmod +x ./mdbook-template +cp ./mdbook-template $HOME/bin/ + +echo "Installing Rust..." +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | RUSTUP_HOME=/tmp/rustup HOME=/tmp sh -s -- -y +export PATH="/tmp/.cargo/bin:$PATH" +export RUSTUP_HOME=/tmp/rustup +export CARGO_HOME=/tmp/.cargo + +rustup toolchain install nightly +rustup default nightly + +echo "Verifying installations..." +which mdbook +which mdbook-template +rustc --version + +echo "Building the book..." +cd "${REPO_ROOT}/book" +mdbook build + +echo "Building Rust documentation..." +cd "${REPO_ROOT}" +export RUSTDOCFLAGS="--cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page -Zunstable-options" +cargo doc --all-features --no-deps || { + echo "Cargo doc failed, but continuing with mdbook only" +} + +# Try to copy the API docs if they were generated +if [ -d "${REPO_ROOT}/target/doc" ]; then + echo "Copying API documentation..." + mkdir -p "${REPO_ROOT}/book/book/api" + cp -r "${REPO_ROOT}/target/doc"/* "${REPO_ROOT}/book/book/api/" +else + echo "API documentation not generated, continuing with mdbook only" +fi + +# Create a final output directory for Vercel +mkdir -p "${REPO_ROOT}/vercel-output" +cp -r "${REPO_ROOT}/book/book"/* "${REPO_ROOT}/vercel-output/" + +echo "Build completed successfully!" diff --git a/book/book.toml b/book/book.toml new file mode 100644 index 00000000..d8d7defd --- /dev/null +++ b/book/book.toml @@ -0,0 +1,20 @@ +[book] +authors = ["Rollup Boost Core Contributors"] +language = "en" +multilingual = false +src = "src" +title = "Rollup Boost" +description = "The Rollup Boost is a sidecar to enable rollup extensions" + +[output.html] +theme = "theme" +git-repository-url = "https://github.com/flashbots/rollup-boost" +default-theme = "ayu" +no-section-label = true + +[output.html.fold] +enable = true +level = 1 + +[build] +build-dir = "book" diff --git a/book/src/README.md b/book/src/README.md new file mode 100644 index 00000000..3df84959 --- /dev/null +++ b/book/src/README.md @@ -0,0 +1,3 @@ +# rollup-boost book + +Rollup Boost is a sidecar that enables rollup extensions. \ No newline at end of file diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md new file mode 100644 index 00000000..320aa2da --- /dev/null +++ b/book/src/SUMMARY.md @@ -0,0 +1,3 @@ +# Summary + +- [Introduction](./README.md) \ No newline at end of file diff --git a/book/theme/head.hbs b/book/theme/head.hbs new file mode 100644 index 00000000..15f76b66 --- /dev/null +++ b/book/theme/head.hbs @@ -0,0 +1,6 @@ + + + +{{!-- TODO: add logo --}} +{{!-- --}} +{{!-- --}} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..b00648da --- /dev/null +++ b/vercel.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "buildCommand": "chmod +x ./.vercel/build.sh && ./.vercel/build.sh", + "outputDirectory": "vercel-output", + "ignoreCommand": "git diff --quiet HEAD^ HEAD ./book/", + "github": { + "silent": false, + "autoJobCancelation": true + } +}