Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/Benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,16 @@ jobs:

- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.89"
rust-toolchain: "1.93"

- uses: dtolnay/rust-toolchain@1.89
- uses: dtolnay/rust-toolchain@1.93
with:
components: clippy, rustfmt

- name: Download Wasm Modules
uses: actions/download-artifact@v5
with:
name: guest-modules
name: guest-modules-lts
path: ./x64/${{ matrix.config }}

### Benchmarks ###
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CargoAudit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
# We are not using the common workflow here because it installs a lot of tools we don't need
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.89"
toolchain: "1.93"

- uses: extractions/setup-just@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CreateDevcontainerImage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ env:
USER: vscode
GROUP: vscode
LLVM_VERSION: 17
RUST_TOOLCHAIN_DEFAULT: 1.89
RUST_TOOLCHAIN_DEFAULT: 1.93
RUST_TOOLCHAIN_FILE: rust-toolchain.toml
WASI_SDK_VERSION_FULL: "25.0"
GCC_VERSION: "12"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/CreateRelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Hyperlight setup
uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.89"
rust-toolchain: "1.93"
- name: Set HYPERLIGHTWASM_VERSION
run: |
git fetch --tags
Expand All @@ -50,7 +50,7 @@ jobs:
- name: Download Wasm Modules
uses: actions/download-artifact@v5
with:
name: guest-modules
name: guest-modules-lts
path: ${{ env.PLATFORM }}/${{ env.CONFIG }}
- name: Build rust wasm modules
run: just build-rust-wasm-examples ${{ env.CONFIG }}
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
echo "✅ $crate@$version already published, skipping."
else
echo "🚀 Publishing $crate@$version"
cargo +1.92 publish -p "$crate"
cargo +1.93 publish -p "$crate"
fi
}

Expand Down
48 changes: 37 additions & 11 deletions .github/workflows/dep_build_wasm_examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,13 @@ permissions:
contents: read

