Merge pull request #816 from Aiven-Open/eliax1996/ensure-canonical-fo… #4433
This file contains 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: Test Suite | |
on: | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
push: | |
branches: [ main ] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: 1 | |
PIP_PROGRESS_BAR: off | |
PYTHONUNBUFFERED: 1 | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ '3.9', '3.10', '3.11', '3.12' ] | |
env: | |
PYTEST_ADDOPTS: >- | |
--log-dir=/tmp/ci-logs | |
--log-file=/tmp/ci-logs/pytest.log | |
--showlocals | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
cache: pip | |
python-version: ${{ matrix.python-version }} | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.21.0' | |
- run: make install-dev | |
- run: make unit-tests | |
env: | |
COVERAGE_FILE: ".coverage.${{ matrix.python-version }}" | |
PYTEST_ARGS: "--cov=karapace --cov-append --numprocesses 4" | |
- run: make integration-tests | |
env: | |
COVERAGE_FILE: ".coverage.${{ matrix.python-version }}" | |
PYTEST_ARGS: "--cov=karapace --cov-append --random-order --numprocesses 4" | |
- name: Archive logs | |
uses: actions/upload-artifact@v4 | |
if: ${{ always() }} | |
with: | |
name: karapace-integration-test-logs-${{ matrix.python-version }} | |
path: /tmp/ci-logs | |
- name: Archive coverage file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "coverage-${{ matrix.python-version }}" | |
path: ".coverage.${{ matrix.python-version }}" | |
include-hidden-files: true | |
coverage: | |
name: Coverage report | |
runs-on: ubuntu-latest | |
needs: tests | |
permissions: | |
pull-requests: write | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- run: make install-dev | |
- name: Download coverage | |
id: download_coverage | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-* | |
merge-multiple: true | |
- name: Post coverage comment | |
id: post_coverage_comment | |
uses: py-cov-action/python-coverage-comment-action@v3 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
MERGE_COVERAGE_FILES: true | |
- name: Store PR comment to be posted | |
uses: actions/upload-artifact@v4 | |
if: steps.post_coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true' | |
with: | |
name: python-coverage-comment-action | |
path: python-coverage-comment-action.txt |