Mycelium/.forgejo/workflows/test.yml

85 lines
2.2 KiB
YAML
Raw Permalink Normal View History

name: "per-push tests"
on:
push:
branches:
- main
pull_request:
pull_request_target:
types:
- opened
- synchronized
- reopened
jobs:
build:
runs-on: docker
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup rust toolchain
uses: msrd0/rust-toolchain@nightly
- name: compile components
run: |
cargo build --lib
cargo build --bin decomposer
test-frontend:
needs: [build]
runs-on: docker
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup rust toolchain
uses: msrd0/rust-toolchain@nightly
- name: test lexer
run: cargo test lexer
- name: test parser
run: cargo test parser
timed-decomposer-parse:
needs: [test-frontend]
runs-on: docker
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup rust toolchain
uses: msrd0/rust-toolchain@nightly
- name: build decomposer
run: cargo build --bin decomposer
- name: download test scheme source
run: curl https://raw.githubusercontent.com/ecraven/r7rs-benchmarks/refs/heads/master/src/compiler.scm --output test.scm
- name: time parsing of test source
run: cargo run --bin decomposer -- -t test.scm
test-utility:
needs: [build]
runs-on: docker
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup rust toolchain
uses: msrd0/rust-toolchain@nightly
- name: test number package
run: cargo test number
- name: test double stack data type
run: cargo test stackstack
- name: test hashmap data type
run: cargo test hmap
test-backend:
needs: [build]
runs-on: docker
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup rust toolchain
uses: msrd0/rust-toolchain@nightly
- name: test instruction decoding
run: cargo test util
- name: test garbage collection
run: cargo test heap
- name: test instruction set implementation
run: cargo test isa_