|
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 | | - - name: Override integration test options for scheduled run |
73 | | - if: github.event_name == 'schedule' |
74 | | - shell: bash |
75 | | - run: | |
76 | | - set -euo pipefail |
77 | | -
|
78 | | - echo "TEST_PLATFORM=$DEFAULT_TEST_PLATFORM" | tee -a "$GITHUB_ENV" |
79 | | - echo "TEST_ARCHITECTURE=$DEFAULT_TEST_ARCHITECTURE" | tee -a "$GITHUB_ENV" |
80 | | - echo "TEST_RUN=$DEFAULT_TEST_RUN" | tee -a "$GITHUB_ENV" |
81 | | - echo "TEST_PARAMETER=$DEFAULT_TEST_PARAMETER" | tee -a "$GITHUB_ENV" |
82 | | -
|
83 | | - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| 35 | + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 |
84 | 36 | with: |
| 37 | + persist-credentials: false |
85 | 38 | submodules: recursive |
86 | 39 |
|
| 40 | + # TODO: Enable the scheduled runs which hard-code what profile to use |
87 | 41 | - name: Run Integration Test |
88 | 42 | id: test |
89 | | - uses: stackabletech/actions/run-integration-test@4483641a7e24057bd2ba51cb4c3f2f0010ad21b7 # v0.8.4 |
| 43 | + uses: stackabletech/actions/run-integration-test@736565e3b8f657bcddff2897abcf5ccb82ae3e6c # v0.9.0 |
90 | 44 | with: |
91 | | - test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} |
92 | | - test-run: ${{ env.TEST_RUN }} |
93 | | - test-parameter: ${{ env.TEST_PARAMETER }} |
94 | 45 | replicated-api-token: ${{ secrets.REPLICATED_API_TOKEN }} |
| 46 | + test-mode-input: ${{ inputs.test-mode-input }} |
| 47 | + test-suite: ${{ inputs.test-suite }} |
| 48 | + test-mode: ${{ inputs.test-mode }} |
| 49 | + test: ${{ inputs.test }} |
95 | 50 |
|
96 | 51 | - 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 |
| 52 | + if: ${{ failure() || github.run_attempt > 1 }} |
| 53 | + uses: stackabletech/actions/send-slack-notification@736565e3b8f657bcddff2897abcf5ccb82ae3e6c # v0.9.0 |
101 | 54 | 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 }}" |
| 55 | + slack-token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} |
| 56 | + failed-tests: ${{ steps.test.outputs.failed-tests }} |
| 57 | + test-health: ${{ steps.test.outputs.health }} |
| 58 | + test-result: ${{ steps.test.conclusion }} |
| 59 | + channel-id: C07UYJYSMSN # notifications-integration-tests |
| 60 | + type: integration-test |
0 commit comments