From 863c4896425d3c037ea31667c96330278f4dabb0 Mon Sep 17 00:00:00 2001 From: Helen Theissen Date: Wed, 7 Aug 2024 15:47:09 +0100 Subject: [PATCH] 25 integrate reusable workflows (#26) * ci: add public pr label * ci: add downstream-ci workflow * ci: add ci-config * fix: pre-commit * docs: update changelog * ci: switch main on downstream-ci * ci: run ci on push on main --- .github/ci-config.yml | 3 ++ .github/workflows/ci.yml | 40 +++++++++++++++++++++++++++ .github/workflows/label-public-pr.yml | 10 +++++++ CHANGELOG.md | 2 ++ 4 files changed, 55 insertions(+) create mode 100644 .github/ci-config.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/label-public-pr.yml diff --git a/.github/ci-config.yml b/.github/ci-config.yml new file mode 100644 index 0000000..f712f26 --- /dev/null +++ b/.github/ci-config.yml @@ -0,0 +1,3 @@ +dependency_branch: develop +parallelism_factor: 8 +self_build: false # Only for python packages diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..510bfee --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: ci + +on: + # Trigger the workflow on push to master or develop, except tag creation + push: + branches: + - 'main' + - 'develop' + tags-ignore: + - '**' + + # Trigger the workflow on pull request + pull_request: ~ + + # Trigger the workflow manually + workflow_dispatch: ~ + + # Trigger after public PR approved for CI + pull_request_target: + types: [labeled] + +jobs: + # Run CI including downstream packages on self-hosted runners + downstream-ci: + name: downstream-ci + if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main + with: + anemoi-graphs: ecmwf/anemoi-graphs@${{ github.event.pull_request.head.sha || github.sha }} + codecov_upload: true + secrets: inherit + + # Build downstream packages on HPC + downstream-ci-hpc: + name: downstream-ci-hpc + if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }} + uses: ecmwf-actions/downstream-ci/.github/workflows/downstream-ci.yml@main + with: + anemoi-graphs: ecmwf/anemoi-graphs@${{ github.event.pull_request.head.sha || github.sha }} + secrets: inherit diff --git a/.github/workflows/label-public-pr.yml b/.github/workflows/label-public-pr.yml new file mode 100644 index 0000000..59b2bfa --- /dev/null +++ b/.github/workflows/label-public-pr.yml @@ -0,0 +1,10 @@ +# Manage labels of pull requests that originate from forks +name: label-public-pr + +on: + pull_request_target: + types: [opened, synchronize] + +jobs: + label: + uses: ecmwf-actions/reusable-workflows/.github/workflows/label-pr.yml@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index a4e6c02..6509fe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ Keep it human-readable, your future self will thank you! ### Added - HEALPixNodes - nodebuilder based on Hierarchical Equal Area isoLatitude Pixelation of a sphere +- added downstream-ci pipeline + ### Changed ### Removed