Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
7ff917a
try ci.yml
mcocdawc Mar 19, 2026
1a006a5
added pre-commit hook
mcocdawc Mar 19, 2026
cd33ebb
added simple smoke buil
mcocdawc Mar 19, 2026
c7ff148
don't silently use ecbuilds
mcocdawc Mar 20, 2026
1f998c4
clone ecbuild explicitly
mcocdawc Mar 20, 2026
3484e29
re-enable downstream-CI, but make it depend on smoke
mcocdawc Mar 25, 2026
98473da
fixed yaml wording
mcocdawc Mar 25, 2026
864e77c
try out new downstream ci branch
mcocdawc Mar 25, 2026
99d0924
use old commit of downstream-CI
mcocdawc Mar 25, 2026
ba94fc2
check other older commit
mcocdawc Mar 25, 2026
626d909
try different downstream-CI branch
mcocdawc Mar 25, 2026
f17b5ad
disable dependency on smoke buil
mcocdawc Mar 25, 2026
8405b3a
trigger pipeline
mcocdawc Mar 25, 2026
2e85b21
trigger pipeline
mcocdawc Mar 25, 2026
88824e2
what's going on with downstream-CI
mcocdawc Mar 25, 2026
4c52fe0
trigger pipeline
mcocdawc Mar 25, 2026
70fa9f9
trigger pipeline
mcocdawc Mar 25, 2026
39b8006
trigger pipeline
mcocdawc Mar 25, 2026
6469040
trigger pipeline
mcocdawc Mar 25, 2026
d39ebce
trigger pipeline
mcocdawc Mar 25, 2026
27cd6af
added additional ignores
mcocdawc Mar 26, 2026
3bd42da
prevent direct commit to more branches
mcocdawc Mar 26, 2026
3b3bed7
make downstream-CI depend on smoke build
mcocdawc Mar 26, 2026
e66bdb4
re-enable automatic pulling of ecbuild
mcocdawc Mar 26, 2026
383f087
use downstream-CI@main
mcocdawc Mar 27, 2026
95d66c6
Merge branch 'develop' of github.com:ecmwf/eccodes into small_CI
mcocdawc Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 51 additions & 29 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,50 @@ on:
# Trigger the workflow on push to master or develop, except tag creation
push:
branches:
- "master"
- "develop"
- "master"
- "develop"
tags-ignore:
- "**"
- "**"
Comment thread
mcocdawc marked this conversation as resolved.
Comment thread
mcocdawc marked this conversation as resolved.

# Trigger the workflow on pull request
pull_request:
paths-ignore:
- "tests/**"
- "data/**"
- "deprecated/**"
- "bamboo/**"
- "confluence/**"
- "doxygen/**"
- "html/**"
- "python_wrapper/**"
Comment thread
mcocdawc marked this conversation as resolved.

# Trigger the workflow manually
workflow_dispatch: ~
workflow_dispatch:

# Trigger after public PR approved for CI
pull_request_target:
types: [labeled]

jobs:
# Run CI for own package
smoke-build:
name: smoke-build
runs-on: ubuntu-latest

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iainrussell here it has to change to MacOS?

steps:
- uses: actions/checkout@v4
- name: Checkout ecbuild
run: git clone --depth 1 https://github.com/ecmwf/ecbuild.git ../ecbuild
- name: Configure
Comment thread
mcocdawc marked this conversation as resolved.
run: cmake -S . -B build -DENABLE_AEC=OFF
- name: Build
run: make -C build -j"$(nproc)"
- name: Test
run: ctest --test-dir build -j"$(nproc)" --output-on-failure

# Run CI including downstream packages on self-hosted runners
downstream-ci:
name: downstream-ci
needs: [smoke-build]
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
uses: ecmwf/downstream-ci/.github/workflows/downstream-ci.yml@main
with:
Expand All @@ -43,18 +64,19 @@ jobs:
permissions:
pull-requests: write
steps:
- name: Dispatch private downstream CI
uses: ecmwf/dispatch-private-downstream-ci@v1
with:
token: ${{ secrets.GH_REPO_READ_TOKEN }}
owner: ecmwf
repository: private-downstream-ci
event_type: downstream-ci
payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}"}'
- name: Dispatch private downstream CI
uses: ecmwf/dispatch-private-downstream-ci@v1
with:
token: ${{ secrets.GH_REPO_READ_TOKEN }}
Comment thread
mcocdawc marked this conversation as resolved.
owner: ecmwf
repository: private-downstream-ci
event_type: downstream-ci
payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}"}'

# Build downstream packages on HPC
downstream-ci-hpc:
name: downstream-ci-hpc
needs: [smoke-build]
if: ${{ !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
uses: ecmwf/downstream-ci/.github/workflows/downstream-ci-hpc.yml@main
with:
Expand All @@ -70,26 +92,26 @@ jobs:
permissions:
pull-requests: write
steps:
- name: Dispatch private downstream CI
uses: ecmwf/dispatch-private-downstream-ci@v1
with:
token: ${{ secrets.GH_REPO_READ_TOKEN }}
owner: ecmwf
repository: private-downstream-ci
event_type: downstream-ci-hpc
payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}","skip_matrix_jobs": "nvidia-22.11"}'
- name: Dispatch private downstream CI
uses: ecmwf/dispatch-private-downstream-ci@v1
with:
token: ${{ secrets.GH_REPO_READ_TOKEN }}
owner: ecmwf
repository: private-downstream-ci
event_type: downstream-ci-hpc
payload: '{"eccodes": "ecmwf/eccodes@${{ github.event.pull_request.head.sha || github.sha }}","skip_matrix_jobs": "nvidia-22.11"}'

notify:
runs-on: ubuntu-latest
needs:
- downstream-ci
- private-downstream-ci
- downstream-ci-hpc
- private-downstream-ci-hpc
- downstream-ci
- private-downstream-ci
- downstream-ci-hpc
- private-downstream-ci-hpc
Comment thread
mcocdawc marked this conversation as resolved.
if: ${{ always() && !github.event.pull_request.head.repo.fork && github.event.action != 'labeled' || github.event.label.name == 'approved-for-ci' }}
steps:
- name: Trigger Teams notification
uses: ecmwf/notify-teams@v1
with:
incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
needs_context: ${{ toJSON(needs) }}
- name: Trigger Teams notification
uses: ecmwf/notify-teams@v1
with:
incoming_webhook: ${{ secrets.MS_TEAMS_INCOMING_WEBHOOK }}
needs_context: ${{ toJSON(needs) }}
43 changes: 43 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
default_language_version:
python: python3
default_stages:
- pre-commit
- pre-push
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
Comment thread
mcocdawc marked this conversation as resolved.
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-json
- id: check-yaml
- id: check-toml
- id: check-added-large-files
- id: check-merge-conflict
- id: debug-statements
- id: mixed-line-ending
- id: no-commit-to-branch
args: [--branch, main, --branch, master, --branch, develop]
# - repo: https://github.com/astral-sh/ruff-pre-commit
# rev: v0.15.4
# hooks:
# - id: ruff-check
# exclude: '(dev/.*|.*_)\.py$'
# args:
# - --exit-non-zero-on-fix
# - id: ruff-format
- repo: https://github.com/executablebooks/mdformat
rev: 1.0.0
hooks:
- id: mdformat
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
rev: v2.16.0
hooks:
- id: pretty-format-yaml
args: [--autofix, --preserve-quotes]
- id: pretty-format-toml
args: [--autofix]
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.0
hooks:
- id: gitleaks
Loading