name: Regression Testing on: pull_request: branches: - master - release/** paths: - '.github/workflows/regression.yml' - '**/*.json' - '**/*.py' - '**/*.ini' - '**/*.toml' - 'Dockerfile' push: branches: - master - release/** paths: - '.github/workflows/regression.yml' - '**/*.json' - '**/*.py' - '**/*.ini' - '**/*.toml' - 'Dockerfile' jobs: tox-lint: runs-on: ubuntu-latest # Linting is ran through tox to ensure that the same linter # is used by local runners steps: - uses: actions/checkout@v4 - name: Set up linting environment uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install tox and related dependencies run: | python -m pip install --upgrade pip pip install tox - name: Run tox linting environment run: tox -e lint tox-matrix: runs-on: ${{ matrix.os }} strategy: # We want to know what specicic versions it fails on fail-fast: false matrix: os: [ ubuntu-latest, windows-latest, macos-latest, ] python-version: [ '3.10', '3.11', '3.12', '3.13', ] steps: - uses: actions/checkout@v4 - name: Set up environment ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install tox and related dependencies run: | python -m pip install --upgrade pip pip install tox pip install tox-gh-actions - name: Run tox run: tox docker-build-test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Get version from pyproject.toml id: get-version run: | VERSION=$(grep -m1 'version = ' pyproject.toml | cut -d'"' -f2) echo "version=$VERSION" >> $GITHUB_OUTPUT - name: Build Docker image run: | docker build \ --build-arg VERSION_TAG=${{ steps.get-version.outputs.version }} \ -t sherlock-test:latest . - name: Test Docker image runs run: docker run --rm sherlock-test:latest --version