From 3f2f0ce9265ae895dc176cb85b4e3059f91d979b Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 10:10:58 +0100 Subject: [PATCH 01/19] add label public PR workflow --- .github/workflows/label-public-pr.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/workflows/label-public-pr.yml diff --git a/.github/workflows/label-public-pr.yml b/.github/workflows/label-public-pr.yml new file mode 100644 index 0000000..52f3b87 --- /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 \ No newline at end of file From e351ce57dae27367468ab5ffe4393520b3f0e295 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 10:17:22 +0100 Subject: [PATCH 02/19] add ecmwf ci github actions --- .github/workflows/{ci.yml => ci_legacy.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ci.yml => ci_legacy.yml} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci_legacy.yml similarity index 100% rename from .github/workflows/ci.yml rename to .github/workflows/ci_legacy.yml From c8553db2c0fd76f3d7aebc820a1ac398070cc065 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 10:19:03 +0100 Subject: [PATCH 03/19] test ci using feature/pyflow branch --- .github/workflows/ci.yml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a3e4bc9 --- /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: + - 'master' + - '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@feature/pyflow + with: + pyflow: ecmwf/pyflow@${{ github.event.pull_request.head.sha || github.sha }} + python_qa: 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-hpc.yml@feature/pyflow + with: + pyflow: ecmwf/pyflow@${{ github.event.pull_request.head.sha || github.sha }} + secrets: inherit \ No newline at end of file From 6a9c5bff16da1bbbeffa4d26c236431e750fddea Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 10:26:37 +0100 Subject: [PATCH 04/19] add ci config --- .github/workflows/ci-config.yml | 5 +++++ .github/workflows/ci-hpc-config.yml | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 .github/workflows/ci-config.yml create mode 100644 .github/workflows/ci-hpc-config.yml diff --git a/.github/workflows/ci-config.yml b/.github/workflows/ci-config.yml new file mode 100644 index 0000000..25b5810 --- /dev/null +++ b/.github/workflows/ci-config.yml @@ -0,0 +1,5 @@ +dependencies: | + ecmwf/ecflow +dependency_branch: develop +parallelism_factor: 8 +self_build: false # Only for python packages diff --git a/.github/workflows/ci-hpc-config.yml b/.github/workflows/ci-hpc-config.yml new file mode 100644 index 0000000..195b5c3 --- /dev/null +++ b/.github/workflows/ci-hpc-config.yml @@ -0,0 +1,6 @@ +build: + modules: + - ninja + dependencies: + - ecmwf/ecflow@develop + parallel: 64 \ No newline at end of file From 1d0875869dafabe569f979aeb6d522091bc1ad54 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 10:27:10 +0100 Subject: [PATCH 05/19] moving ci configs to the right place --- .github/{workflows => }/ci-config.yml | 0 .github/{workflows => }/ci-hpc-config.yml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows => }/ci-config.yml (100%) rename .github/{workflows => }/ci-hpc-config.yml (100%) diff --git a/.github/workflows/ci-config.yml b/.github/ci-config.yml similarity index 100% rename from .github/workflows/ci-config.yml rename to .github/ci-config.yml diff --git a/.github/workflows/ci-hpc-config.yml b/.github/ci-hpc-config.yml similarity index 100% rename from .github/workflows/ci-hpc-config.yml rename to .github/ci-hpc-config.yml From d5844264bbac2b0d194737c2606293f1cb5eea68 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 11:03:10 +0100 Subject: [PATCH 06/19] adding ecbuild as dependency --- .github/ci-config.yml | 1 + .github/ci-hpc-config.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 25b5810..5bc5ce6 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,4 +1,5 @@ dependencies: | + ecmwf/ecbuild ecmwf/ecflow dependency_branch: develop parallelism_factor: 8 diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 195b5c3..60afbb6 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -2,5 +2,6 @@ build: modules: - ninja dependencies: + - ecmwf/ecbuild@develop - ecmwf/ecflow@develop parallel: 64 \ No newline at end of file From b5a144fbe19eb666720fb93966298806ea919a47 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 11:08:27 +0100 Subject: [PATCH 07/19] add cmake options for ecflow --- .github/ci-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 5bc5ce6..7235689 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,3 +1,4 @@ +cmake_options: -DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF dependencies: | ecmwf/ecbuild ecmwf/ecflow From 0e5f0f8544c0883262ccbf69abb7f8dba615b99e Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 11:20:11 +0100 Subject: [PATCH 08/19] remove cmake options --- .github/ci-config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 7235689..5bc5ce6 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,4 +1,3 @@ -cmake_options: -DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF dependencies: | ecmwf/ecbuild ecmwf/ecflow From 7f76c9c7ec901afe27c34cae5580335ec6d6f486 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 11:31:11 +0100 Subject: [PATCH 09/19] adding back cmake options --- .github/ci-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 5bc5ce6..7235689 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,3 +1,4 @@ +cmake_options: -DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF dependencies: | ecmwf/ecbuild ecmwf/ecflow From 49082446deb32001809016b6400e35c6e274bebd Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 11:34:46 +0100 Subject: [PATCH 10/19] adding dependency modules --- .github/ci-hpc-config.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 60afbb6..3d8e272 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -1,6 +1,9 @@ build: modules: + - boost - ninja + - python3 + - qt dependencies: - ecmwf/ecbuild@develop - ecmwf/ecflow@develop From 2ab77fe731d41629f13144630e36fbe39ba5e71d Mon Sep 17 00:00:00 2001 From: Iain Russell <40060766+iainrussell@users.noreply.github.com> Date: Wed, 8 May 2024 11:56:28 +0100 Subject: [PATCH 11/19] Fix cmake options to ecflow --- .github/ci-config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 7235689..6b8d11d 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,4 +1,4 @@ -cmake_options: -DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF +dependency_cmake_options: ecmwf/ecflow: "-DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF" dependencies: | ecmwf/ecbuild ecmwf/ecflow From c5516d8d5774c2dde386757a0dd59dbb1cc91695 Mon Sep 17 00:00:00 2001 From: Iain Russell <40060766+iainrussell@users.noreply.github.com> Date: Wed, 8 May 2024 11:58:08 +0100 Subject: [PATCH 12/19] fix ecflow cmake flags --- .github/ci-config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/ci-config.yml b/.github/ci-config.yml index 6b8d11d..94011ab 100644 --- a/.github/ci-config.yml +++ b/.github/ci-config.yml @@ -1,4 +1,5 @@ -dependency_cmake_options: ecmwf/ecflow: "-DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF" +dependency_cmake_options: | + ecmwf/ecflow: "-DENABLE_ALL_TESTS=ON -DBOOST_ROOT=${BOOST_ROOT_DIR} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE_DIR} -DBOOST_LIBRARYDIR=${BOOST_LIB_DIR} -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} -DENABLE_STATIC_BOOST_LIBS=OFF" dependencies: | ecmwf/ecbuild ecmwf/ecflow From ea7eeb9891909730d59871e1dae5abe9f5d08732 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 12:02:26 +0100 Subject: [PATCH 13/19] remove python from dependencies --- .github/ci-hpc-config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 3d8e272..45c02af 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -2,7 +2,6 @@ build: modules: - boost - ninja - - python3 - qt dependencies: - ecmwf/ecbuild@develop From 8ebf93a37cef3c9974fcd9ebb7b72b49c441b272 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 12:04:33 +0100 Subject: [PATCH 14/19] add back python3 in hpc dependencies --- .github/ci-hpc-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 45c02af..3d8e272 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -2,6 +2,7 @@ build: modules: - boost - ninja + - python3 - qt dependencies: - ecmwf/ecbuild@develop From 3b7581e87ed69238b612c8d0acd98032d5d5e800 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 12:35:34 +0100 Subject: [PATCH 15/19] trying to use findlibs to find ecflow libraries and python bindings --- environment.yml | 2 ++ pyflow/importer.py | 8 ++++++++ requirements.txt | 1 + 3 files changed, 11 insertions(+) diff --git a/environment.yml b/environment.yml index d4a587c..634d0f0 100644 --- a/environment.yml +++ b/environment.yml @@ -11,6 +11,8 @@ dependencies: - requests - pytest - pygraphviz + - pip: + - findlibs variables: QT_MAC_WANTS_LAYER: 1 diff --git a/pyflow/importer.py b/pyflow/importer.py index 870c7b8..d00dc41 100644 --- a/pyflow/importer.py +++ b/pyflow/importer.py @@ -1,6 +1,14 @@ import os import sys + +try: + import ecmwflibs as findlibs +except ImportError: + import findlibs + +library_path = findlibs.find("eccodes") + try: import ecflow except ImportError: diff --git a/requirements.txt b/requirements.txt index 6e214ff..cae7a23 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ jinja2 requests pytest graphviz +findlibs From f33e47da780312aa8adb18359ab0f8cb296e0a61 Mon Sep 17 00:00:00 2001 From: Corentin Carton de Wiart Date: Wed, 8 May 2024 12:37:49 +0100 Subject: [PATCH 16/19] minor formatting fix --- pyflow/importer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pyflow/importer.py b/pyflow/importer.py index d00dc41..4d7aecf 100644 --- a/pyflow/importer.py +++ b/pyflow/importer.py @@ -1,7 +1,6 @@ import os import sys - try: import ecmwflibs as findlibs except ImportError: From 7b0cec2b94aeda4a212c9591e84281d3c5d88f00 Mon Sep 17 00:00:00 2001 From: Dusan Figala Date: Wed, 19 Feb 2025 12:22:25 +0100 Subject: [PATCH 17/19] Load HPC modules to build ecflow --- .github/ci-hpc-config.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 3d8e272..4b73999 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -1,10 +1,11 @@ build: modules: - - boost + - boost/1.84.0 - ninja - - python3 + - python3/3.11.8-01 - qt + - cmake/new dependencies: - ecmwf/ecbuild@develop - ecmwf/ecflow@develop - parallel: 64 \ No newline at end of file + parallel: 64 From 64c49bca0782f88397e55c3373c966710606103a Mon Sep 17 00:00:00 2001 From: Dusan Figala Date: Wed, 19 Feb 2025 12:53:26 +0100 Subject: [PATCH 18/19] Add some logs to importer --- pyflow/importer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyflow/importer.py b/pyflow/importer.py index 4d7aecf..09620cf 100644 --- a/pyflow/importer.py +++ b/pyflow/importer.py @@ -16,6 +16,7 @@ for env_var in ("ECFLOW_DIR", "ecflow_DIR"): try: lib_dir = os.path.join(os.environ[env_var], "lib") + print("DF: Looking for lib_dir: {}".format(lib_dir)) except KeyError: continue @@ -23,7 +24,9 @@ python_dir = os.path.join( lib_dir, "python3.{}".format(minor_version), "site-packages" ) + print("DF: Looking for python_dir: {}".format(python_dir)) if os.path.exists(python_dir): + print("DF: Found python_dir: {}".format(python_dir)) sys.path.insert(0, python_dir) import ecflow # noqa: F401 From 215aed5617f978a9beb23e5bcf1b5bca11dca04c Mon Sep 17 00:00:00 2001 From: Dusan Figala Date: Wed, 19 Feb 2025 13:02:16 +0100 Subject: [PATCH 19/19] get stdout from pytest --- .github/ci-hpc-config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ci-hpc-config.yml b/.github/ci-hpc-config.yml index 4b73999..5e6a074 100644 --- a/.github/ci-hpc-config.yml +++ b/.github/ci-hpc-config.yml @@ -9,3 +9,4 @@ build: - ecmwf/ecbuild@develop - ecmwf/ecflow@develop parallel: 64 + pytest_cmd: pytest -rx