Skip to content

Commit 7ff8324

Browse files
feat: release SPL2 testing flow for TAs (ADDON-78270) (#365)
### Description (PR description goes here) ### Checklist - [x] `README.md` has been updated or is not required - [ ] push trigger tests - [ ] manual release test - [ ] automated releases test - [x] pull request trigger tests - [ ] schedule trigger tests - [ ] workflow errors/warnings reviewed and addressed ### Testing done (for each selected checkbox, the corresponding test results link should be listed here)
2 parents 4779d8d + 0843f21 commit 7ff8324

File tree

1 file changed

+91
-24
lines changed

1 file changed

+91
-24
lines changed

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

Lines changed: 91 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ on:
7979
description: GPG signature username
8080
required: true
8181
SA_GH_USER_EMAIL:
82-
description: GPG signature user email
82+
description: GPG signature user email
8383
required: true
8484
SA_GPG_PRIVATE_KEY:
8585
description: GPG signature private key
@@ -96,7 +96,7 @@ on:
9696
permissions:
9797
contents: read
9898
packages: read
99-
concurrency:
99+
concurrency:
100100
group: ${{ github.head_ref || github.run_id }}
101101
cancel-in-progress: true
102102
jobs:
@@ -117,11 +117,12 @@ jobs:
117117
echo "The provided version already exists. Please provide a unique version."
118118
exit 1
119119
fi
120-
120+
121121
setup-workflow:
122122
runs-on: ubuntu-latest
123123
outputs:
124124
execute-knowledge-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_knowledge_labeled }}
125+
execute-spl2-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_spl2_labeled }}
125126
execute-ui-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_ui_labeled }}
126127
execute-modinput-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_modinput_functional_labeled }}
127128
execute-ucc-modinput-labeled: ${{ steps.configure-tests-on-labels.outputs.execute_ucc_modinput_functional_labeled }}
@@ -156,7 +157,7 @@ jobs:
156157
run: |
157158
set +e
158159
declare -A EXECUTE_LABELED
159-
TESTSET=("execute_knowledge" "execute_ui" "execute_modinput_functional" "execute_ucc_modinput_functional" "execute_scripted_inputs" "execute_requirement_test" "execute_upgrade")
160+
TESTSET=("execute_knowledge" "execute_spl2" "execute_ui" "execute_modinput_functional" "execute_ucc_modinput_functional" "execute_scripted_inputs" "execute_requirement_test" "execute_upgrade")
160161
for test_type in "${TESTSET[@]}"; do
161162
EXECUTE_LABELED["$test_type"]="false"
162163
done
@@ -358,6 +359,7 @@ jobs:
358359
runs-on: ubuntu-latest
359360
# Map a step output to a job output
360361
outputs:
362+
spl2: ${{ steps.testset.outputs.spl2 }}
361363
unit: ${{ steps.testset.outputs.unit }}
362364
knowledge: ${{ steps.testset.outputs.knowledge }}
363365
ui: ${{ steps.testset.outputs.ui }}
@@ -371,7 +373,8 @@ jobs:
371373
- id: testset
372374
name: Check available test types
373375
run: |
374-
find tests -type d -maxdepth 1 -mindepth 1 | sed 's|^tests/||g' | while read -r TESTSET; do echo "$TESTSET=true" >> "$GITHUB_OUTPUT"; echo "$TESTSET::true"; done
376+
find tests -type d -maxdepth 1 -mindepth 1 | sed 's|^tests/||g' | while read -r TESTSET; do echo "$TESTSET=true" >> "$GITHUB_OUTPUT"; echo "$TESTSET::true"; done
377+
find package/default/data -type d -name "spl2" -maxdepth 1 -mindepth 1 | sed 's|^package/default/data/||g' | while read -r TESTSET; do echo "$TESTSET=true" >> "$GITHUB_OUTPUT"; echo "$TESTSET::true"; done
375378
376379
run-unit-tests:
377380
name: test-unit-python3-${{ matrix.python-version }}
@@ -418,7 +421,7 @@ jobs:
418421
run: cp tests/unit/pytest-ci.ini pytest.ini
419422
- name: Run Pytest with coverage
420423
run: poetry run pytest --cov=./ --cov-report=xml --junitxml=test-results/junit.xml tests/unit
421-
- name : Job summary
424+
- name: Job summary
422425
continue-on-error: true
423426
run: |
424427
sudo apt-get update
@@ -487,7 +490,7 @@ jobs:
487490
run: cp tests/unit/pytest-ci.ini pytest.ini
488491
- name: Run Pytest with coverage
489492
run: poetry run pytest --cov=./ --cov-report=xml --junitxml=test-results/junit.xml tests/unit
490-
- name : Job summary
493+
- name: Job summary
491494
continue-on-error: true
492495
run: |
493496
sudo apt-get update
@@ -1012,7 +1015,7 @@ jobs:
10121015
poetry run ucc-test-modinput -o ${{ steps.download-openapi.outputs.download-path }}/openapi.json -t ${{ steps.download-openapi.outputs.download-path }}/tmp/
10131016
fi
10141017
- name: upload-libs-to-s3
1015-
id: upload-libs-to-s3
1018+
id: upload-libs-to-s3
10161019
env:
10171020
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
10181021
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
@@ -1231,6 +1234,70 @@ jobs:
12311234
path: |
12321235
${{ needs.setup.outputs.directory-path }}/argo-logs
12331236
1237+
login-to-spl2-ecr:
1238+
runs-on: ubuntu-latest
1239+
steps:
1240+
- name: Configure AWS credentials
1241+
uses: aws-actions/configure-aws-credentials@v4
1242+
with:
1243+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
1244+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
1245+
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
1246+
- name: Login to Amazon ECR
1247+
id: login-ecr
1248+
uses: aws-actions/amazon-ecr-login@v2
1249+
with:
1250+
mask-password: 'false'
1251+
outputs:
1252+
registry: ${{ steps.login-ecr.outputs.registry }}
1253+
docker_username: ${{ steps.login-ecr.outputs.docker_username_956110764581_dkr_ecr_us_west_2_amazonaws_com }}
1254+
docker_password: ${{ steps.login-ecr.outputs.docker_password_956110764581_dkr_ecr_us_west_2_amazonaws_com }}
1255+
1256+
1257+
run-spl2-tests:
1258+
if: ${{ !cancelled() && needs.setup-workflow.outputs.execute-spl2-labeled == 'true' && needs.test-inventory.outputs.spl2 == 'true'}}
1259+
needs:
1260+
- login-to-spl2-ecr
1261+
- test-inventory
1262+
- setup-workflow
1263+
runs-on: ubuntu-latest
1264+
container:
1265+
image: 956110764581.dkr.ecr.us-west-2.amazonaws.com/dm/spl2-processor-cli:0.0.1
1266+
credentials:
1267+
username: ${{ needs.login-to-spl2-ecr.outputs.docker_username }}
1268+
password: ${{ needs.login-to-spl2-ecr.outputs.docker_password }}
1269+
permissions:
1270+
actions: read
1271+
deployments: read
1272+
contents: read
1273+
packages: read
1274+
statuses: read
1275+
checks: write
1276+
steps:
1277+
- uses: actions/checkout@v4
1278+
with:
1279+
submodules: recursive
1280+
- name: configure git # This step configures git to omit "dubious git ownership error" in later test-reporter stage
1281+
id: configure-git
1282+
run: |
1283+
git --version
1284+
git_path="$(pwd)"
1285+
echo "$git_path"
1286+
git config --global --add safe.directory "$git_path"
1287+
- name: Run spl2 tests
1288+
run: |
1289+
echo "Running SPL2 Tests"
1290+
cp -R /spl2-processor-cli/* .
1291+
pytest -s --junitxml test-results/report.xml --log-file=spl2_tests.log --pyargs spl2_testing_framework.cli_based_spl2_tests
1292+
- name: Test Report
1293+
id: test_report
1294+
uses: dorny/test-reporter@v1.9.1
1295+
if: ${{ !cancelled() }}
1296+
with:
1297+
name: spl2 test report
1298+
path: "test-results/*.xml"
1299+
reporter: java-junit
1300+
12341301
run-knowledge-tests:
12351302
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.knowledge == 'true' && needs.setup-workflow.outputs.execute-knowledge-labeled == 'true' }}
12361303
needs:
@@ -1497,8 +1564,8 @@ jobs:
14971564
done
14981565
- uses: geekyeggo/delete-artifact@v5
14991566
with:
1500-
name: |
1501-
summary-ko*
1567+
name: |
1568+
summary-ko*
15021569
15031570
run-requirement-tests:
15041571
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.requirement_test == 'true' && needs.setup-workflow.outputs.execute-requirement-labeled == 'true' }}
@@ -1753,8 +1820,8 @@ jobs:
17531820
done
17541821
- uses: geekyeggo/delete-artifact@v5
17551822
with:
1756-
name: |
1757-
summary-requirement*
1823+
name: |
1824+
summary-requirement*
17581825
17591826
run-ui-tests:
17601827
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.ui == 'true' && needs.setup-workflow.outputs.execute-ui-labeled == 'true' }}
@@ -2031,8 +2098,8 @@ jobs:
20312098
done
20322099
- uses: geekyeggo/delete-artifact@v5
20332100
with:
2034-
name: |
2035-
summary-ui*
2101+
name: |
2102+
summary-ui*
20362103
20372104
run-modinput-tests:
20382105
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.modinput_functional == 'true' && needs.setup-workflow.outputs.execute-modinput-labeled == 'true' }}
@@ -2114,7 +2181,7 @@ jobs:
21142181
if [[ "${{ inputs.marker }}" != "$EMPTY_MARKER" ]]; then
21152182
TEST_ARG_M="-m"
21162183
fi
2117-
2184+
21182185
echo "test-arg=$TEST_ARG_M" >> "$GITHUB_OUTPUT"
21192186
- name: run-tests
21202187
id: run-tests
@@ -2307,8 +2374,8 @@ jobs:
23072374
done
23082375
- uses: geekyeggo/delete-artifact@v5
23092376
with:
2310-
name: |
2311-
summary-modinput*
2377+
name: |
2378+
summary-modinput*
23122379
23132380
run-ucc-modinput-tests:
23142381
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.ucc_modinput_functional == 'true' && needs.setup-workflow.outputs.execute-ucc-modinput-labeled == 'true' }}
@@ -2582,9 +2649,9 @@ jobs:
25822649
done
25832650
- uses: geekyeggo/delete-artifact@v5
25842651
with:
2585-
name: |
2586-
summary-ucc_modinput*
2587-
2652+
name: |
2653+
summary-ucc_modinput*
2654+
25882655
run-upgrade-tests:
25892656
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.upgrade == 'true' }}
25902657
needs:
@@ -2845,8 +2912,8 @@ jobs:
28452912
done
28462913
- uses: geekyeggo/delete-artifact@v5
28472914
with:
2848-
name: |
2849-
summary-upgrade*
2915+
name: |
2916+
summary-upgrade*
28502917
28512918
run-scripted-input-tests-full-matrix:
28522919
if: ${{ !cancelled() && needs.build.result == 'success' && needs.test-inventory.outputs.scripted_inputs == 'true' && needs.setup-workflow.outputs.execute-scripted_inputs-labeled == 'true' }}
@@ -3114,8 +3181,8 @@ jobs:
31143181
done
31153182
- uses: geekyeggo/delete-artifact@v5
31163183
with:
3117-
name: |
3118-
summary-scripted*
3184+
name: |
3185+
summary-scripted*
31193186
31203187
pre-publish:
31213188
if: ${{ !cancelled() }}

0 commit comments

Comments
 (0)