Thanks to visit codestin.com
Credit goes to github.com

Skip to content

refactor: upgrade to rapace RPC and overhaul testing infrastructure #396

refactor: upgrade to rapace RPC and overhaul testing infrastructure

refactor: upgrade to rapace RPC and overhaul testing infrastructure #396

Workflow file for this run

# GENERATED BY: cargo xtask ci
# DO NOT EDIT - edit xtask/src/ci.rs instead
---
name: CI
"on":
push:
tags:
- v*
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
jobs:
build-ddc-linux-x64:
name: Build ddc (linux-x64)
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
targets: wasm32-unknown-unknown
-
name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Install wasm-pack
run: "curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh"
-
name: Build WASM
run: cargo xtask wasm
-
name: Build ddc
run: cargo build --release -p dodeca
-
name: Test ddc
run: cargo test --release -p dodeca --bins
-
name: Clippy
run: cargo clippy --all-features --all-targets -- -D warnings
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ddc-linux-x64
path: target/release/ddc
build-cells-linux-x64-1:
name: Build cells (linux-x64) [cell-arborium, cell-code-execution, cell-css]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-arborium --bin ddc-cell-arborium -p cell-code-execution --bin ddc-cell-code-execution -p cell-css --bin ddc-cell-css
-
name: Test cells
run: cargo test --release -p cell-arborium -p cell-code-execution -p cell-css
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-1
path: "target/release/ddc-cell-arborium\ntarget/release/ddc-cell-code-execution\ntarget/release/ddc-cell-css"
build-cells-linux-x64-2:
name: Build cells (linux-x64) [cell-fonts, cell-html, cell-html-diff]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-fonts --bin ddc-cell-fonts -p cell-html --bin ddc-cell-html -p cell-html-diff --bin ddc-cell-html-diff
-
name: Test cells
run: cargo test --release -p cell-fonts -p cell-html -p cell-html-diff
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-2
path: "target/release/ddc-cell-fonts\ntarget/release/ddc-cell-html\ntarget/release/ddc-cell-html-diff"
build-cells-linux-x64-3:
name: Build cells (linux-x64) [cell-http, cell-image, cell-js]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-http --bin ddc-cell-http -p cell-image --bin ddc-cell-image -p cell-js --bin ddc-cell-js
-
name: Test cells
run: cargo test --release -p cell-http -p cell-image -p cell-js
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-3
path: "target/release/ddc-cell-http\ntarget/release/ddc-cell-image\ntarget/release/ddc-cell-js"
build-cells-linux-x64-4:
name: Build cells (linux-x64) [cell-jxl, cell-linkcheck, cell-markdown]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-jxl --bin ddc-cell-jxl -p cell-linkcheck --bin ddc-cell-linkcheck -p cell-markdown --bin ddc-cell-markdown
-
name: Test cells
run: cargo test --release -p cell-jxl -p cell-linkcheck -p cell-markdown
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-4
path: "target/release/ddc-cell-jxl\ntarget/release/ddc-cell-linkcheck\ntarget/release/ddc-cell-markdown"
build-cells-linux-x64-5:
name: Build cells (linux-x64) [cell-minify, cell-pagefind, cell-sass]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-minify --bin ddc-cell-minify -p cell-pagefind --bin ddc-cell-pagefind -p cell-sass --bin ddc-cell-sass
-
name: Test cells
run: cargo test --release -p cell-minify -p cell-pagefind -p cell-sass
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-5
path: "target/release/ddc-cell-minify\ntarget/release/ddc-cell-pagefind\ntarget/release/ddc-cell-sass"
build-cells-linux-x64-6:
name: Build cells (linux-x64) [cell-svgo, cell-tui, cell-webp]
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-svgo --bin ddc-cell-svgo -p cell-tui --bin ddc-cell-tui -p cell-webp --bin ddc-cell-webp
-
name: Test cells
run: cargo test --release -p cell-svgo -p cell-tui -p cell-webp
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-linux-x64-6
path: "target/release/ddc-cell-svgo\ntarget/release/ddc-cell-tui\ntarget/release/ddc-cell-webp"
assemble-linux-x64:
name: Assemble (linux-x64)
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
needs:
- build-ddc-linux-x64
- build-cells-linux-x64-1
- build-cells-linux-x64-2
- build-cells-linux-x64-3
- build-cells-linux-x64-4
- build-cells-linux-x64-5
- build-cells-linux-x64-6
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download ddc
uses: actions/download-artifact@v4
with:
name: ddc-linux-x64
path: target/release
-
name: Download cells
uses: actions/download-artifact@v4
with:
pattern: cells-linux-x64-*
path: target/release
merge-multiple: "true"
-
name: List binaries
run: ls -la target/release/
-
name: Assemble archive
run: bash scripts/assemble-archive.sh x86_64-unknown-linux-gnu
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-linux-x64
path: dodeca-x86_64-unknown-linux-gnu.tar.xz
integration-linux-x64:
name: Integration (linux-x64)
runs-on: depot-ubuntu-24.04-32
timeout-minutes: 30
needs:
- assemble-linux-x64
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
-
name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Install wasm-pack
run: "curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh"
-
name: Build WASM
run: cargo xtask wasm
-
name: Download build
uses: actions/download-artifact@v4
with:
name: build-linux-x64
path: dist
-
name: Extract archive
run: tar -xf dist/dodeca-x86_64-unknown-linux-gnu.tar.xz -C dist && chmod +x dist/ddc dist/ddc-cell-* && ls -la dist/
-
name: Run integration tests
run: cargo xtask integration --no-build
env:
DODECA_BIN: ${{ github.workspace }}/dist/ddc
DODECA_CELL_PATH: ${{ github.workspace }}/dist
build-ddc-macos-arm64:
name: Build ddc (macos-arm64)
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
targets: wasm32-unknown-unknown
-
name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Install wasm-pack
run: brew install wasm-pack
-
name: Build WASM
run: cargo xtask wasm
-
name: Build ddc
run: cargo build --release -p dodeca
-
name: Test ddc
run: cargo test --release -p dodeca --bins
-
name: Clippy
run: cargo clippy --all-features --all-targets -- -D warnings
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ddc-macos-arm64
path: target/release/ddc
build-cells-macos-arm64-1:
name: Build cells (macos-arm64) [cell-arborium, cell-code-execution, cell-css]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-arborium --bin ddc-cell-arborium -p cell-code-execution --bin ddc-cell-code-execution -p cell-css --bin ddc-cell-css
-
name: Test cells
run: cargo test --release -p cell-arborium -p cell-code-execution -p cell-css
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-1
path: "target/release/ddc-cell-arborium\ntarget/release/ddc-cell-code-execution\ntarget/release/ddc-cell-css"
build-cells-macos-arm64-2:
name: Build cells (macos-arm64) [cell-fonts, cell-html, cell-html-diff]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-fonts --bin ddc-cell-fonts -p cell-html --bin ddc-cell-html -p cell-html-diff --bin ddc-cell-html-diff
-
name: Test cells
run: cargo test --release -p cell-fonts -p cell-html -p cell-html-diff
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-2
path: "target/release/ddc-cell-fonts\ntarget/release/ddc-cell-html\ntarget/release/ddc-cell-html-diff"
build-cells-macos-arm64-3:
name: Build cells (macos-arm64) [cell-http, cell-image, cell-js]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-http --bin ddc-cell-http -p cell-image --bin ddc-cell-image -p cell-js --bin ddc-cell-js
-
name: Test cells
run: cargo test --release -p cell-http -p cell-image -p cell-js
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-3
path: "target/release/ddc-cell-http\ntarget/release/ddc-cell-image\ntarget/release/ddc-cell-js"
build-cells-macos-arm64-4:
name: Build cells (macos-arm64) [cell-jxl, cell-linkcheck, cell-markdown]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-jxl --bin ddc-cell-jxl -p cell-linkcheck --bin ddc-cell-linkcheck -p cell-markdown --bin ddc-cell-markdown
-
name: Test cells
run: cargo test --release -p cell-jxl -p cell-linkcheck -p cell-markdown
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-4
path: "target/release/ddc-cell-jxl\ntarget/release/ddc-cell-linkcheck\ntarget/release/ddc-cell-markdown"
build-cells-macos-arm64-5:
name: Build cells (macos-arm64) [cell-minify, cell-pagefind, cell-sass]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-minify --bin ddc-cell-minify -p cell-pagefind --bin ddc-cell-pagefind -p cell-sass --bin ddc-cell-sass
-
name: Test cells
run: cargo test --release -p cell-minify -p cell-pagefind -p cell-sass
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-5
path: "target/release/ddc-cell-minify\ntarget/release/ddc-cell-pagefind\ntarget/release/ddc-cell-sass"
build-cells-macos-arm64-6:
name: Build cells (macos-arm64) [cell-svgo, cell-tui, cell-webp]
runs-on: depot-macos-15
timeout-minutes: 30
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Build cells
run: cargo build --release -p cell-svgo --bin ddc-cell-svgo -p cell-tui --bin ddc-cell-tui -p cell-webp --bin ddc-cell-webp
-
name: Test cells
run: cargo test --release -p cell-svgo -p cell-tui -p cell-webp
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: cells-macos-arm64-6
path: "target/release/ddc-cell-svgo\ntarget/release/ddc-cell-tui\ntarget/release/ddc-cell-webp"
assemble-macos-arm64:
name: Assemble (macos-arm64)
runs-on: depot-macos-15
timeout-minutes: 30
needs:
- build-ddc-macos-arm64
- build-cells-macos-arm64-1
- build-cells-macos-arm64-2
- build-cells-macos-arm64-3
- build-cells-macos-arm64-4
- build-cells-macos-arm64-5
- build-cells-macos-arm64-6
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download ddc
uses: actions/download-artifact@v4
with:
name: ddc-macos-arm64
path: target/release
-
name: Download cells
uses: actions/download-artifact@v4
with:
pattern: cells-macos-arm64-*
path: target/release
merge-multiple: "true"
-
name: List binaries
run: ls -la target/release/
-
name: Assemble archive
run: bash scripts/assemble-archive.sh aarch64-apple-darwin
-
name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-macos-arm64
path: dodeca-aarch64-apple-darwin.tar.xz
integration-macos-arm64:
name: Integration (macos-arm64)
runs-on: depot-macos-15
timeout-minutes: 30
needs:
- assemble-macos-arm64
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
-
name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly
-
name: Rust cache
uses: Swatinem/rust-cache@v2
with:
cache-on-failure: "true"
-
name: Install wasm-pack
run: brew install wasm-pack
-
name: Build WASM
run: cargo xtask wasm
-
name: Download build
uses: actions/download-artifact@v4
with:
name: build-macos-arm64
path: dist
-
name: Extract archive
run: tar -xf dist/dodeca-aarch64-apple-darwin.tar.xz -C dist && chmod +x dist/ddc dist/ddc-cell-* && ls -la dist/
-
name: Run integration tests
run: cargo xtask integration --no-build
env:
DODECA_BIN: ${{ github.workspace }}/dist/ddc
DODECA_CELL_PATH: ${{ github.workspace }}/dist
release:
name: Release
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- integration-linux-x64
- integration-macos-arm64
if: "startsWith(github.ref, 'refs/tags/')"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist
pattern: build-*
merge-multiple: "true"
-
name: List artifacts
run: ls -laR dist/
-
name: Create GitHub Release
run: "gh release create \"${{ github.ref_name }}\" \\\n --title \"dodeca ${{ github.ref_name }}\" \\\n --generate-notes \\\n dist/**/*.tar.xz dist/**/*.zip"
shell: bash
-
name: Update Homebrew tap
run: "bash scripts/update-homebrew.sh \"${{ github.ref_name }}\""
shell: bash