Skip to content

Commit a79c5cf

Browse files
kgwizdz-splunkartemryskdoroszko-splunk
authored
fix: split marker to ui_marker and mod_input_marker for test cases (#261)
UI tests may be slow to execute so we need to explore adding the ability to use markers that can speed up test execution by parallelizing UI tests. This is currently implemented only for modinput tests ([configuration example can be found here](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/84f5ec10221dc2d660c824c7b908dce58eea9cfa/.github/workflows/build-test-release.yml#L32-L33)). Example workflow execution: [https://github.com/splunk/splunk-add-on-for-amazon-web-services/pull/1220](https://github.com/splunk/splunk-add-on-for-amazon-web-services/pull/1220 ) Updated test runs: - https://github.com/splunk/splunk-add-on-for-amazon-web-services/actions/runs/9254951314 - https://github.com/splunk/test-addonfactory-repo/actions/runs/9254997916 --------- Co-authored-by: Artem Rys <rysartem@gmail.com> Co-authored-by: kdoroszko-splunk <kdoroszko@splunk.com> Co-authored-by: kdoroszko-splunk <147069837+kdoroszko-splunk@users.noreply.github.com>
1 parent d3e9237 commit a79c5cf

File tree

2 files changed

+40
-13
lines changed

2 files changed

+40
-13
lines changed

.github/workflows/reusable-build-test-release.yml

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ on:
44
inputs:
55
marker:
66
required: false
7-
description: 'Parallel run marker'
7+
description: 'Parallel run mod_input marker'
8+
type: string
9+
default: >-
10+
[""]
11+
ui_marker:
12+
required: false
13+
description: 'Parallel run ui marker'
814
type: string
915
default: >-
1016
[""]
@@ -963,7 +969,7 @@ jobs:
963969
continue-on-error: true
964970
env:
965971
ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }}
966-
uses: splunk/wfe-test-runner-action@v4.0
972+
uses: splunk/wfe-test-runner-action@v5.0
967973
with:
968974
splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}
969975
test-type: ${{ env.TEST_TYPE }}
@@ -1195,7 +1201,7 @@ jobs:
11951201
continue-on-error: true
11961202
env:
11971203
ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }}
1198-
uses: splunk/wfe-test-runner-action@v4.0
1204+
uses: splunk/wfe-test-runner-action@v5.0
11991205
with:
12001206
splunk: ${{ matrix.splunk.version }}
12011207
test-type: ${{ env.TEST_TYPE }}
@@ -1347,7 +1353,7 @@ jobs:
13471353
splunk: ${{ fromJson(needs.meta.outputs.matrix_combinedSplunkversion) }}
13481354
browser: [ "chrome" ]
13491355
vendor-version: ${{ fromJson(needs.meta.outputs.matrix_supportedUIVendors) }}
1350-
1356+
marker: ${{ fromJson(inputs.ui_marker) }}
13511357
container:
13521358
image: ghcr.io/splunk/workflow-engine-base:4.0.0
13531359
env:
@@ -1359,6 +1365,7 @@ jobs:
13591365
SPLUNK_VERSION_BASE: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}
13601366
TEST_TYPE: "ui"
13611367
TEST_ARGS: "--browser ${{ matrix.browser }}"
1368+
TEST_BROWSER: ${{ matrix.browser }}
13621369
permissions:
13631370
actions: read
13641371
deployments: read
@@ -1402,17 +1409,29 @@ jobs:
14021409
JOB_NAME=${JOB_NAME//[_.:]/-}
14031410
JOB_NAME=$(echo "$JOB_NAME" | tr '[:upper:]' '[:lower:]')
14041411
echo "job-name=$JOB_NAME" >> "$GITHUB_OUTPUT"
1412+
- name: create test argument
1413+
id: create-test-arg
1414+
shell: bash
1415+
run: |
1416+
TEST_ARG_M=""
1417+
EMPTY_MARKER="[]"
1418+
1419+
if [[ "${{ inputs.ui_marker }}" != "$EMPTY_MARKER" ]]; then
1420+
TEST_ARG_M="-m"
1421+
fi
1422+
1423+
echo "test-arg=$TEST_ARG_M" >> "$GITHUB_OUTPUT"
14051424
- name: run-tests
14061425
id: run-tests
14071426
timeout-minutes: 340
14081427
continue-on-error: true
14091428
env:
14101429
ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }}
1411-
uses: splunk/wfe-test-runner-action@v4.0
1430+
uses: splunk/wfe-test-runner-action@v5.0
14121431
with:
14131432
splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}
14141433
test-type: ${{ env.TEST_TYPE }}
1415-
test-args: ${{ env.TEST_ARGS }}
1434+
test-args: ${{ env.TEST_ARGS }} ${{ steps.create-test-arg.outputs.test-arg }} ${{ matrix.marker }}
14161435
job-name: ${{ steps.create-job-name.outputs.job-name }}
14171436
labels: ${{ needs.setup.outputs.labels }}
14181437
workflow-tmpl-name: ${{ needs.setup.outputs.argo-workflow-tmpl-name }}
@@ -1422,6 +1441,7 @@ jobs:
14221441
vendor-version: ${{ matrix.vendor-version.image }}
14231442
sc4s-version: "No"
14241443
k8s-manifests-branch: ${{ needs.setup.outputs.k8s-manifests-branch }}
1444+
test-browser: ${{ env.TEST_BROWSER }}
14251445
- name: Read secrets from AWS Secrets Manager again into environment variables in case credential rotation
14261446
id: update-argo-token
14271447
if: ${{ !cancelled() }}
@@ -1625,21 +1645,21 @@ jobs:
16251645
id: create-test-arg
16261646
shell: bash
16271647
run: |
1628-
export comparing_variable="[]"
1629-
if [ "${{ inputs.marker }}" == "$comparing_variable" ]
1630-
then
1631-
TEST_ARG_M=""
1632-
else
1648+
TEST_ARG_M=""
1649+
EMPTY_MARKER="[]"
1650+
1651+
if [[ "${{ inputs.marker }}" != "$EMPTY_MARKER" ]]; then
16331652
TEST_ARG_M="-m"
16341653
fi
1654+
16351655
echo "test-arg=$TEST_ARG_M" >> "$GITHUB_OUTPUT"
16361656
- name: run-tests
16371657
id: run-tests
16381658
timeout-minutes: 340
16391659
continue-on-error: true
16401660
env:
16411661
ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }}
1642-
uses: splunk/wfe-test-runner-action@v4.0
1662+
uses: splunk/wfe-test-runner-action@v5.0
16431663
with:
16441664
splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}
16451665
test-type: ${{ env.TEST_TYPE }}
@@ -1868,7 +1888,7 @@ jobs:
18681888
continue-on-error: true
18691889
env:
18701890
ARGO_TOKEN: ${{ steps.get-argo-token.outputs.argo-token }}
1871-
uses: splunk/wfe-test-runner-action@v4.0
1891+
uses: splunk/wfe-test-runner-action@v5.0
18721892
with:
18731893
splunk: ${{ matrix.splunk.version }}${{ secrets.OTHER_TA_REQUIRED_CONFIGS }}
18741894
test-type: ${{ env.TEST_TYPE }}

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,9 @@ cim-compliance-report
486486
**Description**
487487

488488
- This stage does the setup for executing UI tests and reports the results
489+
- It is possible to parallelize UI tests execution by using pytest markers.
490+
To do so, one must specify `ui_marker` parameter in buid-test-release.yml as in [example](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/925fd189737507dd91cc5275c59a8b390550411c/.github/workflows/build-test-release.yml#L35).
491+
Markers must be created prior and each test case must be marked (check [run-modinput-tests](#run-modinput-tests), and this [PR](https://github.com/splunk/splunk-add-on-for-amazon-web-services/pull/1237))
489492

490493
**Action used:**
491494
- No action used
@@ -525,6 +528,10 @@ Junit XML file
525528
**Description**
526529

527530
- This stage does the setup for executing Modinput tests and reports the results
531+
- It is possible to parallelize Modinput tests execution by using pytest markers.
532+
To do so, one must specify `marker` parameter in buid-test-release.yml as in [example](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/603f37ee24565f23104c0297e55a0c72480f34c9/.github/workflows/build-test-release.yml#L33).
533+
Markers must be created prior and each test case must be marked (check the following references: [ref1](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/main/tests/modinput_functional/README-test.md),
534+
[ref2](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/main/tests/modinput_functional/centaurs/tacommon/test_ta_mark.py), [ref3](https://github.com/splunk/splunk-add-on-for-amazon-web-services/blob/603f37ee24565f23104c0297e55a0c72480f34c9/tests/modinput_functional/data_collection/aws_s3/test_aws_s3_line_content.py#L20))
528535

529536
**Action used:**
530537
- No action

0 commit comments

Comments
 (0)