Skip to content

Support Python 3.12 #297

Support Python 3.12

Support Python 3.12 #297

Workflow file for this run

name: Lint and Test
on:
push:
branches: ['dev', 'feature/**', 'master', 'release/*']
pull_request:
branches: ['dev', 'feature/**', 'master', 'release/*']
types: [opened, reopened, synchronize]
release:
types: [edited, published]
workflow_dispatch:
defaults:
run:
shell: bash -l {0}
jobs:
lint:
name: Lint (Python ${{ matrix.python-version }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.10' ]
steps:
- name: Checkout project
uses: actions/checkout@v2
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Install latest conda
run: |
conda update -n base -q conda
- name: Install dependencies
run: |
conda install python=${{ matrix.python-version }} pip --file requirements.txt --file requirements-extra.txt
pip install -r requirements-dev.txt
python setup.py develop --no-deps
- name: Conda environment information
id: conda_environment_information
run: |
conda info
conda config --show
conda list --show-channel-urls
echo ::set-output name=exit_status::success
- name: Check with pycodestyle
if: ${{ always() && steps.conda_environment_information.outputs.exit_status == 'success' }}
run: |
mkdir -p .artifacts/reports
make lint-pycodestyle > .artifacts/reports/pycodestyle.txt 2>&1
- name: Check with bandit
if: ${{ always() && steps.conda_environment_information.outputs.exit_status == 'success' }}
run: |
mkdir -p .artifacts/reports
make lint-bandit > .artifacts/reports/bandit.txt 2>&1
- name: Check with mypy
if: ${{ always() && steps.conda_environment_information.outputs.exit_status == 'success' }}
run: |
mkdir -p .artifacts/reports
make lint-mypy > .artifacts/reports/mypy.txt 2>&1
- name: Check with pylint
if: ${{ always() && steps.conda_environment_information.outputs.exit_status == 'success' }}
run: |
mkdir -p .artifacts/reports
make lint-pylint > .artifacts/reports/pylint.txt 2>&1
- name: Export reports
if: ${{ always() && steps.conda_environment_information.outputs.exit_status == 'success' }}
uses: actions/upload-artifact@v2
with:
name: report-lint-${{ matrix.python-version }}-${{ matrix.os }}
path: .artifacts/reports
retention-days: 7
test:
name: Test (Python ${{ matrix.python-version }} on ${{ matrix.os }})
needs: [lint]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ macos-latest, ubuntu-latest, windows-latest ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
steps:
# most of these steps might be anchored to corresponding ones in the "lint_code" job
# unfortunately, as of June 2021 - GitHub doesn't support anchors for action scripts
- name: Checkout project
uses: actions/checkout@v2
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Install latest conda
run: |
conda update -n base -q conda
- name: Install dependencies
run: |
conda install python=${{ matrix.python-version }} pip --file requirements.txt --file requirements-extra.txt
pip install -r requirements-dev.txt
python setup.py develop --no-deps
- name: Conda environment information
run: |
conda info
conda config --show
conda list --show-channel-urls
- name: Run tests
run: |
mkdir -p .artifacts/reports
python scripts/refresh_coveragerc.py
python -X utf8 -m pytest tests/ --cov-report html:.artifacts/reports/coverage --html=.artifacts/reports/pytest.html --self-contained-html
- name: Export reports
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: report-test-${{ matrix.python-version }}-${{ matrix.os }}
path: .artifacts/reports
retention-days: 7