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: dtolnay/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 # this is instruction decoding code