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/book.yml b/.github/workflows/book.yml deleted file mode 100644 index 3782eb19..00000000 --- a/.github/workflows/book.yml +++ /dev/null @@ -1,133 +0,0 @@ -# Documentation and mdbook related jobs. -# Heavily inspired by Reth https://github.com/paradigmxyz/reth/blob/main/.github/workflows/book.yml - -name: book - -on: - push: - branches: [main] - pull_request: - branches: [main] - -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 - 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 - run: mdbook-linkcheck --standalone - - build: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - uses: rui314/setup-mold@v1 - - uses: dtolnay/rust-toolchain@nightly - - 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 - - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - - name: Build book - run: mdbook build - - - name: Build docs - run: cargo doc --all-features --no-deps - env: - RUSTDOCFLAGS: --cfg docsrs --show-type-layout --generate-link-to-definition --enable-index-page -Zunstable-options - - - name: Move docs to book folder - run: | - mv target/doc target/book/docs - - - name: Archive artifact - shell: sh - run: | - chmod -c -R +rX "target/book" | - while read line; do - echo "::warning title=Invalid file permissions automatically fixed::$line" - done - tar \ - --dereference --hard-dereference \ - --directory "target/book" \ - -cvf "$RUNNER_TEMP/artifact.tar" \ - --exclude=.git \ - --exclude=.github \ - . - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: github-pages - path: ${{ runner.temp }}/artifact.tar - retention-days: 1 - if-no-files-found: error - - deploy: - # Only deploy if a push to main - if: github.ref_name == 'main' && github.event_name == 'push' - runs-on: ubuntu-latest - needs: [build] - - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write - id-token: write - - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - - timeout-minutes: 60 - - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file 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.toml b/book/book.toml similarity index 86% rename from book.toml rename to book/book.toml index b764f482..d8d7defd 100644 --- a/book.toml +++ b/book/book.toml @@ -2,12 +2,12 @@ authors = ["Rollup Boost Core Contributors"] language = "en" multilingual = false -src = "book" +src = "src" title = "Rollup Boost" description = "The Rollup Boost is a sidecar to enable rollup extensions" [output.html] -theme = "book/theme" +theme = "theme" git-repository-url = "https://github.com/flashbots/rollup-boost" default-theme = "ayu" no-section-label = true @@ -17,4 +17,4 @@ enable = true level = 1 [build] -build-dir = "target/book" \ No newline at end of file +build-dir = "book" diff --git a/book/README.md b/book/src/README.md similarity index 100% rename from book/README.md rename to book/src/README.md diff --git a/book/SUMMARY.md b/book/src/SUMMARY.md similarity index 100% rename from book/SUMMARY.md rename to book/src/SUMMARY.md 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 + } +}