Streamline developer testing #94
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: 'Run Tests' | |
on: | |
pull_request: | |
push: | |
branches: | |
- 'master-update' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
pykwasm-code-quality-checks: | |
name: 'Code Quality Checks' | |
runs-on: ubuntu-latest | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v4 | |
- name: 'Install Poetry' | |
uses: Gr1N/setup-poetry@v9 | |
- name: 'Build pykwasm' | |
run: poetry -C pykwasm install | |
- name: 'Run code quality checks' | |
run: make -C pykwasm check | |
- name: 'Run pyupgrade' | |
run: make -C pykwasm pyupgrade | |
- name: 'Run unit tests' | |
run: make -C pykwasm cov-unit | |
- name: 'Run Rust unit-tests' | |
run: make rust-tests | |
conformance-tests: | |
name: 'Conformance Tests' | |
needs: pykwasm-code-quality-checks | |
runs-on: [self-hosted, aws, us-east-2, m6a.4xlarge] | |
timeout-minutes: 30 | |
steps: | |
- name: 'Check out code' | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: 'Set up Docker' | |
uses: ./.github/actions/with-docker | |
with: | |
container-name: kwasm-ci-conformance-${{ github.sha }} | |
- name: 'Build pykwasm' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} poetry -C pykwasm install | |
- name: 'Build LLVM definition' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} poetry -C pykwasm run kdist -v build wasm-semantics.llvm | |
- name: 'Run integration tests' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} make -C pykwasm cov-integration | |
- name: 'Run simple tests' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} make -j2 test-simple | |
- name: 'Run conformance tests: run' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} make -j2 test-conformance-supported | |
- name: 'Run conformance tests: parse' | |
run: docker exec -u user kwasm-ci-conformance-${GITHUB_SHA} make test-conformance-parse | |
- name: 'Tear down Docker' | |
if: always() | |
run: | | |
docker stop --time=0 kwasm-ci-conformance-${GITHUB_SHA} |