Repository: flashbots/rollup-boost
Pull request #129: Add vercel support for book
Author: login: sukoneck
Created: 2025-03-07T00:38:09Z | Merged: 2025-03-07T17:12:36Z

subj.


Diff:
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
+  }
+}


Reviews:
user: login: avalonche
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-03-07T01:04:37Z
user: login: sukoneck
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-07T01:09:49Z

Review comments:
path: .github/workflows/book.yml
user: login: avalonche
body: was this meant to be deleted?
created_at: 2025-03-07T01:04:37Z
author_association: COLLABORATOR
path: .github/workflows/book.yml
user: login: sukoneck
body: Yes, renamed to `book-tests` because it's just tests now. No strong feelings about file name.
created_at: 2025-03-07T01:09:49Z
author_association: CONTRIBUTOR

PR comments:
user: login: vercel[bot]
created_at: 2025-03-07T00:56:42Z
body: @sukoneck is attempting to deploy a commit to the **Flashbots** Team on [Vercel](https://vercel.com).

A member of the Team first needs to [authorize it](https://vercel.com/git/authorize?team=Flashbots&type=github&job=%7B%22headInfo%22%3A%7B%22sha%22%3A%22241b45cf4e61eda51e8f3d0db528dc0e11d84cf4%22%7D%2C%22id%22%3A%22Qmch7Fk2MUeTRW8RW8XKoSgD5HBdY6oP5QMMR3JcFJK2YY%22%2C%22org%22%3A%22flashbots%22%2C%22prId%22%3A129%2C%22repo%22%3A%22rollup-boost%22%7D).


author_association: NONE
user: login: vercel[bot]
created_at: 2025-03-07T01:00:03Z
body: [vc]: #RoDye+NY3ijG7EVvNrHwmnPrj9GQPOihBt6aMcxsEg8=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJyb2xsdXAtYm9vc3QiLCJyb290RGlyZWN0b3J5IjpudWxsLCJpbnNwZWN0b3JVcmwiOiJodHRwczovL3ZlcmNlbC5jb20vZmxhc2hib3RzL3JvbGx1cC1ib29zdC80azZFRExFRDVVRHh4NEdwZUhhcWY0c0d3a2ZnIiwicHJldmlld1VybCI6InJvbGx1cC1ib29zdC1naXQtZm9yay1zdWtvbmVjay1ib29rLXZlcmNlbC1mbGFzaGJvdHMudmVyY2VsLmFwcCIsIm5leHRDb21taXRTdGF0dXMiOiJJR05PUkVEIiwibGl2ZUZlZWRiYWNrIjp7InJlc29sdmVkIjowLCJ1bnJlc29sdmVkIjowLCJ0b3RhbCI6MCwibGluayI6IiJ9fV19
**The latest updates on your projects**. Learn more about [Vercel for Git ↗︎](https://vercel.link/github-learn-more)


<details><summary>1 Skipped Deployment</summary>

| Name | Status | Preview | Comments | Updated (UTC) |
| :--- | :----- | :------ | :------- | :------ |
| **rollup-boost** | ⬜️ Ignored ([Inspect](https://vercel.com/flashbots/rollup-boost/4k6EDLED5UDxx4GpeHaqf4sGwkfg)) | [Visit Preview](https://rollup-boost-git-fork-sukoneck-book-vercel-flashbots.vercel.app) |  | Mar 7, 2025 1:00am |
</details>


author_association: NONE