CI #469
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: "CI" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
release: | |
types: | |
- published | |
schedule: | |
- cron: '0 12 * * 6' | |
jobs: | |
flake8: | |
name: flake8 | |
runs-on: 'ubuntu-latest' | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
activate-environment: flake8 | |
auto-update-conda: true | |
miniforge-variant: Mambaforge | |
- name: Install dependencies | |
run: mamba install --yes --quiet flake8 | |
- name: Execute flake8 | |
run: flake8 . --max-line-length=99 | |
pycharm-security: | |
runs-on: ubuntu-latest | |
name: pycharm-security | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run PyCharm Security | |
uses: tonybaloney/pycharm-security@master | |
pytest: | |
needs: [flake8, pycharm-security] | |
name: pytest (Python ${{ matrix.python-version }}, ${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -el {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
activate-environment: test | |
auto-update-conda: true | |
miniforge-variant: Mambaforge | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: mamba install --yes --quiet --file requirements.txt --file requirements_test.txt "python=${{ matrix.python-version }}.*=*_cpython" "pandoc=2" | |
- name: Execute pytest | |
run: pytest . | |
- uses: codecov/codecov-action@v1 | |
pytest-pandoc-versions: | |
needs: [flake8, pycharm-security] | |
name: pytest (Pandoc ${{ matrix.pandoc-version }}) | |
runs-on: 'ubuntu-latest' | |
defaults: | |
run: | |
shell: bash -el {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
pandoc-version: ['2.11', '2.12', '2.13', '2.14', '2.15', '2.16', '2.17', '2.18', '2.19'] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
activate-environment: test | |
auto-update-conda: true | |
miniforge-variant: Mambaforge | |
- name: Install dependencies | |
run: mamba install --yes --quiet --file requirements.txt --file requirements_test.txt pandoc=${{ matrix.pandoc-version }} | |
- name: Execute pytest | |
run: pytest . | |
conda-build: | |
needs: [pytest, pytest-pandoc-versions] | |
name: conda-build (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -el {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Fetch history for all branches and tags | |
run: git fetch --prune | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
miniforge-variant: Mambaforge | |
- name: Install conda-build | |
run: mamba install --yes --quiet conda-build boa | |
- name: Execute conda-build | |
run: conda mambabuild --output-folder conda-bld conda.recipe | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: python-${{ matrix.os }} | |
path: conda-bld/*/*.tar.bz2 | |
pypi-packages: | |
needs: [pytest, pytest-pandoc-versions] | |
name: pypi-packages | |
runs-on: 'ubuntu-latest' | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Fetch history for all branches and tags | |
run: git fetch --prune | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
miniforge-variant: Mambaforge | |
- name: Install setuptools setuptools-scm and wheel | |
run: mamba install --yes --quiet build setuptools setuptools-scm wheel | |
- name: Build source-distribution and wheel | |
run: python -m build | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: pypi-packages | |
path: dist/* |