From fa4c4a91de990aacc22b81556fa9efacbd1dc697 Mon Sep 17 00:00:00 2001 From: Dianjin Wang Date: Mon, 9 Nov 2026 14:55:08 +0800 Subject: [PATCH] CI: move GitHub Actions off Node.js 20 GitHub deprecated the Node.js 20 runtime for actions. Each workflow run now ends with this warning: Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-go@v5. Update all workflows to the first major versions that run on Node.js 24 by default: actions/checkout v4 -> v7 actions/setup-go v5 -> v7 actions/setup-java v3 -> v6 actions/upload-artifact v4 -> v7 actions/download-artifact v4 -> v8 golangci/golangci-lint-action@v9 already runs on Node.js 24, so it does not change. No workflow input changes are necessary: - All artifacts are uploaded and downloaded by name, so the path change for downloads by ID (download-artifact v5) does not apply. No upload uses "archive: false", so the direct-upload changes in upload-artifact v7 and download-artifact v8 do not apply. - No workflow uses pull_request_target or workflow_run, so the new fork checkout block in checkout v7 does not apply. No step uses the git credentials that checkout keeps after the clone. - The container jobs (Rocky 8/9/10, Ubuntu 22.04/24.04) already run these actions on Node.js 24 because of the forced upgrade, so the runtime is already known to work there. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE --- .github/workflows/apache-rat-audit.yml | 6 +++--- .github/workflows/build_and_unit_test.yml | 4 ++-- .github/workflows/cloudberry-backup-ci.yml | 14 +++++++------- .github/workflows/package-convenience-binaries.yml | 12 ++++++------ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/apache-rat-audit.yml b/.github/workflows/apache-rat-audit.yml index 2c45eb13..f7cf8257 100644 --- a/.github/workflows/apache-rat-audit.yml +++ b/.github/workflows/apache-rat-audit.yml @@ -52,12 +52,12 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 1 - name: Set up Java and Maven - uses: actions/setup-java@v3 + uses: actions/setup-java@v6 with: distribution: 'temurin' java-version: '11' @@ -204,7 +204,7 @@ jobs: - name: Upload Rat check results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: rat-check-results path: rat-output.log diff --git a/.github/workflows/build_and_unit_test.yml b/.github/workflows/build_and_unit_test.yml index cf03988e..ea3fd8dd 100644 --- a/.github/workflows/build_and_unit_test.yml +++ b/.github/workflows/build_and_unit_test.yml @@ -13,13 +13,13 @@ jobs: build_and_unit_test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 path: go/src/github.com/apache/cloudberry-backup - name: Set up Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v7 with: go-version: "1.25" diff --git a/.github/workflows/cloudberry-backup-ci.yml b/.github/workflows/cloudberry-backup-ci.yml index cd49096e..1795dd53 100644 --- a/.github/workflows/cloudberry-backup-ci.yml +++ b/.github/workflows/cloudberry-backup-ci.yml @@ -105,7 +105,7 @@ jobs: df -h / - name: Checkout Cloudberry Source - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: repository: ${{ env.CLOUDBERRY_REPO }} ref: ${{ matrix.cloudberry_ref }} @@ -166,7 +166,7 @@ jobs: tar -C /usr/local -czf cloudberry-db.tgz cloudberry-db - name: Upload Cloudberry Installation - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cloudberry-db-install-${{ matrix.cloudberry_ref }} path: cloudberry-db.tgz @@ -174,7 +174,7 @@ jobs: retention-days: 7 - name: Upload Cloudberry Source - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cloudberry-source-${{ matrix.cloudberry_ref }} path: cloudberry-src.tgz @@ -229,18 +229,18 @@ jobs: df -h / - name: Checkout Cloudberry-backup - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 path: ${{ env.CLOUDBERRY_BACKUP_DIR }} - name: Download Cloudberry Installation - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: cloudberry-db-install-${{ matrix.cloudberry_ref }} - name: Download Cloudberry Source - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: cloudberry-source-${{ matrix.cloudberry_ref }} @@ -609,7 +609,7 @@ jobs: - name: Upload Test Logs (On Failure) if: failure() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cloudberry-backup-logs-${{ matrix.cloudberry_ref }}-${{ matrix.test_target }} path: test-logs/${{ matrix.test_target }} diff --git a/.github/workflows/package-convenience-binaries.yml b/.github/workflows/package-convenience-binaries.yml index 40c50ef4..939ba1eb 100644 --- a/.github/workflows/package-convenience-binaries.yml +++ b/.github/workflows/package-convenience-binaries.yml @@ -272,7 +272,7 @@ jobs: } >> "${GITHUB_STEP_SUMMARY}" - name: Upload verified source release - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ steps.validate.outputs.artifact_name }} retention-days: ${{ env.LOG_RETENTION_DAYS }} @@ -424,7 +424,7 @@ jobs: } >> "${GITHUB_STEP_SUMMARY}" - name: Upload verified source release - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ steps.validate.outputs.artifact_name }} retention-days: ${{ env.LOG_RETENTION_DAYS }} @@ -481,7 +481,7 @@ jobs: " - name: Download verified cloudberry-backup source - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: ${{ needs.verify-cloudberry-backup-source.outputs.artifact_name }} path: ${{ github.workspace }}/verified-source @@ -579,7 +579,7 @@ jobs: } >> "${GITHUB_STEP_SUMMARY}" - name: Upload package artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: packages-${{ matrix.arch }} retention-days: ${{ env.LOG_RETENTION_DAYS }} @@ -660,7 +660,7 @@ jobs: su - gpadmin -c "/tmp/init_system.sh" - name: Download verified Cloudberry source - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: ${{ needs.verify-cloudberry-source.outputs.artifact_name }} path: ${{ github.workspace }}/verified-source @@ -739,7 +739,7 @@ jobs: # ---------------------------------------------------------------- - name: Download backup package - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: packages-${{ matrix.backup_arch }} path: ${{ github.workspace }}/package-artifacts