From c7d1c11fb576b9b7868e0e50b3d767052756df0f Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:07:25 -0400 Subject: [PATCH 1/6] Limit OS matrix to Linux and add Earthdata connectivity tests in CI --- .github/workflows/ApplicationTesting.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index 9191a150..6226e2a0 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] + os: [ 'ubuntu-latest' ] #, 'macos-latest', 'windows-latest' ] steps: - name: โฌ Checkout repository @@ -41,7 +41,18 @@ jobs: run: | echo "$NETRC" >> ~/.netrc - - name: ๐Ÿงช Run Tests + - name: Test Earthdata connectivity + if: runner.os == 'Linux' run: | - python -m unittest Tests.test_filing - python -m unittest Tests.test_sample_data + getent ahosts urs.earthdata.nasa.gov + curl --fail --silent --show-error --connect-timeout 15 -4 \ + -o /dev/null -w 'IPv4 HTTP status: %{http_code}\n' \ + https://urs.earthdata.nasa.gov/ + curl --fail --silent --show-error --connect-timeout 15 -6 \ + -o /dev/null -w 'IPv6 HTTP status: %{http_code}\n' \ + https://urs.earthdata.nasa.gov/ || true + +# - name: ๐Ÿงช Run Tests +# run: | +# python -m unittest Tests.test_filing +# python -m unittest Tests.test_sample_data From 17d239ccbd0fa671cb8757567c72fdebe6c84ffb Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:11:35 -0400 Subject: [PATCH 2/6] Disable IPv6 for Earthdata access in CI workflows on Linux --- .github/workflows/ApplicationTesting.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index 6226e2a0..4e26bef7 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -38,8 +38,15 @@ jobs: - name: ๐Ÿ”‘ Get GMAO MERRA2 Credentials env: NETRC: ${{ secrets.NETRC }} + run: | + printf '%s\n' "$NETRC" > "$HOME/.netrc" + chmod 600 "$HOME/.netrc" + + - name: Disable IPv6 for Earthdata access + if: runner.os == 'Linux' run: | - echo "$NETRC" >> ~/.netrc + sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 + sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 - name: Test Earthdata connectivity if: runner.os == 'Linux' From 88e648a4f5c611f9c92e3b2a6059bc3cfd1418b0 Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:12:27 -0400 Subject: [PATCH 3/6] Fix indentation in ApplicationTesting workflow for MERRA-2 credential setup --- .github/workflows/ApplicationTesting.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index 4e26bef7..70f82ac0 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -38,9 +38,9 @@ jobs: - name: ๐Ÿ”‘ Get GMAO MERRA2 Credentials env: NETRC: ${{ secrets.NETRC }} - run: | - printf '%s\n' "$NETRC" > "$HOME/.netrc" - chmod 600 "$HOME/.netrc" + run: | + printf '%s\n' "$NETRC" > "$HOME/.netrc" + chmod 600 "$HOME/.netrc" - name: Disable IPv6 for Earthdata access if: runner.os == 'Linux' From d22a4bb9a5e837fd80c9415d2d890398fa232b85 Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:22:00 -0400 Subject: [PATCH 4/6] Restore OS matrix in ApplicationTesting workflow and enable tests --- .github/workflows/ApplicationTesting.yml | 27 ++++++------------------ 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index 70f82ac0..af9d88ad 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -18,13 +18,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ 'ubuntu-latest' ] #, 'macos-latest', 'windows-latest' ] + os: [ 'ubuntu-latest' , 'macos-latest', 'windows-latest' ] steps: - name: โฌ Checkout repository uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.branch }} - name: ๐Ÿ”ง Setup Environment uses: ./.github/actions/SetupEnvironment @@ -33,33 +31,22 @@ jobs: env: CDSAPIRC: ${{ secrets.ECMWF_ADS_CREDENTIALS }} run: | - echo "$CDSAPIRC" >> ~/.ecmwf_ads_credentials.json + echo "$CDSAPIRC" > ~/.ecmwf_ads_credentials.json - name: ๐Ÿ”‘ Get GMAO MERRA2 Credentials env: NETRC: ${{ secrets.NETRC }} run: | - printf '%s\n' "$NETRC" > "$HOME/.netrc" + echo "$NETRC" > ~/.netrc chmod 600 "$HOME/.netrc" - - name: Disable IPv6 for Earthdata access + - name: Disable IPv6 for EarthData access on Linux if: runner.os == 'Linux' run: | sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 - - name: Test Earthdata connectivity - if: runner.os == 'Linux' + - name: ๐Ÿงช Run Tests run: | - getent ahosts urs.earthdata.nasa.gov - curl --fail --silent --show-error --connect-timeout 15 -4 \ - -o /dev/null -w 'IPv4 HTTP status: %{http_code}\n' \ - https://urs.earthdata.nasa.gov/ - curl --fail --silent --show-error --connect-timeout 15 -6 \ - -o /dev/null -w 'IPv6 HTTP status: %{http_code}\n' \ - https://urs.earthdata.nasa.gov/ || true - -# - name: ๐Ÿงช Run Tests -# run: | -# python -m unittest Tests.test_filing -# python -m unittest Tests.test_sample_data + python -m unittest Tests.test_filing + python -m unittest Tests.test_sample_data From 8e117b6a374872c6f6e3d0c7f10fc4c1f7c5e294 Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:35:05 -0400 Subject: [PATCH 5/6] Update GitHub Actions to use latest versions of actions --- .github/actions/SetupEnvironment/action.yml | 2 +- .github/workflows/ApplicationTesting.yml | 2 +- .github/workflows/Build.yml | 7 +++---- .github/workflows/Pipeline.yml | 2 +- .github/workflows/Release.yml | 4 ++-- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/actions/SetupEnvironment/action.yml b/.github/actions/SetupEnvironment/action.yml index ce37f616..3760305a 100644 --- a/.github/actions/SetupEnvironment/action.yml +++ b/.github/actions/SetupEnvironment/action.yml @@ -14,7 +14,7 @@ runs: activate-environment: hypercp - name: ๐Ÿ”‚ Cache Environment - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ${{ env.CONDA }}/envs key: diff --git a/.github/workflows/ApplicationTesting.yml b/.github/workflows/ApplicationTesting.yml index af9d88ad..30e72b77 100644 --- a/.github/workflows/ApplicationTesting.yml +++ b/.github/workflows/ApplicationTesting.yml @@ -22,7 +22,7 @@ jobs: steps: - name: โฌ Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: ๐Ÿ”ง Setup Environment uses: ./.github/actions/SetupEnvironment diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml index 02efd566..820ad9cd 100644 --- a/.github/workflows/Build.yml +++ b/.github/workflows/Build.yml @@ -25,9 +25,7 @@ jobs: steps: - name: โฌ Checkout repository - uses: actions/checkout@v4 - with: - ref: ${{ github.event.inputs.branch }} + uses: actions/checkout@v7 - name: ๐Ÿ”ง Setup Environment uses: ./.github/actions/SetupEnvironment @@ -46,9 +44,10 @@ jobs: filename: '${{ env.BUNDLE_NAME }}.zip' - name: โซ๏ธ Upload Bundle - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ env.BUNDLE_NAME }} path: Bundled/dist/${{ env.BUNDLE_NAME }}.zip compression-level: 0 + if-no-files-found: error # Double zip as need zip for release page (ideally want to prevent unzip from download artifact) diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml index bb7db0cc..c5baeec0 100644 --- a/.github/workflows/Pipeline.yml +++ b/.github/workflows/Pipeline.yml @@ -30,7 +30,7 @@ jobs: steps: - name: Delete Artifact if: startsWith(github.ref, 'refs/heads/master') || startsWith(github.ref, 'refs/tags') - uses: geekyeggo/delete-artifact@v4 + uses: geekyeggo/delete-artifact@v6 with: name: ${{ needs.Build.outputs.files }} token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index eefe756b..f389bb1e 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -18,7 +18,7 @@ jobs: steps: - name: Download All Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: merge-multiple: True @@ -40,7 +40,7 @@ jobs: echo "EOF" >> $GITHUB_OUTPUT - name: Create Release Page - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: files: ${{ steps.get_variables.outputs.artifacts }} body: | From d309f487b8cc56e1fe43b35145f99a848697896d Mon Sep 17 00:00:00 2001 From: Nils Date: Tue, 6 Oct 2026 17:42:14 -0400 Subject: [PATCH 6/6] Update SetupEnvironment workflow to use setup-miniconda v4 --- .github/actions/SetupEnvironment/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/SetupEnvironment/action.yml b/.github/actions/SetupEnvironment/action.yml index 3760305a..5b4258a2 100644 --- a/.github/actions/SetupEnvironment/action.yml +++ b/.github/actions/SetupEnvironment/action.yml @@ -6,7 +6,7 @@ runs: steps: - name: ๐Ÿ Setup Mambaforge - uses: conda-incubator/setup-miniconda@v3 + uses: conda-incubator/setup-miniconda@v4 with: miniforge-version: latest # miniforge-variant: Mambaforge