chore: add regression tests based on github issues #27
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: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| - nightly | |
| - "releases/*" | |
| permissions: | |
| contents: read | |
| jobs: | |
| lint: | |
| name: Lint & format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install Poetry | |
| run: curl -sSL https://install.python-poetry.org | python - -y | |
| - name: Update PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Install dependencies | |
| run: poetry install --no-interaction | |
| - name: Ruff (lint) | |
| run: poetry run ruff check python_obfuscator tests | |
| - name: Black (format check) | |
| run: poetry run black --check python_obfuscator tests | |
| - name: isort (import order check) | |
| run: poetry run isort --check-only python_obfuscator tests | |
| - name: Pyright (type check) | |
| run: poetry run pyright python_obfuscator | |
| test: | |
| name: Test (Python ${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install Poetry | |
| run: curl -sSL https://install.python-poetry.org | python - -y | |
| - name: Update PATH | |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Install dependencies | |
| run: poetry install --no-interaction | |
| - name: Type check (mypy) | |
| run: poetry run mypy python_obfuscator | |
| - name: Run tests with coverage | |
| run: | | |
| poetry run coverage run -m pytest | |
| poetry run coverage report | |
| poetry run coverage xml | |
| - name: Upload coverage to Codecov | |
| if: matrix.python-version == '3.12' | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| slug: davidteather/python-obfuscator | |
| files: ./coverage.xml |