Skip to content

Expand CI#20

Open
daxpedda wants to merge 19 commits intomainfrom
daxpedda
Open

Expand CI#20
daxpedda wants to merge 19 commits intomainfrom
daxpedda

Conversation

@daxpedda
Copy link
Copy Markdown
Member

No description provided.

@daxpedda daxpedda force-pushed the daxpedda branch 20 times, most recently from 9ecf878 to 2604741 Compare March 17, 2026 13:09
Comment thread .github/workflows/test.yaml Outdated
@daxpedda daxpedda force-pushed the daxpedda branch 9 times, most recently from b1facb5 to 0e2104b Compare March 19, 2026 23:40
@daxpedda daxpedda force-pushed the daxpedda branch 15 times, most recently from b907c48 to 7f54ba5 Compare April 2, 2026 20:12
daxpedda added 12 commits April 4, 2026 08:43
Sometimes we would just receive no Stdout output from Clang, resulting in empty object files which caused the linker to fail. This seemed to happen particularly often on macOS.

Its unclear what the issue is, but if its a pipe issue maybe this change would address it.

This is just a short-term problem as eventually we will move away from Clang entirely.
Comment thread .github/workflows/client.yaml Fixed
Comment thread .github/workflows/ci.yaml Fixed
Comment thread .github/workflows/client.yaml Fixed
Comment thread .github/workflows/ci.yaml Fixed
Comment thread .github/workflows/client.yaml Fixed
Comment thread .github/workflows/ci.yaml Fixed
Comment thread .github/workflows/gen.yaml Dismissed
Comment thread .github/workflows/gen.yaml Dismissed
Comment thread .github/workflows/host.yaml Fixed
Comment thread .github/workflows/host.yaml Fixed
Comment thread .github/workflows/ci.yaml
Comment on lines +18 to +57
name: Build Host Tools ${{ matrix.os.description }}

runs-on: ${{ matrix.os.os }}

timeout-minutes: 20

strategy:
fail-fast: false
matrix:
os:
- { os: ubuntu-latest, name: linux, description: Linux }
- { os: macos-latest, name: mac-os, description: macOS }
- { os: windows-latest, name: windows, description: Windows }

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Enable Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: "cache"
workspaces: |
host
dev
cache-bin: false
- name: Build `js-bindgen-ld`
run: cargo install --path host/ld --root host-tools
- name: Build `js-bindgen-runner`
run: cargo install --path host/runner --root host-tools
- name: Build `js-bindgen-web-driver`
run: cargo install --path host/web-driver --root host-tools
- name: Build `js-bindgen-dev`
run: cargo install --path dev --root host-tools
- name: Upload Host Tools
uses: actions/upload-artifact@v4
with:
name: host-tools-${{ matrix.os.name }}
path: host-tools/

build-client:
Comment thread .github/workflows/ci.yaml
- name: Checkout
uses: actions/checkout@v4
- name: Enable Caching
uses: Swatinem/rust-cache@v2
Comment thread .github/workflows/ci.yaml
Comment on lines +58 to +130
name: Build Client ${{ matrix.target.description }} ${{ matrix.target-feature.description }}

needs: host-tools

runs-on: ubuntu-latest

timeout-minutes: 20

strategy:
fail-fast: false
matrix:
target:
- {
name: wasm32,
target: wasm32-unknown-unknown,
install: true,
rust: stable,
description: Wasm32,
}
- {
name: wasm64,
target: wasm64-unknown-unknown,
install: false,
rust: nightly,
components: -c rust-src,
description: Wasm64,
}
target-feature:
- { name: default }
- { name: atomics, rust: nightly, components: -c rust-src, description: Atomics }

env:
JBG_DEV_TOOLS: 1

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run:
rustup install --no-update --profile minimal --override ${{
matrix.target-feature.components || matrix.target.components }} ${{
matrix.target-feature.rust || matrix.target.rust }}
- name: Install Target
if: matrix.target.install
run: rustup target add ${{ matrix.target.target }}
- name: Install LLVM
uses: ZhongRuoyu/setup-llvm@ec41d6e5f3c15c96fa642a49c6e7effac6261778
with:
# Rustc v1.93
llvm-version: 21
- name: Download Host Tools
uses: actions/download-artifact@v4
with:
name: host-tools-linux
path: host-tools/
- name: Install Host Tools
run: |
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: "cache"
key: ${{ matrix.target.name }}-${{ matrix.target-feature.name }}
workspaces: client
cache-bin: false
- name: Build
working-directory: dev
run:
js-bindgen-dev client build -v --target ${{ matrix.target.name }} --target-feature ${{
matrix.target-feature.name }}

