From 5f47e4a19165157afc1ce3c53a34d3299c28eca3 Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 8 Nov 2024 10:50:41 +0100 Subject: [PATCH 01/13] ci: Tweak the integration test configuration --- tests/infrastructure.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/infrastructure.yaml b/tests/infrastructure.yaml index 6f8d6d02..fb7f5eae 100644 --- a/tests/infrastructure.yaml +++ b/tests/infrastructure.yaml @@ -1 +1,2 @@ -instance-size: medium +instance-size: large +nodes: 3 From 6f95870f735e832a04be2592a17e0d584542efde Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 8 Nov 2024 14:16:19 +0100 Subject: [PATCH 02/13] ci: Use updated action This commit will be reverted before merge. --- .github/workflows/integration-test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 9a6ef2c0..de056caa 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -81,7 +81,8 @@ jobs: - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@5b66858af3597c4ea34f9b33664b8034a1d28427 # v0.3.0 + # NOTE (@Techassi): Use tagged version instead, changed only for testing + uses: stackabletech/actions/run-integration-test@99211a06f470cda1b2bcf7b4054ea1ccfe4ba071 with: test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} test-run: ${{ env.TEST_RUN }} From 8ee7e9621577a990f4b7b8207279af0ae376ff85 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 4 Dec 2024 14:38:45 +0100 Subject: [PATCH 03/13] chore: Bump run-integration-test action --- .github/workflows/integration-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 24eb3372..7a5f3687 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -86,7 +86,7 @@ jobs: - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@5901c3b1455488820c4be367531e07c3c3e82538 # v0.4.0 + uses: stackabletech/actions/run-integration-test@5c9e7b59b5a6c459a6a488193e9a9fb8dfe63cc8 # v0.4.0 TODO: Use released version with: test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} test-run: ${{ env.TEST_RUN }} From 046d2d40a5903088a06ddfd862b0a137cd4d113f Mon Sep 17 00:00:00 2001 From: Techassi Date: Fri, 6 Dec 2024 15:55:14 +0100 Subject: [PATCH 04/13] ci: Use 100G disks --- .github/workflows/integration-test.yml | 2 +- tests/infrastructure.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 7a5f3687..dc7dda1b 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -86,7 +86,7 @@ jobs: - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@5c9e7b59b5a6c459a6a488193e9a9fb8dfe63cc8 # v0.4.0 TODO: Use released version + uses: stackabletech/actions/run-integration-test@95626907fd8cae2f17c862ae40bcab1aa5a2c854 # v0.5.0 with: test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} test-run: ${{ env.TEST_RUN }} diff --git a/tests/infrastructure.yaml b/tests/infrastructure.yaml index fb7f5eae..6b7ba290 100644 --- a/tests/infrastructure.yaml +++ b/tests/infrastructure.yaml @@ -1,2 +1,3 @@ instance-size: large +disk: 100 nodes: 3 From e065f35d4614f76138824b7dd3b76d80d0376bf4 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 14 Jan 2025 12:39:06 +0100 Subject: [PATCH 05/13] chore: Use new interu config --- tests/infrastructure.yaml | 3 --- tests/interu.yaml | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) delete mode 100644 tests/infrastructure.yaml create mode 100644 tests/interu.yaml diff --git a/tests/infrastructure.yaml b/tests/infrastructure.yaml deleted file mode 100644 index 6b7ba290..00000000 --- a/tests/infrastructure.yaml +++ /dev/null @@ -1,3 +0,0 @@ -instance-size: large -disk: 100 -nodes: 3 diff --git a/tests/interu.yaml b/tests/interu.yaml new file mode 100644 index 00000000..d89e3ccb --- /dev/null +++ b/tests/interu.yaml @@ -0,0 +1,17 @@ +runners: + amd64: + platform: aks-1.31 + ttl: 4h + node-groups: + - name: default + arch: amd64 + size: large + disk-gb: 50 + nodes: 3 + +profiles: + schedule: + strategy: use-runner + runner: amd64 + options: + parallelism: 1 From 9b048f2c2d6921e53c63aec8bb6c0d789c15e915 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 14 Jan 2025 13:39:25 +0100 Subject: [PATCH 06/13] ci: Switch to action with interu --- .github/workflows/integration-test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index dc7dda1b..63c52496 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -86,12 +86,10 @@ jobs: - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@95626907fd8cae2f17c862ae40bcab1aa5a2c854 # v0.5.0 + uses: stackabletech/actions/run-integration-test@05cb2081c8ffd34bbaaee36846f4e1892686cf55 # TODO: Use releases version with: - test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} - test-run: ${{ env.TEST_RUN }} - test-parameter: ${{ env.TEST_PARAMETER }} replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} + test-profile: schedule - name: Send Notification if: ${{ failure() }} From f92bf86d6d3cc33b8a4a1e096555b000d751dfe3 Mon Sep 17 00:00:00 2001 From: Techassi Date: Tue, 14 Jan 2025 13:44:27 +0100 Subject: [PATCH 07/13] ci: Adjust workflow --- .github/workflows/integration-test.yml | 64 +------------------------- tests/interu.yaml | 6 +-- 2 files changed, 4 insertions(+), 66 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 63c52496..c3bf2d17 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -1,92 +1,30 @@ --- name: Integration Test -run-name: | - Integration Test on ${{ inputs.test-platform }}-${{ inputs.test-architecture }} (${{ inputs.test-run == 'all' && 'all' || format('{0}={1}', inputs.test-run, inputs.test-parameter) }}) env: DEFAULT_TEST_PLATFORM: kind-1.31.0 DEFAULT_TEST_ARCHITECTURE: amd64 DEFAULT_TEST_RUN: all DEFAULT_TEST_PARAMETER: "" # Unused when the test-run is 'all' - TEST_PLATFORM: ${{ inputs.test-platform }} - TEST_ARCHITECTURE: ${{ inputs.test-architecture }} - TEST_RUN: ${{ inputs.test-run }} - TEST_PARAMETER: ${{ inputs.test-parameter }} on: # schedule: # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 # - cron: "0 0 * * 0" workflow_dispatch: - inputs: - test-platform: - description: | - The test platform to run on - required: true - type: choice - options: - - kind-1.31.2 - - kind-1.30.6 - - rke2-1.31.2 - - rke2-1.30.6 - - k3s-1.31.2 - - k3s-1.30.6 - - aks-1.29 - - aks-1.28 - - aks-1.27 - - eks-1.29 - - eks-1.28 - - eks-1.27 - - gke-1.29 - - gke-1.28 - - gke-1.27 - - okd-4.15 - - okd-4.14 - - okd-4.13 - test-architecture: - description: | - The architecture the tests will run on. Consult the run-integration-test action README for - more details on supported architectures for each distribution - required: true - type: choice - options: - - amd64 - - arm64 - test-run: - description: Type of test run - required: true - type: choice - options: - - all - - test-suite - - test - test-parameter: - description: Parameter to `--test-suite` or `--test` (ignored for `all`) - default: smoke jobs: test: name: Run Integration Test runs-on: ubuntu-latest steps: - - name: Override integration test options for scheduled run - if: github.event_name == 'schedule' - shell: bash - run: | - set -euo pipefail - - echo "TEST_PLATFORM=$DEFAULT_TEST_PLATFORM" | tee -a "$GITHUB_ENV" - echo "TEST_ARCHITECTURE=$DEFAULT_TEST_ARCHITECTURE" | tee -a "$GITHUB_ENV" - echo "TEST_RUN=$DEFAULT_TEST_RUN" | tee -a "$GITHUB_ENV" - echo "TEST_PARAMETER=$DEFAULT_TEST_PARAMETER" | tee -a "$GITHUB_ENV" - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: submodules: recursive - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@05cb2081c8ffd34bbaaee36846f4e1892686cf55 # TODO: Use releases version + uses: stackabletech/actions/run-integration-test@990f74b08b1c3693fb80814c20c44a97531ebf75 # TODO: Use released version with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} test-profile: schedule diff --git a/tests/interu.yaml b/tests/interu.yaml index d89e3ccb..7a8a5e8b 100644 --- a/tests/interu.yaml +++ b/tests/interu.yaml @@ -1,12 +1,12 @@ runners: amd64: platform: aks-1.31 - ttl: 4h + ttl: 6h node-groups: - name: default arch: amd64 size: large - disk-gb: 50 + disk-gb: 100 nodes: 3 profiles: @@ -14,4 +14,4 @@ profiles: strategy: use-runner runner: amd64 options: - parallelism: 1 + parallelism: 2 From 6b311460e61f0243455429a00756ca0c6af62bdd Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 6 Aug 2025 14:25:16 +0200 Subject: [PATCH 08/13] ci: Use new action version and inputs --- .github/workflows/integration-test.yml | 73 +++++++++++++++++--------- tests/interu.yaml | 12 +++-- 2 files changed, 56 insertions(+), 29 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index c3bf2d17..1826abee 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -12,6 +12,21 @@ on: # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0 # - cron: "0 0 * * 0" workflow_dispatch: + inputs: + test-mode: + description: Test mode + required: true + type: choice + options: + - custom + - profile + test-mode-input: + description: The profile or the runner used + 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` jobs: test: @@ -20,36 +35,42 @@ jobs: steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 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@990f74b08b1c3693fb80814c20c44a97531ebf75 # TODO: Use released version + uses: stackabletech/actions/run-integration-test@e667cf50055aa43bd454125499843f20c4ebaf3d # TODO: Use released version with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} - test-profile: schedule + test-mode-input: ${{ inputs.test-mode-input }} + test-suite: ${{ inputs.test-suite }} + test-mode: ${{ inputs.test-mode }} + test: ${{ inputs.test }} - - name: Send Notification - if: ${{ failure() }} - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} - uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0 - with: - channel-id: "C07UYJYSMSN" # notifications-integration-tests - payload: | - { - "text": "Integration Test *${{ github.repository }}* failed", - "attachments": [ - { - "pretext": "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}", - "color": "#aa0000", - "actions": [ - { - "type": "button", - "text": "Go to integration test run", - "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" - } - ] - } - ] - } + # TODO: Comment back in once integration tests itself work. Also add improvements to the notifications. + # - name: Send Notification + # if: ${{ failure() }} + # env: + # SLACK_BOT_TOKEN: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} + # uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0 + # with: + # channel-id: "C07UYJYSMSN" # notifications-integration-tests + # payload: | + # { + # "text": "Integration Test for *${{ github.repository }}* failed", + # "attachments": [ + # { + # "pretext": "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}", + # "color": "#aa0000", + # "actions": [ + # { + # "type": "button", + # "text": "Go to integration test run", + # "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + # } + # ] + # } + # ] + # } diff --git a/tests/interu.yaml b/tests/interu.yaml index 7a8a5e8b..adcab08c 100644 --- a/tests/interu.yaml +++ b/tests/interu.yaml @@ -1,11 +1,11 @@ runners: amd64: - platform: aks-1.31 + platform: aks-1.32 ttl: 6h node-groups: - name: default arch: amd64 - size: large + size: medium disk-gb: 100 nodes: 3 @@ -14,4 +14,10 @@ profiles: strategy: use-runner runner: amd64 options: - parallelism: 2 + beku-parallelism: 2 + smoke-latest: + strategy: use-runner + runner: amd64 + options: + beku-parallelism: 2 + beku-test-suite: smoke-latest From 098f61c7decaacd5172da07fe52c0317c538f638 Mon Sep 17 00:00:00 2001 From: Techassi Date: Wed, 6 Aug 2025 14:42:17 +0200 Subject: [PATCH 09/13] chore: Use fixed action --- .github/workflows/integration-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 1826abee..8678be3c 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -41,7 +41,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@e667cf50055aa43bd454125499843f20c4ebaf3d # TODO: Use released version + uses: stackabletech/actions/run-integration-test@48f987367d0cb42db1248d050faabcdf26218f1e # TODO: Use released version with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} test-mode-input: ${{ inputs.test-mode-input }} From 89db49f5d88a723ca9a6d8b28054bc51bda3858e Mon Sep 17 00:00:00 2001 From: Nick Larsen Date: Thu, 7 Aug 2025 09:57:25 +0200 Subject: [PATCH 10/13] chore: Add test service to see if we can mount volumes --- .github/workflows/integration-test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 8678be3c..634838a7 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -32,6 +32,11 @@ jobs: test: name: Run Integration Test runs-on: ubuntu-latest + services: + otel-collector: + image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.131.1 + volumes: + - .:/mnt steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: From 0da80e7236d5acb7ed84cd6d68d4450290ea78de Mon Sep 17 00:00:00 2001 From: Techassi Date: Mon, 11 Aug 2025 13:26:31 +0200 Subject: [PATCH 11/13] ci: Use updated actions --- .github/workflows/integration-test.yml | 59 ++++++++++++++------------ 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 634838a7..f10a93db 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -46,7 +46,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@48f987367d0cb42db1248d050faabcdf26218f1e # TODO: Use released version + uses: stackabletech/actions/run-integration-test@ad167a759aa0380aab276c0f96382476d62c51c6 # TODO: Use released version with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} test-mode-input: ${{ inputs.test-mode-input }} @@ -54,28 +54,35 @@ jobs: test-mode: ${{ inputs.test-mode }} test: ${{ inputs.test }} - # TODO: Comment back in once integration tests itself work. Also add improvements to the notifications. - # - name: Send Notification - # if: ${{ failure() }} - # env: - # SLACK_BOT_TOKEN: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} - # uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0 - # with: - # channel-id: "C07UYJYSMSN" # notifications-integration-tests - # payload: | - # { - # "text": "Integration Test for *${{ github.repository }}* failed", - # "attachments": [ - # { - # "pretext": "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}", - # "color": "#aa0000", - # "actions": [ - # { - # "type": "button", - # "text": "Go to integration test run", - # "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" - # } - # ] - # } - # ] - # } + - name: Send Notification + if: ${{ failure() || github.run_attempt > 1 }} + uses: stackabletech/actions/send-slack-notification@ad167a759aa0380aab276c0f96382476d62c51c6 # TODO: Use released version + with: + slack-token: ${{ secrets.SLACK_CONTAINER_IMAGE_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 + # env: + # SLACK_BOT_TOKEN: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} + # uses: slackapi/slack-github-action@37ebaef184d7626c5f204ab8d3baff4262dd30f0 # v1.27.0 + # with: + # channel-id: "C07UYJYSMSN" # notifications-integration-tests + # payload: | + # { + # "text": "Integration Test for *${{ github.repository }}* failed", + # "attachments": [ + # { + # "pretext": "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}", + # "color": "#aa0000", + # "actions": [ + # { + # "type": "button", + # "text": "Go to integration test run", + # "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" + # } + # ] + # } + # ] + # } From 28acd03b658930d264ada2917a27f2a09ce91d9b Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 14 Aug 2025 13:15:42 +0200 Subject: [PATCH 12/13] fix(ci): Use correct Slack token --- .github/workflows/integration-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index f10a93db..3f44bc50 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -58,7 +58,7 @@ jobs: if: ${{ failure() || github.run_attempt > 1 }} uses: stackabletech/actions/send-slack-notification@ad167a759aa0380aab276c0f96382476d62c51c6 # TODO: Use released version with: - slack-token: ${{ secrets.SLACK_CONTAINER_IMAGE_TOKEN }} + 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 }} From 3bc63b5af34ce7b6ae7212b2f256ba98ae2e2df6 Mon Sep 17 00:00:00 2001 From: Techassi Date: Thu, 14 Aug 2025 15:03:51 +0200 Subject: [PATCH 13/13] ci: Use updated actions --- .github/workflows/integration-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 3f44bc50..b58713cb 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -46,7 +46,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@ad167a759aa0380aab276c0f96382476d62c51c6 # TODO: Use released version + uses: stackabletech/actions/run-integration-test@0b97104af0cceb07bb869eaa45d3f957568df2f4 # TODO: Use released version with: replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} test-mode-input: ${{ inputs.test-mode-input }} @@ -56,7 +56,7 @@ jobs: - name: Send Notification if: ${{ failure() || github.run_attempt > 1 }} - uses: stackabletech/actions/send-slack-notification@ad167a759aa0380aab276c0f96382476d62c51c6 # TODO: Use released version + uses: stackabletech/actions/send-slack-notification@0b97104af0cceb07bb869eaa45d3f957568df2f4 # TODO: Use released version with: slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} failed-tests: ${{ steps.test.outputs.failed-tests }}