Skip to content

Reduce file entries #8637

Reduce file entries

Reduce file entries #8637

Workflow file for this run

name: test
on:
push:
branches:
- main
pull_request:
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
options:
-
- --no-default-features
- --all-features
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: cargo build --locked ${{ matrix.options }}
unit_test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-15
options:
-
- --no-default-features
- --features libc,std
- --features gc_always --exclude stak-compiler
exclude:
- os: ${{ github.ref == 'refs/heads/main' && 'none' || 'macos-15' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: cargo test --workspace ${{ matrix.options }}
integration_test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-15
interpreter:
- name: stak-tools
host: chibi-scheme
- name: stak-tools
host: gosh
- name: stak-tools
host: guile
- name: stak-tools
host: gosh
features:
- gc_always
tags: not @long
- name: chibi
tags: (not @stak or @chibi) and not @library
- name: gauche
tags: not @stak or @gauche
- name: guile
tags: not @stak or @guile
exclude:
- os: ${{ github.ref == 'refs/heads/main' && 'none' || 'macos-15' }}
runs-on: ${{ matrix.os }}
env:
STAK_HOST_INTERPRETER: ${{ matrix.interpreter.host || 'gosh' }}
GUILE_AUTO_COMPILE: 0
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: >
tools/integration_test.sh
-i ${{ matrix.interpreter.name }}
-f ${{ join(matrix.interpreter.features, ',') }},
-t '${{ matrix.interpreter.tags || 'not @none' }}'
self_host_integration_test:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-15
interpreter:
- name: stak
tags: not @library
- name: stak-tools
- name: mstak
tags: not @environment-variable and not @float and not @library
- name: mstak-tools
tags: not @environment-variable and not @float
exclude:
- os: ${{ github.ref == 'refs/heads/main' && 'none' || 'macos-15' }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: >
tools/integration_test.sh
-i ${{ matrix.interpreter.name }}
-f ${{ join(matrix.interpreter.features, ',') }},
-t '${{ matrix.interpreter.tags || 'not @none' }}'
self_host_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: tools/self_host_test.sh
minimal:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: cargo build
working-directory: cmd/minimal
- run: cargo build --release
working-directory: cmd/minimal
- run: ls -lB target/release
working-directory: cmd/minimal
- run: cargo fmt --check
working-directory: cmd/minimal
- run: cargo clippy
working-directory: cmd/minimal
- run: cargo test
working-directory: cmd/minimal
wasm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- uses: actions/setup-node@v4
with:
node-version: ">=23.5.0"
- run: cargo install wasm-pack
- run: wasm-pack build
working-directory: wasm
- run: wasm-pack test --node --release
working-directory: wasm
- run: wasm-pack pack
working-directory: wasm
profile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
- run: tools/profile_test.sh
test:
needs:
- build
- unit_test
- integration_test
- self_host_test
- wasm
- minimal
- profile
if: always()
runs-on: ubuntu-latest
steps:
- run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done