Skip to content

Small fixes for tests and CI #4475

Small fixes for tests and CI

Small fixes for tests and CI #4475

Workflow file for this run

name: Test
on:
push:
branches:
- main
pull_request:
jobs:
check:
name: "Check"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: "Check that distribution files are unmodified"
if: github.event_name == 'pull_request'
run: |
if git --no-pager diff --name-only $(git rev-parse origin/${{ github.base_ref }})...${{ github.sha }} | grep -q "^dist/"; then
printf "\nThe pull request modifies distribution files, but it shouldn't.\n" &&
printf "Please see https://github.com/AssemblyScript/assemblyscript/blob/main/CONTRIBUTING.md\n" &&
exit 1;
else
printf "\nOK: Distributions files have not been modified.\n";
fi
compiler:
name: "Compiler (${{ matrix.os }}, node ${{ matrix.node_version }})"
runs-on: ${{ matrix.os }}-latest
needs: check
strategy:
matrix:
os: ["ubuntu", "macos", "windows"]
node_version: ["current", "lts_latest"]
steps:
- uses: actions/checkout@v3
- uses: dcodeIO/setup-node-nvm@master
with:
node-version: ${{ matrix.node_version }}
- name: Install dependencies
run: npm ci --no-audit
- name: Build
run: npm run build
- name: Check
run: npm run check
- name: Test
run: npm test
compiler-bun:
name: "Compiler with Bun"
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- name: Install Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install
- name: Build
run: bun run ./scripts/build.js
- name: Test
run: |
bun run ./tests/parser.js &&
bun run ./tests/compiler.js &&
bun run ./tests/browser.js &&
bun run ./tests/asconfig.js &&
bun run ./tests/transform.js
bootstrap:
name: "Bootstrap (${{ matrix.target }})"
runs-on: ubuntu-latest
needs: check
strategy:
matrix:
target: ["debug", "release"]
steps:
- uses: actions/checkout@v3
- uses: dcodeIO/setup-node-nvm@master
with:
node-version: current
- name: Install dependencies
run: npm ci --no-audit
- name: Build
run: npm run build
- name: "Bootstrap ${{ matrix.target }}"
run: npm run bootstrap:${{ matrix.target }}
- name: "Test ${{ matrix.target }}"
run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target }}-bootstrap.js
- name: "Compile ${{ matrix.target }} -> ${{ matrix.target == 'debug' && 'release' || 'debug' }}"
run: node bin/asc --config src/asconfig.json --target ${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap --wasm ./build/assemblyscript.${{ matrix.target }}-bootstrap.js
- name: "Test ${{ matrix.target == 'debug' && 'release' || 'debug' }}"
run: npm run test:compiler -- --wasm build/assemblyscript.${{ matrix.target == 'debug' && 'release' || 'debug' }}-bootstrap.js
features:
name: "Features"
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: dcodeIO/setup-node-nvm@master
with:
node-mirror: https://nodejs.org/download/v8-canary/
node-version: 21.0.0-v8-canary20230419061e93e884
- name: Install dependencies
run: npm ci --no-audit
- name: Build
run: npm run build
- name: Test experimental features
env:
ASC_FEATURES: threads,reference-types,gc,exception-handling
run: |
npm run test:compiler features/threads features/reference-types features/gc features/exception-handling bindings/esm bindings/raw
runtimes:
name: "Runtimes"
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: dcodeIO/setup-node-nvm@master
with:
node-version: current
- name: Install dependencies
run: npm ci --no-audit
- name: Build
run: npm run build
- name: Test default allocator
run: |
cd tests/allocators/default
npm run build
cd ..
npm test default
- name: Test stub allocator
run: |
cd tests/allocators/stub
npm run build
cd ..
npm test stub
loader:
name: "Loader"
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v3
- uses: dcodeIO/setup-node-nvm@master
with:
node-version: current
- name: Install dependencies
run: npm ci --no-audit
- name: Build
run: npm run build
- name: Test the loader
run: |
cd lib/loader
npm run asbuild
npm run test