From aaf22dec897850621d7d3bc1239bcb02dcacf017 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 11 Aug 2026 13:29:22 +0200 Subject: [PATCH 1/6] ci: Bump stackabletech/actions to v0.17.1 --- .github/workflows/pr_prek.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_prek.yml b/.github/workflows/pr_prek.yml index 366ae229..ea0b071a 100644 --- a/.github/workflows/pr_prek.yml +++ b/.github/workflows/pr_prek.yml @@ -19,6 +19,6 @@ jobs: with: persist-credentials: false fetch-depth: 0 - - uses: stackabletech/actions/run-prek@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + - uses: stackabletech/actions/run-prek@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: hadolint: ${{ env.HADOLINT_VERSION }} From 1d26b0be6dc54e396bfefbf671a089da2bb2f9a6 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 11 Aug 2026 13:32:24 +0200 Subject: [PATCH 2/6] ci(template): Bump stackabletech/actions to v0.17.1 --- template/.github/workflows/build.yaml.j2 | 22 +++++++++---------- .../.github/workflows/integration-test.yml | 4 ++-- template/.github/workflows/pr_prek.yaml.j2 | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/template/.github/workflows/build.yaml.j2 b/template/.github/workflows/build.yaml.j2 index 36866cec..34c72f40 100644 --- a/template/.github/workflows/build.yaml.j2 +++ b/template/.github/workflows/build.yaml.j2 @@ -50,7 +50,7 @@ jobs: - name: Check for changed files id: check - uses: stackabletech/actions/detect-changes@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/detect-changes@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: patterns: | - '.github/workflows/build.yaml' @@ -173,7 +173,7 @@ jobs: - name: Build Container Image id: build - uses: stackabletech/actions/build-container-image@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/build-container-image@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-name: ${{ env.OPERATOR_NAME }} image-index-manifest-tag: ${{ steps.version.outputs.OPERATOR_VERSION }} @@ -182,7 +182,7 @@ jobs: - name: Publish Container Image to oci.stackable.tech if: ${{ !github.event.pull_request.head.repo.fork }} - uses: stackabletech/actions/publish-image@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-image@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-registry-uri: oci.stackable.tech image-registry-username: robot$sdp+github-action-build @@ -193,7 +193,7 @@ jobs: - name: Publish Container Image to quay.io if: ${{ !github.event.pull_request.head.repo.fork }} - uses: stackabletech/actions/publish-image@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-image@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-registry-uri: quay.io image-registry-username: stackable+robot_sdp_github_action_build @@ -223,7 +223,7 @@ jobs: persist-credentials: false - name: Publish and Sign Image Index to oci.stackable.tech - uses: stackabletech/actions/publish-image-index-manifest@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-image-index-manifest@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-registry-uri: oci.stackable.tech image-registry-username: robot$sdp+github-action-build @@ -232,7 +232,7 @@ jobs: image-index-manifest-tag: ${{ needs.build-container-image.outputs.operator-version }} - name: Publish and Sign Image Index to quay.io - uses: stackabletech/actions/publish-image-index-manifest@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-image-index-manifest@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-registry-uri: quay.io image-registry-username: stackable+robot_sdp_github_action_build @@ -262,7 +262,7 @@ jobs: submodules: recursive - name: Package, Publish, and Sign Helm Chart to oci.stackable.tech - uses: stackabletech/actions/publish-helm-chart@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-helm-chart@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: chart-registry-uri: oci.stackable.tech chart-registry-username: robot$sdp-charts+github-action-build @@ -274,7 +274,7 @@ jobs: publish-and-sign: ${{ !github.event.pull_request.head.repo.fork }} - name: Package, Publish, and Sign Helm Chart to quay.io - uses: stackabletech/actions/publish-helm-chart@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/publish-helm-chart@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: chart-registry-uri: quay.io chart-registry-username: stackable+robot_sdp_charts_github_action_build @@ -306,13 +306,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Run OpenShift Preflight Check for oci.stackable.tech - uses: stackabletech/actions/run-openshift-preflight@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/run-openshift-preflight@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-index-uri: oci.stackable.tech/sdp/${{ env.OPERATOR_NAME }}:${{ needs.build-container-image.outputs.operator-version }} image-architecture: ${{ matrix.arch }} - name: Run OpenShift Preflight Check for quay.io - uses: stackabletech/actions/run-openshift-preflight@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/run-openshift-preflight@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: image-index-uri: quay.io/stackable/sdp/${{ env.OPERATOR_NAME }}:${{ needs.build-container-image.outputs.operator-version }} image-architecture: ${{ matrix.arch }} @@ -378,7 +378,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Send Notification - uses: stackabletech/actions/send-slack-notification@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/send-slack-notification@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: publish-helm-chart-result: ${{ needs.publish-helm-chart.result }} publish-manifests-result: ${{ needs.publish-index-manifest.result }} diff --git a/template/.github/workflows/integration-test.yml b/template/.github/workflows/integration-test.yml index 3a1582b1..09a75fb0 100644 --- a/template/.github/workflows/integration-test.yml +++ b/template/.github/workflows/integration-test.yml @@ -45,7 +45,7 @@ jobs: # TODO: Enable the scheduled runs which hard-code what profile to use - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/run-integration-test@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} test-mode-input: ${{ inputs.test-mode-input }} @@ -55,7 +55,7 @@ jobs: - name: Send Notification if: ${{ failure() || github.run_attempt > 1 }} - uses: stackabletech/actions/send-slack-notification@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + uses: stackabletech/actions/send-slack-notification@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} failed-tests: ${{ steps.test.outputs.failed-tests }} diff --git a/template/.github/workflows/pr_prek.yaml.j2 b/template/.github/workflows/pr_prek.yaml.j2 index 9888e046..c461042d 100644 --- a/template/.github/workflows/pr_prek.yaml.j2 +++ b/template/.github/workflows/pr_prek.yaml.j2 @@ -30,7 +30,7 @@ jobs: persist-credentials: false submodules: recursive fetch-depth: 0 - - uses: stackabletech/actions/run-prek@dc83bb926cc464f0f32454e934777116bd1c7768 # v0.16.3 + - uses: stackabletech/actions/run-prek@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: rust: ${{ env.RUST_TOOLCHAIN_VERSION }} hadolint: ${{ env.HADOLINT_VERSION }} From bce1411edeb985da5c1f27909f05dd3b64e9b102 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 11 Aug 2026 13:38:34 +0200 Subject: [PATCH 3/6] ci(template): Split integration test workflow One workflow will handle the scheduled runs, the second one will handle manually dispatched ones. --- config/retired_files.yaml | 2 + ...test.yml => integration-test-dispatch.yml} | 12 +----- .../workflows/integration-test-schedule.yml | 42 +++++++++++++++++++ 3 files changed, 46 insertions(+), 10 deletions(-) rename template/.github/workflows/{integration-test.yml => integration-test-dispatch.yml} (82%) create mode 100644 template/.github/workflows/integration-test-schedule.yml diff --git a/config/retired_files.yaml b/config/retired_files.yaml index 7ba4bc20..acecc221 100644 --- a/config/retired_files.yaml +++ b/config/retired_files.yaml @@ -2,8 +2,10 @@ # Anything specified in the retired_files variable will be deleted. # This is uncommented as I had issues with everything being deleted when this was just present as an empty key. # May be something to investigate. +# TODO (@Techassi): Clean those up retired_files: - .readme/static/borrowed/sdp_overview.png + - .github/workflows/integration-test.yaml - .github/workflows/pr_pre-commit.yaml - .github/workflows/build.yml - .github/ISSUE_TEMPLATE/normal-issue.md diff --git a/template/.github/workflows/integration-test.yml b/template/.github/workflows/integration-test-dispatch.yml similarity index 82% rename from template/.github/workflows/integration-test.yml rename to template/.github/workflows/integration-test-dispatch.yml index 09a75fb0..0b0fe815 100644 --- a/template/.github/workflows/integration-test.yml +++ b/template/.github/workflows/integration-test-dispatch.yml @@ -1,10 +1,7 @@ --- -name: Integration Test +name: Integration Test (Dispatch) on: - # schedule: - # # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 - # - cron: "0 0 * * 0" workflow_dispatch: inputs: test-mode: @@ -31,23 +28,18 @@ jobs: runs-on: ubuntu-latest permissions: contents: read - # services: - # otel-collector: - # image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.131.1 - # volumes: - # - .:/mnt steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false submodules: recursive - # TODO: Enable the scheduled runs which hard-code what profile to use - name: Run Integration Test id: test uses: stackabletech/actions/run-integration-test@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} + otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }} test-mode-input: ${{ inputs.test-mode-input }} test-suite: ${{ inputs.test-suite }} test-mode: ${{ inputs.test-mode }} diff --git a/template/.github/workflows/integration-test-schedule.yml b/template/.github/workflows/integration-test-schedule.yml new file mode 100644 index 00000000..0735ca8e --- /dev/null +++ b/template/.github/workflows/integration-test-schedule.yml @@ -0,0 +1,42 @@ +--- +name: Integration Test (Schedule) + +on: + schedule: + # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 + - cron: "0 0 * * 0" + +permissions: {} + +jobs: + test: + name: Run Integration Test + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 + with: + persist-credentials: false + submodules: recursive + + - name: Run Integration Test + id: test + if: github.event_name == 'schedule' + uses: stackabletech/actions/run-integration-test@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 + with: + replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} + otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }} + test-mode-input: schedule + test-mode: profile + + - name: Send Notification + if: ${{ failure() || github.run_attempt > 1 }} + uses: stackabletech/actions/send-slack-notification@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 + with: + slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} + failed-tests: ${{ steps.test.outputs.failed-tests }} + test-health: ${{ steps.test.outputs.health }} + test-result: ${{ steps.test.conclusion }} + channel-id: C07UYJYSMSN # notifications-integration-tests + type: integration-test From 0040114d326ddf4a6d048979931c8403b6708873 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 12 Aug 2026 12:33:09 +0200 Subject: [PATCH 4/6] ci(template): Rework integration test workflows --- ...hedule.yml => integration-test-custom.yml} | 21 ++++++---- ...patch.yml => integration-test-profile.yml} | 40 ++++++++++--------- 2 files changed, 35 insertions(+), 26 deletions(-) rename template/.github/workflows/{integration-test-schedule.yml => integration-test-custom.yml} (70%) rename template/.github/workflows/{integration-test-dispatch.yml => integration-test-profile.yml} (61%) diff --git a/template/.github/workflows/integration-test-schedule.yml b/template/.github/workflows/integration-test-custom.yml similarity index 70% rename from template/.github/workflows/integration-test-schedule.yml rename to template/.github/workflows/integration-test-custom.yml index 0735ca8e..4683e387 100644 --- a/template/.github/workflows/integration-test-schedule.yml +++ b/template/.github/workflows/integration-test-custom.yml @@ -1,10 +1,16 @@ --- -name: Integration Test (Schedule) +name: Integration Test (Custom) on: - schedule: - # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 - - cron: "0 0 * * 0" + workflow_dispatch: + inputs: + test-runner: + description: Name of the test runner, eg. `amd64` (see test/interu.yaml) + required: true + test-suite: + description: Name of the test-suite, eg. `openshift` + test: + description: Name of the test, eg. `smoke` permissions: {} @@ -22,13 +28,14 @@ jobs: - name: Run Integration Test id: test - if: github.event_name == 'schedule' uses: stackabletech/actions/run-integration-test@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }} - test-mode-input: schedule - test-mode: profile + test-mode-input: ${{ inputs.test-runner }} + test-suite: ${{ inputs.test-suite }} + test-mode: custom + test: ${{ inputs.test }} - name: Send Notification if: ${{ failure() || github.run_attempt > 1 }} diff --git a/template/.github/workflows/integration-test-dispatch.yml b/template/.github/workflows/integration-test-profile.yml similarity index 61% rename from template/.github/workflows/integration-test-dispatch.yml rename to template/.github/workflows/integration-test-profile.yml index 0b0fe815..0835b0a2 100644 --- a/template/.github/workflows/integration-test-dispatch.yml +++ b/template/.github/workflows/integration-test-profile.yml @@ -1,24 +1,15 @@ --- -name: Integration Test (Dispatch) +name: Integration Test (Profile + Schedule) on: + schedule: + # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 + - cron: "0 4 * * 0" workflow_dispatch: inputs: - test-mode: - description: Test mode + test-profile: + description: Name of the test runner, eg. `smoke-latest` or `schedule` (see test/interu.yaml) required: true - type: choice - options: - - profile - - custom - test-mode-input: - description: | - The profile or the runner used. Eg: `smoke-latest` or `amd64` (see tests/interu.yaml) - required: true - test-suite: - description: Name of the test-suite. Only used if test-mode is `custom` - test: - description: Name of the test. Only used of test-mode is `custom` permissions: {} @@ -34,16 +25,27 @@ jobs: persist-credentials: false submodules: recursive + - name: Determine Profile + id: profile + env: + GITHUB_EVENT_NAME: ${{ github.event_name }} + PROFILE_INPUT: ${{ inputs.test-profile }} + shell: bash + run: | + if [ "$EVENT_NAME" = "schedule" ]; then + echo "PROFILE=schedule" | tee -a "$GITHUB_OUTPUT" + else + echo "PROFILE=${PROFILE_INPUT}" | tee -a "$GITHUB_OUTPUT" + fi + - name: Run Integration Test id: test uses: stackabletech/actions/run-integration-test@b5cc0acc5287f6184551b77f3ae4a5c3e41678c4 # v0.17.3 with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} otlp-bearer-token: ${{ secrets.OTLP_BEARER_TOKEN }} - test-mode-input: ${{ inputs.test-mode-input }} - test-suite: ${{ inputs.test-suite }} - test-mode: ${{ inputs.test-mode }} - test: ${{ inputs.test }} + test-mode-input: ${{ steps.profile.outputs.PROFILE }} + test-mode: profile - name: Send Notification if: ${{ failure() || github.run_attempt > 1 }} From 7052aa2c13840fc790fff964d67fe80bba86c323 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 12 Aug 2026 12:55:23 +0200 Subject: [PATCH 5/6] ci(template): Update schedule comment --- template/.github/workflows/integration-test-profile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/.github/workflows/integration-test-profile.yml b/template/.github/workflows/integration-test-profile.yml index 0835b0a2..8d5acd6f 100644 --- a/template/.github/workflows/integration-test-profile.yml +++ b/template/.github/workflows/integration-test-profile.yml @@ -3,7 +3,7 @@ name: Integration Test (Profile + Schedule) on: schedule: - # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 + # At 04:00 on Sunday. See: https://crontab.guru/#0_4_*_*_0 - cron: "0 4 * * 0" workflow_dispatch: inputs: From d64fe1d1da66b4294d8c1c662bc7a1c48f2e3376 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 12 Aug 2026 13:00:14 +0200 Subject: [PATCH 6/6] chore(template): Use better file extension --- .../{integration-test-custom.yml => integration-test-custom.yaml} | 0 ...integration-test-profile.yml => integration-test-profile.yaml} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename template/.github/workflows/{integration-test-custom.yml => integration-test-custom.yaml} (100%) rename template/.github/workflows/{integration-test-profile.yml => integration-test-profile.yaml} (100%) diff --git a/template/.github/workflows/integration-test-custom.yml b/template/.github/workflows/integration-test-custom.yaml similarity index 100% rename from template/.github/workflows/integration-test-custom.yml rename to template/.github/workflows/integration-test-custom.yaml diff --git a/template/.github/workflows/integration-test-profile.yml b/template/.github/workflows/integration-test-profile.yaml similarity index 100% rename from template/.github/workflows/integration-test-profile.yml rename to template/.github/workflows/integration-test-profile.yaml