1
1
---
2
2
name : 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 }}
15
3
16
4
on :
17
5
# schedule:
18
6
# At 00:00 on Sunday. See: https://crontab.guru/#0_0_*_*_0
19
7
# - cron: "0 0 * * 0"
20
8
workflow_dispatch :
21
9
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
50
12
required : true
51
13
type : choice
52
14
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
57
19
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`
66
24
67
25
jobs :
68
26
test :
69
27
name : Run Integration Test
70
28
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
71
34
steps :
72
35
- name : Override integration test options for scheduled run
73
36
if : github.event_name == 'schedule'
@@ -82,56 +45,27 @@ jobs:
82
45
83
46
- uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
84
47
with :
48
+ persist-credentials : false
85
49
submodules : recursive
86
50
51
+ # TODO: Enable the scheduled runs which hard-code what profile to use
87
52
- name : Run Integration Test
88
53
id : test
89
- uses : stackabletech/actions/run-integration-test@4483641a7e24057bd2ba51cb4c3f2f0010ad21b7 # v0.8.4
54
+ uses : stackabletech/actions/run-integration-test@736565e3b8f657bcddff2897abcf5ccb82ae3e6c # v0.9.0
90
55
with :
91
- test-platform : ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }}
92
- test-run : ${{ env.TEST_RUN }}
93
- test-parameter : ${{ env.TEST_PARAMETER }}
94
56
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 }}
95
61
96
62
- 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
101
65
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