jobs:
build-wasm-examples:
build-docker-image:
if: ${{ inputs.docs_only == 'false' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Remove default clang
run: sudo rm /usr/bin/clang
- name: Hyperlight setup workflow
uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.89"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Registry
Expand Down Expand Up @@ -76,14 +70,46 @@ jobs:
tags: ghcr.io/${{ github.repository_owner }}/wasm-clang-builder:latest
cache-from: type=registry,ref=ghcr.io/${{ github.repository_owner }}/wasm-clang-builder:buildcache
cache-to: ${{ env.CACHE_TO }}
- name: Build Modules

build-wasm-examples:
needs: build-docker-image
runs-on: ubuntu-latest
strategy:
matrix:
wasmtime_version:
- name: lts
features: ""
- name: latest
features: "wasmtime_latest"
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Remove default clang
run: sudo rm /usr/bin/clang
- name: Hyperlight setup workflow
uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.93"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull wasm-clang-builder
run: |
docker pull ghcr.io/${{ github.repository_owner }}/wasm-clang-builder:latest
- name: Build Modules (wasmtime ${{ matrix.wasmtime_version.name }})
run: |
just ensure-tools
just build-wasm-examples release
just build-wasm-examples release ${{ matrix.wasmtime_version.features }}
shell: bash
- name: Upload Wasm Modules
- name: Upload Wasm Modules (wasmtime ${{ matrix.wasmtime_version.name }})
uses: actions/upload-artifact@v4
with:
name: guest-modules
name: guest-modules-${{ matrix.wasmtime_version.name }}
path: |
x64/release/*.aot
2 changes: 1 addition & 1 deletion .github/workflows/dep_cargo_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Hyperlight setup
uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.89"
rust-toolchain: "1.93"

# github actions that run against PRs check out a ref to the PR merge branch
# we need to switch / create a branch for cargo ws to run late
Expand Down
34 changes: 25 additions & 9 deletions .github/workflows/dep_rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ jobs:
hypervisor: [hyperv, mshv3, kvm] # hyperv is windows, mshv and kvm are linux
cpu: [amd, intel]
config: [debug, release]
wasmtime: [latest, lts]
exclude:
# Latest testing: skip Windows, Intel, and debug builds to reduce CI load
- wasmtime: latest
hypervisor: hyperv
- wasmtime: latest
cpu: intel
- wasmtime: latest
config: debug

runs-on: ${{ fromJson(
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}", "JobId=build-{3}-{4}-{5}-{6}"]',
Expand All @@ -50,13 +59,20 @@ jobs:
github.run_id,
github.run_number,
github.run_attempt)) }}
env:
# Features to pass to cargo.
# On Windows LTS builds, do not pass any features.
# On Windows latest builds, only add wasmtime_latest.
# On Linux, always pass the hypervisor feature (kvm/mshv3).
# On Linux latest builds, also add wasmtime_latest.
FEATURES: ${{ matrix.hypervisor != 'hyperv' && format('{0}{1}', matrix.hypervisor, matrix.wasmtime == 'latest' && ',wasmtime_latest' || '') || (matrix.wasmtime == 'latest' && 'wasmtime_latest' || '') }}
steps:
- uses: actions/checkout@v5

- name: Hyperlight setup
uses: hyperlight-dev/ci-setup-workflow@v1.8.0
with:
rust-toolchain: "1.89"
rust-toolchain: "1.93"

- name: Add Nightly Rust
run: |
Expand All @@ -74,7 +90,7 @@ jobs:
- name: Download Wasm Modules
uses: actions/download-artifact@v5
with:
name: guest-modules
name: guest-modules-${{ matrix.wasmtime }}
path: ./x64/${{ matrix.config }}

- name: Build Rust component model examples
Expand All @@ -83,7 +99,7 @@ jobs:
# because the component model example depends on the wasm component built here
just ensure-tools
just compile-wit
just build-rust-component-examples ${{ matrix.config }}
just build-rust-component-examples ${{ matrix.config }} ${{ matrix.wasmtime == 'latest' && 'wasmtime_latest' || '' }}

- name: Fmt
run: just fmt-check
Expand All @@ -92,15 +108,15 @@ jobs:
run: just clippy ${{ matrix.config }}

- name: Build
run: just build ${{ matrix.config }}
run: just build ${{ matrix.config }} ${{ env.FEATURES }}
working-directory: ./src/hyperlight_wasm

- name: Build Rust Wasm examples
run: just build-rust-wasm-examples ${{ matrix.config }}
run: just build-rust-wasm-examples ${{ matrix.config }} ${{ matrix.wasmtime == 'latest' && 'wasmtime_latest' || '' }}
working-directory: ./src/hyperlight_wasm

- name: Test
run: just test ${{ matrix.config }}
run: just test ${{ matrix.config }} ${{ env.FEATURES }}
working-directory: ./src/hyperlight_wasm

- name: Install github-cli (Windows)
Expand All @@ -118,7 +134,7 @@ jobs:
shell: pwsh

- name: Test Examples
run: just examples-ci ${{ matrix.config }}
run: just examples-ci ${{ matrix.config }} ${{ env.FEATURES }}
working-directory: ./src/hyperlight_wasm
env:
# required for gh cli when downloading
Expand All @@ -128,7 +144,7 @@ jobs:

- name: Download benchmarks from "latest"
run: |
just bench-download ${{ runner.os }} ${{ matrix.hypervisor }} ${{ matrix.cpu }} dev-latest
just bench-download ${{ runner.os }} ${{ matrix.hypervisor }} ${{ matrix.cpu }} dev-latest ${{ matrix.wasmtime }}
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true
Expand All @@ -137,6 +153,6 @@ jobs:

- name: Run benchmarks
run: |
just bench-ci dev ${{ matrix.config }}
just bench-ci dev ${{ matrix.config }} ${{ env.FEATURES }}
working-directory: ./src/hyperlight_wasm
if: ${{ matrix.config == 'release' }}
Loading
Loading