[pull] master from python-semantic-release:master #46
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: Checks | |
on: | |
pull_request: | |
jobs: | |
test-linux: | |
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
python-version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
os: | |
- ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install .[test] | |
python -m pip install pytest-github-actions-annotate-failures | |
- name: Test | |
id: tests | |
run: | | |
python -m pytest \ | |
-vv \ | |
-nauto \ | |
--cov=semantic_release \ | |
--cov-context=test \ | |
--cov-report=term-missing \ | |
--cov-fail-under=80 \ | |
--junit-xml=tests/reports/pytest-results.xml | |
- name: Report | Upload Test Results | |
uses: mikepenz/action-junit-report@v4.3.1 | |
if: ${{ always() && steps.tests.outcome != 'skipped' }} | |
with: | |
report_paths: ./tests/reports/*.xml | |
annotate_only: true | |
test-windows: | |
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# Since the current test suite takes 10-15 minutes to complete on windows, we are | |
# only going to run it on the oldest version of python we support. The older version | |
# will be the most likely area to fail as newer minor versions maintain compatibility. | |
matrix: | |
python-version: [3.8] | |
os: [windows-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install .[test] | |
python -m pip install pytest-github-actions-annotate-failures | |
- name: Test | |
id: tests | |
# env: | |
# Required for GitPython to work on Windows because of getpass.getuser() | |
# USERNAME: "runneradmin" | |
# Because GHA is currently broken on Windows to pass these varables, we do it manually | |
run: | | |
$env:USERNAME = "runneradmin" | |
python -m pytest ` | |
-vv ` | |
-nauto ` | |
`--cov=semantic_release ` | |
`--cov-context=test ` | |
`--cov-report=term-missing ` | |
`--cov-fail-under=80 ` | |
`--junit-xml=tests/reports/pytest-results.xml | |
- name: Report | Upload Test Results | |
uses: mikepenz/action-junit-report@v4.3.1 | |
if: ${{ always() && steps.tests.outcome != 'skipped' }} | |
with: | |
report_paths: ./tests/reports/*.xml | |
annotate_only: true | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.8 | |
- name: Install mypy & dev packages | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install ".[dev, mypy]" | |
- name: ruff | |
run: | | |
python -m ruff check . \ | |
--output-format=full \ | |
--exit-non-zero-on-fix | |
- name: mypy | |
run: python -m mypy --ignore-missing-imports semantic_release | |
commitlint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: wagoid/commitlint-github-action@v6 |