test-client:
Comment thread .github/workflows/ci.yaml
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
Comment thread .github/workflows/ci.yaml
Comment on lines +131 to +219
name:
Test Client ${{ matrix.os.description }} ${{ matrix.target.description }} ${{
matrix.target-feature.description }}

needs: host-tools

runs-on: ${{ matrix.os.os }}

timeout-minutes: 20

strategy:
fail-fast: false
matrix:
os:
- { os: ubuntu-latest, name: linux, runners: all, description: Linux }
- { os: macos-latest, name: mac-os, runners: safari-driver, description: macOS }
target:
- {
name: wasm32,
target: wasm32-unknown-unknown,
install: true,
rust: stable,
description: Wasm32,
}
- {
name: wasm64,
target: wasm64-unknown-unknown,
install: false,
rust: nightly,
components: -c rust-src,
description: Wasm64,
}
target-feature:
- { name: default }
- { name: atomics, rust: nightly, components: -c rust-src, description: Atomics }
exclude:
- os: { description: macOS }
target: { description: Wasm64 }

env:
JBG_DEV_TOOLS: 1

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
run:
rustup install --no-update --profile minimal --override ${{
matrix.target-feature.components || matrix.target.components }} ${{
matrix.target-feature.rust || matrix.target.rust }}
- name: Install Target
if: matrix.target.install
run: rustup target add ${{ matrix.target.target }}
- name: Install LLVM
uses: ZhongRuoyu/setup-llvm@ec41d6e5f3c15c96fa642a49c6e7effac6261778
with:
# Rustc v1.93
llvm-version: 21
- name: Update Node.js
if: runner.os == 'Linux'
uses: actions/setup-node@v6
with:
node-version: latest
- name: Install Deno
if: runner.os == 'Linux'
uses: denoland/setup-deno@v2
- name: Download Host Tools
uses: actions/download-artifact@v4
with:
name: host-tools-${{ matrix.os.name }}
path: host-tools/
- name: Install Host Tools
run: |
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: "cache"
key: ${{ matrix.target.name }}-${{ matrix.target-feature.name }}
workspaces: client
cache-bin: false
- name: Test
working-directory: dev
run:
js-bindgen-dev client test -v --target ${{ matrix.target.name }} --target-feature ${{
matrix.target-feature.name }} --include ${{ matrix.os.runners }}

build-host:
Comment thread .github/workflows/ci.yaml
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
Comment thread .github/workflows/ci.yaml
Comment on lines +220 to +261
name: Build Host ${{ matrix.os.description }}

needs: host-tools

runs-on: ${{ matrix.os.os }}

timeout-minutes: 20

strategy:
fail-fast: false
matrix:
os:
- { os: ubuntu-latest, description: Linux }
- { os: macos-latest, description: macOS }
- { os: windows-latest, description: Windows }

env:
JBG_DEV_TOOLS: 1

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Host Tools
uses: actions/download-artifact@v4
with:
name: host-tools-linux
path: host-tools/
- name: Install Host Tools
run: |
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: "cache"
workspaces: host
cache-bin: false
- name: Build
working-directory: dev
run: js-bindgen-dev host build -v

test-host:
Comment thread .github/workflows/ci.yaml
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
Comment thread .github/workflows/ci.yaml
Comment on lines +262 to +308
name: Test Host ${{ matrix.os.description }}

needs: host-tools

runs-on: ${{ matrix.os.os }}

timeout-minutes: 20

strategy:
fail-fast: false
matrix:
os:
- { os: ubuntu-latest, description: Linux }
- { os: macos-latest, description: macOS }
- { os: windows-latest, description: Windows }

env:
JBG_DEV_TOOLS: 1

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust Wasm Target
run: rustup target add wasm32-unknown-unknown
- name: Install LLVM
uses: ZhongRuoyu/setup-llvm@ec41d6e5f3c15c96fa642a49c6e7effac6261778
with:
# Rustc v1.93
llvm-version: 21
- name: Download Host Tools
uses: actions/download-artifact@v4
with:
name: host-tools-linux
path: host-tools/
- name: Install Host Tools
run: |
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
with:
prefix-key: "cache"
workspaces: host
cache-bin: false
- name: Test
working-directory: dev
run: js-bindgen-dev host test -v
Comment thread .github/workflows/ci.yaml
chmod +x host-tools/bin/*
echo "${{ github.workspace }}/host-tools/bin" >> $GITHUB_PATH
- name: Enable Caching
uses: Swatinem/rust-cache@v2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants