|
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