| name: Test upcoming Cranelift release branch |
| |
| on: |
| schedule: |
| - cron: "0 3 6 * *" |
| workflow_dispatch: {} |
| |
| permissions: {} |
| |
| env: |
| CARGO_BUILD_INCREMENTAL: false |
| RUSTFLAGS: "-Dwarnings" |
| |
| jobs: |
| test_upcoming_cranelift_release: |
| runs-on: ubuntu-latest |
| timeout-minutes: 90 |
| |
| steps: |
| - uses: actions/checkout@v6 |
| |
| - name: Determine latest Wasmtime release branch |
| id: wasmtime_release_branch |
| run: | |
| branches="$( |
| git ls-remote --heads https://github.com/bytecodealliance/wasmtime.git "refs/heads/release-*" \ |
| | awk '{print $2}' \ |
| | sed 's#refs/heads/##' \ |
| | sort -V |
| )" |
| if [[ -z "${branches}" ]]; then |
| echo "No wasmtime release branches found" |
| exit 1 |
| fi |
| latest="$(echo "${branches}" | tail -n 1)" |
| echo "Latest release branch: ${latest}" |
| echo "branch=${latest}" >> "$GITHUB_OUTPUT" |
| |
| - name: Patch Cargo.toml to use release branch Cranelift |
| run: | |
| cat >>Cargo.toml <<EOF |
| [patch.crates-io] |
| cranelift-codegen = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| cranelift-frontend = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| cranelift-module = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| cranelift-native = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| cranelift-jit = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| cranelift-object = { git = "https://github.com/bytecodealliance/wasmtime.git", branch = "$(echo $WASMTIME_RELEASE_BRANCH)" } |
| EOF |
| cargo check -p rustc-hash # update lockfile |
| env: |
| WASMTIME_RELEASE_BRANCH: ${{ steps.wasmtime_release_branch.outputs.branch }} |
| |
| - name: Prepare dependencies |
| run: ./y.sh prepare |
| |
| - name: Build (sysroot none) |
| run: ./y.sh build --sysroot none |
| |
| - name: Test |
| env: |
| TARGET_TRIPLE: x86_64-unknown-linux-gnu |
| run: ./y.sh test |
| |