From 8d5fd05472d6d767d27490a7c8630fba359b0956 Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Thu, 11 Sep 2025 00:41:13 +0300 Subject: [PATCH 1/2] bump for build From a6cae20e1d88a4635cd0e88780eb0355bb25eebf Mon Sep 17 00:00:00 2001 From: Iftach Yakar Date: Thu, 11 Sep 2025 00:44:52 +0300 Subject: [PATCH 2/2] Add GitHub Actions workflow for pytest - Run tests on Python 3.9, 3.10, 3.11, 3.12 - Trigger on push to main/develop/add-ci branches and PRs - Include coverage reporting and caching for faster builds --- .github/workflows/test.yml | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..1ce3bf9 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,55 @@ +name: Tests + +on: + push: + branches: [ main, develop, add-ci ] + pull_request: + branches: [ main, develop ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.9', '3.10', '3.11', '3.12'] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Cache pip dependencies + uses: actions/cache@v3 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install -e . + + - name: Run tests with pytest + run: | + pytest tests/ -v --tb=short + + - name: Run tests with coverage + if: matrix.python-version == '3.12' + run: | + pip install pytest-cov + pytest tests/ --cov=tesseract_sim --cov-report=xml --cov-report=term-missing + + - name: Upload coverage to Codecov + if: matrix.python-version == '3.12' + uses: codecov/codecov-action@v3 + with: + file: ./coverage.xml + flags: unittests + name: codecov-umbrella + fail_ci_if_error: false