Avoid retrying the same failing denoise configs again and again, that… #922
This file contains hidden or 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: CI | |
| on: [push, pull_request] | |
| jobs: | |
| test-linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.14", "pypy3.10"] | |
| include: | |
| - python-version: 3.10 | |
| coverage: "--cov=rebench" | |
| name: "Ubuntu-latest: Python ${{ matrix.python-version }}" | |
| steps: | |
| - name: Checkout ReBench | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| architecture: x64 | |
| - name: Install PyTest | |
| run: pip install pytest | |
| - name: Install coverage and coveralls | |
| run: pip install pytest-cov coveralls | |
| if: matrix.coverage | |
| - name: Install ReBench dependencies | |
| run: pip install --editable . | |
| - name: Run tests | |
| run: | | |
| pytest ${{ matrix.coverage }} | |
| (cd rebench && rebench ../rebench.conf e:TestRunner2) | |
| - name: Install and run pylint | |
| run: | | |
| pip install pylint | |
| pylint rebench | |
| if: matrix.python-version == '3.14' | |
| - name: Install and run black | |
| run: | | |
| pip install black | |
| black --check rebench | |
| if: matrix.python-version == '3.14' | |
| - name: Install and run mypy | |
| run: | | |
| pip install mypy types-PyYAML types-psutil types-humanfriendly | |
| mypy --install-types --non-interactive rebench | |
| if: matrix.python-version == '3.14' | |
| - name: Upload coverage results to Coveralls | |
| run: coveralls | |
| env: | |
| COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
| if: ${{ matrix.coverage && env.COVERALLS_REPO_TOKEN != '' }} | |
| test-macos: | |
| runs-on: macos-latest | |
| name: "macOS: Python 3.13" | |
| steps: | |
| - name: Checkout ReBench | |
| uses: actions/checkout@v6 | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - name: Install PyTest | |
| run: pip install pytest | |
| - name: Install ReBench dependencies | |
| run: pip install . | |
| - name: Run tests | |
| run: | | |
| python -m pytest | |
| (cd rebench && rebench ../rebench.conf e:TestRunner2) | |
| test-docker: | |
| name: "Docker: python:3" | |
| runs-on: ubuntu-latest | |
| container: | |
| image: python:3 | |
| steps: | |
| - name: Check for dockerenv file | |
| run: (ls /.dockerenv && echo Found dockerenv) || (echo No dockerenv) | |
| - name: Install Time Command | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends time | |
| - name: Checkout ReBench | |
| uses: actions/checkout@v6 | |
| - name: Install PyTest | |
| run: pip3 install pytest | |
| - name: Install ReBench dependencies | |
| run: pip3 install . | |
| - name: Run Test Run | |
| run: (cd rebench && rebench -D ../rebench.conf e:TestRunner2) | |
| - name: Run Unit Tests | |
| run: python3 -m pytest | |
| test-rocky: | |
| name: "Rocky Linux 10" | |
| runs-on: ubuntu-latest | |
| container: | |
| image: rockylinux/rockylinux:10 | |
| steps: | |
| - name: Checkout ReBench | |
| uses: actions/checkout@v6 | |
| - name: Install basic tools | |
| run: dnf install -y which time sudo python3-pip | |
| - name: Run Tests and Package in venv | |
| run: | | |
| python3 -m pip install virtualenv | |
| python3 -m virtualenv venv | |
| source venv/bin/activate | |
| pip install pytest setuptools | |
| pip install . | |
| pytest | |
| (cd rebench && rebench -D ../rebench.conf e:TestRunner2) | |
| python3 setup.py sdist build | |
| python3 setup.py sdist bdist_wheel | |
| - name: Install built package globally | |
| run: pip install dist/*.whl | |
| - name: Run integration test | |
| run: | | |
| set +e | |
| cd rebench | |
| rebench -c ../rebench.conf e:TestRunner2 | |
| REBENCH_EXIT=$? | |
| echo "rebench exit code: $REBENCH_EXIT" | |
| if [ "$REBENCH_EXIT" -ne "0" ]; then | |
| echo "rebench failed unexpectedly" | |
| exit $REBENCH_EXIT | |
| fi | |
| if [ ! -f test.data ]; then | |
| echo "test.data not found" | |
| exit 1 | |
| fi | |
| EXPECTED=80 | |
| LINES=$(cat test.data | grep total | wc -l) | |
| if [ "$LINES" -ne "$EXPECTED" ]; then | |
| echo "test.data has unexpected number of lines: $LINES" | |
| echo "expected: $EXPECTED" | |
| exit 1 | |
| fi |