# Based on # https://pypi.org/project/tox-gh-actions/ --- name: Test the application. on: - push - pull_request jobs: code-check: name: Code checking runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.11" - name: Install poetry run: pipx install poetry - name: Install dependencies run: poetry install - name: Run Pylint run: poetry run pylint --rcfile=pyproject.toml notifications/ sample_website/ - name: Run Bandit run: poetry run bandit -c pyproject.toml -r notifications/ test: name: Testing runs-on: ubuntu-latest needs: code-check strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install poetry run: pipx install poetry - name: Install dependencies run: poetry install - name: Run tests run: poetry run pytest env: COVERAGE_FILE: ".coverage.${{ matrix.python_version }}" - name: Store coverage file uses: actions/upload-artifact@v3 with: name: coverage path: .coverage.${{ matrix.python_version }} coverage: name: Coverage runs-on: ubuntu-latest needs: test permissions: pull-requests: write contents: write steps: - uses: actions/checkout@v3 - uses: actions/download-artifact@v3 id: download with: name: 'coverage' - name: Coverage comment id: coverage_comment uses: py-cov-action/python-coverage-comment-action@v3 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MERGE_COVERAGE_FILES: true - name: Store Pull Request comment to be posted uses: actions/upload-artifact@v3 if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true' with: name: python-coverage-comment-action path: python-coverage-comment-action.txt