From f3ec06cdc853d677b7a5e329b800a8be19e3e28a Mon Sep 17 00:00:00 2001 From: Simon Smart Date: Fri, 21 Nov 2025 17:45:32 +0000 Subject: [PATCH 1/3] Add metkit build and test for CI demo --- .github/workflows/build_and_test.yaml | 100 ++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 .github/workflows/build_and_test.yaml diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml new file mode 100644 index 00000000..30a42cea --- /dev/null +++ b/.github/workflows/build_and_test.yaml @@ -0,0 +1,100 @@ +name: Build and Test Metkit + +on: + pull_request: + workflow_dispatch: + push: + branches: + - "master" + - "develop" + tags-ignore: + - "**" + +jobs: + build: + strategy: + matrix: + runner: + - [self-hosted, platform-builder-debian-11] + - [self-hosted, platform-builder-ubuntu-22.04] + - [self-hosted, platform-builder-rocky-8.6] + - [self-hosted, platform-builder-fedora-37] + runs-on: ${{ matrix.runner }} + steps: + - name: Get ecbuild + uses: actions/checkout@v5 + with: + repository: ecmwf/ecbuild + ref: develop + path: ecbuild + - name: Get cxx-dependencies + uses: actions/checkout@v5 + with: + repository: ecmwf/cxx-dependencies + ref: master + path: cxx-dependencies-src + token: ${{ secrets.GH_REPO_READ_TOKEN }} + submodules: recursive + - name: Install dependencies + run: | + mkdir cxx-dependencies-build + BUILD_PATH=cxx-dependencies-build INSTALL_PREFIX=dependencies cxx-dependencies-src/build.sh + - name: Get eccodes + uses: actions/checkout@v5 + with: + repository: ecmwf/eccodes + ref: develop + path: eccodes-src + - name: Install eccodes + run: | + mkdir eccodes-build + cmake \ + -B eccodes-build \ + -S eccodes-src \ + -DCMAKE_INSTALL_PREFIX=dependencies \ + -DCMAKE_PREFIX_PATH=dependencies \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_MEMFS=ON \ + -DENABLE_AEC=ON + cmake --build eccodes-build -j -t install + - name: Get eckit + uses: actions/checkout@v5 + with: + repository: ecmwf/eckit + ref: develop + path: eckit-src + - name: Install eckit + run: | + mkdir eckit-build + cmake \ + -B eckit-build \ + -S eckit-src \ + -DCMAKE_INSTALL_PREFIX=dependencies \ + -DCMAKE_PREFIX_PATH=dependencies \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo + cmake --build eckit-build -j -t install + - name: Get metkit + uses: actions/checkout@v5 + with: + path: metkit-src + - name: Build metkit + run: | + export PATH=$(pwd)/dependencies/bin:$PATH + mkdir metkit-build + cmake \ + -B metkit-build \ + -S metkit-src \ + -DCMAKE_INSTALL_PREFIX=dependencies \ + -DCMAKE_PREFIX_PATH=dependencies \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_TOOLS=ON \ + cmake --build metkit-build -j -t install + cd metkit-build + ctest -j $(nproc) --output-on-failure + build-mars-client-bundle: + uses: ozaq/test-bundle/.github/workflows/build.yml@demo/ci + secrets: + GH_REPO_READ_TOKEN: ${{ secrets.GH_REPO_READ_TOKEN }} + with: + ref: ${{ github.ref }} + From bb8eaf17d04f0e46002e162c04537137a8879cc1 Mon Sep 17 00:00:00 2001 From: Simon Smart Date: Wed, 26 Nov 2025 18:27:12 +0000 Subject: [PATCH 2/3] Use a custom cmake for build action --- .github/workflows/build_and_test.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml index 30a42cea..7ca55bc6 100644 --- a/.github/workflows/build_and_test.yaml +++ b/.github/workflows/build_and_test.yaml @@ -21,6 +21,14 @@ jobs: - [self-hosted, platform-builder-fedora-37] runs-on: ${{ matrix.runner }} steps: + - name: Get specified recent CMake + run: | + CMAKE_VERSION=4.2.0 + CMAKE_ROOT="cmake-${CMAKE_VERSION}" + mkdir -p "${CMAKE_ROOT}" + curl -L "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz" -o cmake.tar.gz + tar -xzf cmake.tar.gz --strip-components=1 -C "${CMAKE_ROOT}" + echo "${CMAKE_ROOT}/bin" >> "$GITHUB_PATH" - name: Get ecbuild uses: actions/checkout@v5 with: From ffae096df54fd9f42901aacf1800e0efe8d88163 Mon Sep 17 00:00:00 2001 From: Simon Smart Date: Wed, 26 Nov 2025 18:55:30 +0000 Subject: [PATCH 3/3] Fix typo in build script --- .github/workflows/build_and_test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yaml b/.github/workflows/build_and_test.yaml index 7ca55bc6..47b7fbb7 100644 --- a/.github/workflows/build_and_test.yaml +++ b/.github/workflows/build_and_test.yaml @@ -95,7 +95,7 @@ jobs: -DCMAKE_INSTALL_PREFIX=dependencies \ -DCMAKE_PREFIX_PATH=dependencies \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DENABLE_TOOLS=ON \ + -DENABLE_TOOLS=ON cmake --build metkit-build -j -t install cd metkit-build ctest -j $(nproc) --output-on-failure