11---
22name : Integration Test
3- run-name : |
4- Integration Test on ${{ inputs.test-platform }}-${{ inputs.test-architecture }} (${{ inputs.test-run == 'all' && 'all' || format('{0}={1}', inputs.test-run, inputs.test-parameter) }})
5-
6- env :
7- DEFAULT_TEST_PLATFORM : kind-1.31.0
8- DEFAULT_TEST_ARCHITECTURE : amd64
9- DEFAULT_TEST_RUN : all
10- DEFAULT_TEST_PARAMETER : " " # Unused when the test-run is 'all'
11- TEST_PLATFORM : ${{ inputs.test-platform }}
12- TEST_ARCHITECTURE : ${{ inputs.test-architecture }}
13- TEST_RUN : ${{ inputs.test-run }}
14- TEST_PARAMETER : ${{ inputs.test-parameter }}
153
164on :
175 # schedule:
186 # At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0
197 # - cron: "0 0 * * 0"
208 workflow_dispatch :
219 inputs :
22- test-platform :
23- description : |
24- The test platform to run on
25- required : true
26- type : choice
27- options :
28- - kind-1.31.2
29- - kind-1.30.6
30- - rke2-1.31.2
31- - rke2-1.30.6
32- - k3s-1.31.2
33- - k3s-1.30.6
34- - aks-1.29
35- - aks-1.28
36- - aks-1.27
37- - eks-1.29
38- - eks-1.28
39- - eks-1.27
40- - gke-1.29
41- - gke-1.28
42- - gke-1.27
43- - okd-4.15
44- - okd-4.14
45- - okd-4.13
46- test-architecture :
47- description : |
48- The architecture the tests will run on. Consult the run-integration-test action README for
49- more details on supported architectures for each distribution
10+ test-mode :
11+ description : Test mode
5012 required : true
5113 type : choice
5214 options :
53- - amd64
54- - arm64
55- test-run :
56- description : Type of test run
15+ - profile
16+ - custom
17+ test-mode-input :
18+ description : The profile or the runner used
5719 required : true
58- type : choice
59- options :
60- - all
61- - test-suite
62- - test
63- test-parameter :
64- description : Parameter to `--test-suite` or `--test` (ignored for `all`)
65- default : smoke
20+ test-suite :
21+ description : Name of the test-suite. Only used if test-mode is `custom`
22+ test :
23+ description : Name of the test. Only used of test-mode is `custom`
6624
6725jobs :
6826 test :
6927 name : Run Integration Test
7028 runs-on : ubuntu-latest
29+ # services:
30+ # otel-collector:
31+ # image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.131.1
32+ # volumes:
33+ # - .:/mnt
7134 steps :
7235 - name : Override integration test options for scheduled run
7336 if : github.event_name == 'schedule'
@@ -82,56 +45,27 @@ jobs:
8245
8346 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
8447 with :
48+ persist-credentials : false
8549 submodules : recursive
8650
51+ # TODO: Enable the scheduled runs which hard-code what profile to use
8752 - name : Run Integration Test
8853 id : test
89- uses : stackabletech/actions/run-integration-test@4483641a7e24057bd2ba51cb4c3f2f0010ad21b7 # v0.8.4
54+ uses : stackabletech/actions/run-integration-test@736565e3b8f657bcddff2897abcf5ccb82ae3e6c # v0.9.0
9055 with :
91- test-platform : ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }}
92- test-run : ${{ env.TEST_RUN }}
93- test-parameter : ${{ env.TEST_PARAMETER }}
9456 replicated-api-token : ${{ secrets.REPLICATED_API_TOKEN }}
57+ test-mode-input : ${{ inputs.test-mode-input }}
58+ test-suite : ${{ inputs.test-suite }}
59+ test-mode : ${{ inputs.test-mode }}
60+ test : ${{ inputs.test }}
9561
9662 - name : Send Notification
97- if : ${{ failure() }}
98- env :
99- SLACK_BOT_TOKEN : ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }}
100- uses : slackapi/slack-github-action@fcfb566f8b0aab22203f066d80ca1d7e4b5d05b3 # v1.27.1
63+ if : ${{ failure() || github.run_attempt > 1 }}
64+ uses : stackabletech/actions/send-slack-notification@736565e3b8f657bcddff2897abcf5ccb82ae3e6c # v0.9.0
10165 with :
102- channel-id : " C07UYJYSMSN" # notifications-integration-tests
103- payload : |
104- {
105- "text": "Integration Test *${{ github.repository }}* failed",
106- "attachments": [
107- {
108- "pretext": "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}",
109- "color": "#aa0000",
110- "actions": [
111- {
112- "type": "button",
113- "text": "Go to integration test run",
114- "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
115- }
116- ]
117- }
118- ]
119- }
120- # TODO: Update to version 2.1.0. This could look something like the following.
121- # The workflow is currently not in use, testing that the new version still works imposes effort.
122- # So I left it as a future exercise, but saved the current state.
123- #
124- # uses: slackapi/slack-github-action@b0fa283ad8fea605de13dc3f449259339835fc52 # v2.1.0
125- # with:
126- # method: chat.postMessage
127- # token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }}
128- # payload: |
129- # channel: "C07UYJYSMSN" # notifications-integration-tests
130- # text: "Integration Test *${{ github.repository }}* failed"
131- # attachments:
132- # - pretext: "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}"
133- # color: "#aa0000"
134- # actions:
135- # - type: button
136- # text: Go to integration test run
137- # url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
66+ slack-token : ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }}
67+ failed-tests : ${{ steps.test.outputs.failed-tests }}
68+ test-health : ${{ steps.test.outputs.health }}
69+ test-result : ${{ steps.test.conclusion }}
70+ channel-id : C07UYJYSMSN # notifications-integration-tests
71+ type : integration-test
0 commit comments