Add test to cover parse_specs (#729) #478
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: 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 }} | |
miniconda-version: "latest" | |
- name: Install latest conda | |
run: | | |
conda update -n base -q conda | |
- name: Install dependencies | |
run: | | |
conda install -c defaults -c anaconda-cloud 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 "exit_status=success" >> "$GITHUB_OUTPUT" | |
- 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@v4 | |
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@v4 | |
- name: Setup Miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
miniconda-version: "latest" | |
- name: Install latest conda | |
run: | | |
conda update -n base -q conda | |
- name: Install dependencies | |
run: | | |
conda install -c defaults -c anaconda-cloud 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 | |
env: | |
_TYPER_FORCE_DISABLE_TERMINAL: 1 | |
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@v4 | |
with: | |
name: report-test-${{ matrix.python-version }}-${{ matrix.os }} | |
path: .artifacts/reports | |
retention-days: 7 |