@@ -28,16 +28,27 @@ jobs:
2828 artifact-name : " test-matrix-outputs-${{ matrix.os }}"
2929
3030 - name : Check set matrix outputs
31- shell : bash
32- run : |
33- EXPECTED_ARTIFACT_NAME="$GITHUB_RUN_ID-$GITHUB_RUN_NUMBER-test-matrix-outputs-${{ matrix.os }}"
34-
35- if [ "${STEPS_SET_MATRIX_OUTPUT_OUTPUTS_ARTIFACT_NAME}" != "$EXPECTED_ARTIFACT_NAME" ]; then
36- echo "Set matrix output 1 result is not valid"
37- exit 1
38- fi
31+ uses : actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
3932 env :
33+ GITHUB_RUN_ID_VALUE : ${{ github.run_id }}
34+ GITHUB_RUN_NUMBER_VALUE : ${{ github.run_number }}
35+ MATRIX_OS : ${{ matrix.os }}
4036 STEPS_SET_MATRIX_OUTPUT_OUTPUTS_ARTIFACT_NAME : ${{ steps.set-matrix-output.outputs.artifact-name }}
37+ with :
38+ script : |
39+ const assert = require('node:assert/strict');
40+ const actualArtifactName = process.env.STEPS_SET_MATRIX_OUTPUT_OUTPUTS_ARTIFACT_NAME;
41+ const expectedArtifactName = `${process.env.GITHUB_RUN_ID_VALUE}-${process.env.GITHUB_RUN_NUMBER_VALUE}-test-matrix-outputs-${process.env.MATRIX_OS}`;
42+
43+ core.info(`Actual artifact name: ${actualArtifactName}`);
44+ core.info(`Expected artifact name: ${expectedArtifactName}`);
45+
46+ try {
47+ assert.strictEqual(actualArtifactName, expectedArtifactName, 'Set matrix output 1 result is not valid');
48+ } catch (error) {
49+ core.setFailed(error.message);
50+ return;
51+ }
4152
4253 tests-2 :
4354 name : Arrange - Set empty output
@@ -96,27 +107,50 @@ jobs:
96107 artifact-name : test-matrix-outputs-${{ matrix.os }}
97108
98109 - name : Check matrix outputs
99- shell : bash
100- run : |
101- # Output result must be a json array of 2 entries
102- if [ "$(echo "$OUTPUT_RESULT" | jq -e '. | length')" != "2" ]; then
103- echo "Get matrix outputs result is not valid"
104- exit 1
105- fi
106-
107- # Output result must contain the first and third entries
108- if [ "$(echo "$OUTPUT_RESULT" | jq -ce '. | sort')" != '[{"test":"test content 1"},{"test":"test content 3"}]' ]; then
109- echo "Get matrix outputs result is not valid"
110- exit 1
111- fi
110+ uses : actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
112111 env :
113112 OUTPUT_RESULT : ${{ steps.get-matrix-outputs.outputs.result }}
113+ with :
114+ script : |
115+ const assert = require('node:assert/strict');
116+ const outputResult = process.env.OUTPUT_RESULT;
117+
118+ let parsed;
119+ try {
120+ parsed = JSON.parse(outputResult);
121+ } catch (error) {
122+ core.setFailed(`Get matrix outputs result is not valid JSON: ${error.message}`);
123+ return;
124+ }
125+
126+ try {
127+ assert.ok(Array.isArray(parsed), 'Get matrix outputs result is not an array');
128+ assert.strictEqual(parsed.length, 2, 'Get matrix outputs result does not contain 2 entries');
129+
130+ const normalizedActual = [...parsed].sort((a, b) => String(a.test).localeCompare(String(b.test)));
131+ const normalizedExpected = [
132+ { test: 'test content 1' },
133+ { test: 'test content 3' },
134+ ];
135+ assert.deepStrictEqual(normalizedActual, normalizedExpected, 'Get matrix outputs result is not valid');
136+ } catch (error) {
137+ core.setFailed(error.message);
138+ return;
139+ }
114140
115141 - name : Check artifacts have been deleted
116- shell : bash
117- run : |
118- ARTIFACTS_PATH="/tmp/$GITHUB_RUN_ID-$GITHUB_RUN_NUMBER-test-matrix-outputs-${{ matrix.os }}"
119- if [ -d "$ARTIFACTS_PATH" ]; then
120- echo "Artifacts have not been deleted"
121- exit 1
122- fi
142+ uses : actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
143+ env :
144+ ARTIFACTS_PATH : /tmp/${{ github.run_id }}-${{ github.run_number }}-test-matrix-outputs-${{ matrix.os }}
145+ with :
146+ script : |
147+ const assert = require('node:assert/strict');
148+ const { existsSync } = require('node:fs');
149+ const artifactsPath = process.env.ARTIFACTS_PATH;
150+
151+ try {
152+ assert.strictEqual(existsSync(artifactsPath), false, 'Artifacts have not been deleted');
153+ } catch (error) {
154+ core.setFailed(error.message);
155+ return;
156+ }
0 commit comments