Skip to content

Merge pull request #89 from ecmwf-projects/COPDS-1241-views #380

Merge pull request #89 from ecmwf-projects/COPDS-1241-views

Merge pull request #89 from ecmwf-projects/COPDS-1241-views #380

Workflow file for this run

name: on-push
on:
push:
branches:
- main
tags:
- '*'
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -l {0}
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: pre-commit/[email protected]
combine-environments:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install conda-merge
run: |
$CONDA/bin/python -m pip install conda-merge
- name: Combine environments
run: |
for SUFFIX in ci integration; do
$CONDA/bin/conda-merge ci/environment-$SUFFIX.yml environment.yml > ci/combined-environment-$SUFFIX.yml || exit
done
- name: Archive combined environments
uses: actions/upload-artifact@v3
with:
name: combined-environments
path: ci/combined-environment-*.yml
unit-tests:
name: unit-tests
needs: combine-environments
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11']
steps:
- uses: actions/checkout@v3
- name: Download combined environments
uses: actions/download-artifact@v3
with:
name: combined-environments
path: ci
- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/combined-environment-ci.yml
environment-name: DEVELOP
cache-environment: true
create-args: >-
python=${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --no-deps -e .
- name: Run tests
run: |
make unit-tests COV_REPORT=xml
type-check:
needs: [combine-environments, unit-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download combined environments
uses: actions/download-artifact@v3
with:
name: combined-environments
path: ci
- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/combined-environment-ci.yml
environment-name: DEVELOP
cache-environment: true
create-args: >-
python=3.10
- name: Install package
run: |
python -m pip install --no-deps -e .
- name: Run code quality checks
run: |
make type-check
docs-build:
needs: [combine-environments, unit-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download combined environments
uses: actions/download-artifact@v3
with:
name: combined-environments
path: ci
- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/combined-environment-ci.yml
environment-name: DEVELOP
cache-environment: true
create-args: >-
python=3.10
- name: Install package
run: |
python -m pip install --no-deps -e .
- name: Build documentation
run: |
make docs-build
integration-tests:
needs: [combine-environments, unit-tests]
if: |
success() && false
runs-on: ubuntu-latest
strategy:
matrix:
include:
- python-version: '3.10'
extra: -integration
steps:
- uses: actions/checkout@v3
- name: Download combined environments
uses: actions/download-artifact@v3
with:
name: combined-environments
path: ci
- name: Install Conda environment with Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: ci/combined-environment${{ matrix.extra }}.yml
environment-name: DEVELOP${{ matrix.extra }}
cache-environment: true
create-args: >-
python=${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --no-deps -e .
- name: Run tests
run: |
make unit-tests COV_REPORT=xml
distribution:
runs-on: ubuntu-latest
needs: [unit-tests, type-check, docs-build, integration-tests]
if: |
always() &&
needs.unit-tests.result == 'success' &&
needs.type-check.result == 'success' &&
needs.docs-build.result == 'success' &&
(needs.integration-tests.result == 'success' || needs.integration-tests.result == 'skipped')
steps:
- uses: actions/checkout@v3
- name: Install packages
run: |
$CONDA/bin/python -m pip install build twine
- name: Build distributions
run: |
$CONDA/bin/python -m build
- name: Check wheels
run: |
cd dist || exit
$CONDA/bin/python -m pip install cads_catalogue*.whl || exit
$CONDA/bin/python -m twine check * || exit
$CONDA/bin/python -c "import cads_catalogue"
- name: Publish a Python distribution to PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}