From 58b7d8aab9b59478ab4ed7fcb7d92689fe959fb0 Mon Sep 17 00:00:00 2001 From: "Lucas C. Cordeiro" Date: Sun, 28 Jun 2026 09:25:47 +0000 Subject: [PATCH] Add GitHub Actions CI to run pytest on push and PRs Run the pytest suite on push to master and on every pull request across Python 3.9/3.11/3.12. Checkout leaves the bundled bin/esbmc git-LFS object as a pointer, so the unit tests run while the ESBMC-gated smoke test self-skips. --- .github/workflows/ci.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ec58165 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,35 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ['3.9', '3.11', '3.12'] + + steps: + - uses: actions/checkout@v4 + # The bundled bin/esbmc is a 200 MB git-LFS object; leave it as a + # pointer (lfs: false) -- the unit tests do not need it, and the + # ESBMC-gated smoke test skips itself when no usable binary is present. + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install colorama pytest ast2json setuptools + + - name: Run tests + # Run as `python -m pytest` from the repo root so the ethcheck package + # is importable (the current directory is placed on sys.path). + run: python -m pytest tests/ -v