Python package #385
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: Python package | |
on: | |
push: {} | |
schedule: | |
- cron: "0 0 * * 1-5" | |
jobs: | |
test: | |
name: "Test Python ${{ matrix.python-version }}" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: "Install hatch" | |
run: "pip install hatch" | |
- name: "Run tests" | |
run: "hatch -v run test.py$(echo ${{ matrix.python-version }} | tr -d '.'):pytest" | |
diagnose-test: | |
name: "Diagnose tests" | |
runs-on: ubuntu-latest | |
env: | |
LANGUAGE: python | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- name: "Install hatch" | |
run: "pip install hatch" | |
- name: "Init Git submodules" | |
run: "git submodule init" | |
- name: "Update Git submodules" | |
run: "git submodule update" | |
- name: "Run diagnose tests" | |
run: "./tests/diagnose/bin/test" | |
lint-style: | |
name: "Style linter" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: "Install hatch" | |
run: "pip install hatch" | |
- name: "Run style linter" | |
run: "hatch -v run lint:style" | |
lint-typing: | |
name: "Typing linter" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: "Install hatch" | |
run: "pip install hatch" | |
- name: "Run typing linter" | |
run: "hatch -v run lint:typing" | |
lint-git: | |
name: "Git linter (Lintje)" | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name != 'schedule' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Fetch depth is required | |
- uses: lintje/[email protected] |