use conda.gateways.anaconda_client for tokens possible #271
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 }} | |
- 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 | |
- 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' ] | |
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 | |
- 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 |