Skip to content

Use ecmwf downstream-ci #8

Use ecmwf downstream-ci

Use ecmwf downstream-ci #8

Workflow file for this run

name: ci
on:
push:
branches:
- main
- develop
tags:
- "*"
pull_request:
branches:
- main
- develop
pull_request_target:
types: [labeled]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash -l {0}
jobs:
pre-commit:
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: pre-commit/action@v3.0.0
# unit-tests:
# name: unit-tests (3.10)
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Install Conda environment with Micromamba
# uses: mamba-org/provision-with-micromamba@v14
# with:
# environment-file: tests/environment-unit-tests.yml
# environment-name: DEVELOP
# channels: conda-forge
# cache-env: true
# cache-env-key: ubuntu-latest-3.10
# extra-specs: |
# python=3.10
# - name: Install package
# run: |
# python -m pip install --no-deps -e .
# - name: Run tests
# run: |
# make unit-tests
# unit-tests-no-eccodes:
# name: unit-tests (3.10)
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Install Conda environment with Micromamba
# uses: mamba-org/provision-with-micromamba@v14
# with:
# environment-file: tests/environment-unit-tests.yml
# environment-name: DEVELOP
# channels: conda-forge
# cache-env: true
# cache-env-key: ubuntu-latest-3.10-no-eccodes
# extra-specs: |
# python=3.10
# - name: Install package
# run: |
# python -m pip install --no-deps -e .
# micromamba remove eccodes
# - name: Run tests without eccodes
# run: |
# python -m pytest -v -m 'no_eccodes'
# type-check:
# needs: [unit-tests]
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# defaults:
# run:
# shell: bash -l {0}
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Install Conda environment with Micromamba
# uses: mamba-org/provision-with-micromamba@v12
# with:
# environment-file: environment.yml
# environment-name: DEVELOP
# channels: conda-forge
# cache-env: true
# cache-env-key: ubuntu-latest-3.10
# extra-specs: |
# python=3.10
# - name: Install package
# run: |
# python -m pip install --no-deps -e .
# - name: Run code quality checks
# run: |
# echo type-check not used
# documentation:
# needs: [unit-tests]
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# defaults:
# run:
# shell: bash -l {0}
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Install Conda environment with Micromamba
# uses: mamba-org/provision-with-micromamba@v12
# with:
# environment-file: environment.yml
# environment-name: DEVELOP
# channels: conda-forge
# cache-env: true
# cache-env-key: ubuntu-latest-3.10
# extra-specs: |
# python=3.10
# - name: Install package
# run: |
# python -m pip install --no-deps -e .
# - name: Build documentation
# run: |
# make docs-build
# integration-tests:
# needs: [unit-tests]
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# defaults:
# run:
# shell: bash -l {0}
# strategy:
# matrix:
# include:
# - python-version: "3.10"
# # extra: -minver # This will need to be uncommented and environment-minver.yml updated if we want to publish on conda
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Install Conda environment with Micromamba
# uses: mamba-org/provision-with-micromamba@v12
# with:
# environment-file: tests/environment-unit-tests${{ matrix.extra }}.yml
# environment-name: DEVELOP${{ matrix.extra }}
# channels: conda-forge
# cache-env: true
# cache-env-key: ubuntu-latest-${{ matrix.python-version }}${{ matrix.extra }}.
# extra-specs: |
# python=${{matrix.python-version }}
# - name: Install package
# run: |
# python -m pip install --no-deps -e .
# - name: Run tests
# run: |
# make unit-tests
# distribution:
# needs: [integration-tests, type-check, documentation]
# if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# with:
# ref: ${{ github.event.pull_request.head.sha || github.ref }}
# - name: Build distributions
# run: |
# $CONDA/bin/python -m pip install build
# $CONDA/bin/python -m build
# - 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 }}
# notify:
# if: always() && ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
# needs:
# - pre-commit
# - unit-tests
# - type-check
# - documentation
# - integration-tests
# - distribution
# runs-on: ubuntu-latest
# steps:
# - name: Trigger Teams notification
# uses: ecmwf-actions/notify-teams@v1
# with:
# incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
# needs_context: ${{ toJSON(needs) }}