This is an automated email from the ASF dual-hosted git repository. espino pushed a commit to branch ci-fix in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 26899aaf7f8594f891a84ca39e0e728458979c1b Author: Ed Espino <[email protected]> AuthorDate: Mon Oct 6 08:41:57 2025 -0700 Add artifact reuse feature for faster test iteration Enable reusing build artifacts from previous workflow runs to speed up test iteration by ~50-70 minutes. This is useful for debugging test failures without rebuilding. Changes: - Add 'reuse_artifacts_from_run_id' workflow input parameter - Skip build job when reusing artifacts from specified run - Skip rpm-install-test job when reusing artifacts - Update artifact download steps to support cross-run downloads - Add proper job conditionals to handle skipped build job Usage: Manually trigger workflow and specify a previous run ID in the 'reuse_artifacts_from_run_id' input field. Leave empty to build fresh. This maintains backward compatibility - default behavior unchanged. --- .github/workflows/build-cloudberry.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/build-cloudberry.yml b/.github/workflows/build-cloudberry.yml index c1d900d9715..cecd61f16c2 100644 --- a/.github/workflows/build-cloudberry.yml +++ b/.github/workflows/build-cloudberry.yml @@ -113,6 +113,11 @@ on: required: false default: 'all' type: string + reuse_artifacts_from_run_id: + description: 'Reuse build artifacts from a previous run ID (leave empty to build fresh)' + required: false + default: '' + type: string concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -412,6 +417,7 @@ jobs: needs: [check-skip] runs-on: ubuntu-22.04 timeout-minutes: 120 + if: github.event.inputs.reuse_artifacts_from_run_id == '' outputs: build_timestamp: ${{ steps.set_timestamp.outputs.timestamp }} @@ -687,6 +693,10 @@ jobs: rpm-install-test: name: RPM Install Test Apache Cloudberry needs: [check-skip, build] + if: | + !cancelled() && + (needs.build.result == 'success' || needs.build.result == 'skipped') && + github.event.inputs.reuse_artifacts_from_run_id == '' runs-on: ubuntu-22.04 timeout-minutes: 120 @@ -710,6 +720,8 @@ jobs: name: apache-cloudberry-db-incubating-rpm-build-artifacts path: ${{ github.workspace }}/rpm_build_artifacts merge-multiple: false + run-id: ${{ github.event.inputs.reuse_artifacts_from_run_id || github.run_id }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: Cloudberry Environment Initialization if: needs.check-skip.outputs.should_skip != 'true' @@ -863,6 +875,9 @@ jobs: test: name: ${{ matrix.test }} needs: [check-skip, build, prepare-test-matrix] + if: | + !cancelled() && + (needs.build.result == 'success' || needs.build.result == 'skipped') runs-on: ubuntu-22.04 timeout-minutes: 120 # actionlint-allow matrix[*].pg_settings @@ -1092,6 +1107,8 @@ jobs: name: apache-cloudberry-db-incubating-rpm-build-artifacts path: ${{ github.workspace }}/rpm_build_artifacts merge-multiple: false + run-id: ${{ github.event.inputs.reuse_artifacts_from_run_id || github.run_id }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: Download Cloudberry Source build artifacts if: needs.check-skip.outputs.should_skip != 'true' @@ -1100,6 +1117,8 @@ jobs: name: apache-cloudberry-db-incubating-source-build-artifacts path: ${{ github.workspace }}/source_build_artifacts merge-multiple: false + run-id: ${{ github.event.inputs.reuse_artifacts_from_run_id || github.run_id }} + github-token: ${{ secrets.GITHUB_TOKEN }} - name: Verify downloaded artifacts if: needs.check-skip.outputs.should_skip != 'true' --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
