name: AVM ISA Cross-Port CI on: push: paths: - 'python/avm.py' - 'go/avm.go' - 'rust/src/avm/**' - 'c/avm.c' - 'cpp/avm.hpp' - 'fortran/**' - 'tests/**' - 'scripts/wolfram_verify.py' workflow_dispatch: jobs: python: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: { python-version: '3.12' } - name: Run Python AVM tests run: PYTHONPATH=python python3 -m pytest tests/test_avm_python.py -v go: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: { go-version: '1.26' } - name: Run Go AVM tests run: go test -v ./go/ rust: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Run Rust AVM tests run: cd rust && cargo test c: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build and run C AVM tests run: | gcc -o c/test_avm c/test_avm.c -lm ./c/test_avm cpp: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build and run C++ AVM tests run: | g++ -std=c++20 -o cpp/test_avm cpp/test_avm.cpp ./cpp/test_avm wolfram-verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: { python-version: '3.12' } - name: Wolfram Alpha verification run: python3 scripts/wolfram_verify.py env: WOLFRAM_APP_ID: ${{ secrets.WOLFRAM_APP_ID }} cross-verify: runs-on: ubuntu-latest needs: [python, go, rust, c, cpp] steps: - uses: actions/checkout@v4 - name: All AVM ports passed run: echo "✅ All AVM ISA port tests passed"