Merge pull request #387 from bytecodealliance/jb/revamp-fixtures #1806
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["**"] | |
tags-ignore: ["v**"] # Skip CI for releases | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
RSPEC_FORMATTER: doc | |
jobs: | |
ci-data: | |
runs-on: ubuntu-latest | |
outputs: | |
result: ${{ steps.fetch.outputs.result }} | |
steps: | |
- id: fetch | |
uses: oxidize-rb/actions/fetch-ci-data@v1 | |
with: | |
stable-ruby-versions: | | |
# See https://github.com/bytecodealliance/wasmtime-rb/issues/286 | |
# for details. | |
exclude: [head] | |
ci: | |
runs-on: ${{ matrix.os }} | |
needs: ci-data | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
ruby: ${{ fromJSON(needs.ci-data.outputs.result).stable-ruby-versions }} | |
# include: | |
# mswin relies on head and we're not creating releases for it | |
# so disabling it as well. | |
# - os: windows-latest | |
# ruby: mswin | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Remove Gemfile.lock | |
run: rm Gemfile.lock | |
- uses: oxidize-rb/actions/setup-ruby-and-rust@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
cargo-cache: true | |
cache-version: v5 | |
- name: Compile rust ext | |
run: bundle exec rake compile:release | |
- name: Run ruby tests | |
run: bundle exec rake spec | |
- name: Run ruby tests (hard-mode with GC.stress) | |
run: bundle exec rake spec | |
env: | |
GC_STRESS: "true" | |
- name: Run examples | |
run: bundle exec rake examples | |
# The example is failing with dyld errors, it's unlikely that this is | |
# something related to wasmtime-rb itself. Disabling for now. | |
if: matrix.os != 'macos-latest' && matrix.ruby != '3.1' | |
- name: Run benchmarks | |
run: bundle exec rake bench:all | |
- name: Lint ruby | |
run: bundle exec rake standard | |
- name: Lint rust | |
run: cargo clippy -- -D warnings && cargo fmt --check |