diff options
Diffstat (limited to '.github/actions/uvim/test_artifacts/action.yml')
| -rw-r--r-- | .github/actions/uvim/test_artifacts/action.yml | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/actions/uvim/test_artifacts/action.yml b/.github/actions/uvim/test_artifacts/action.yml new file mode 100644 index 0000000000..79d1aa82f6 --- /dev/null +++ b/.github/actions/uvim/test_artifacts/action.yml @@ -0,0 +1,55 @@ +name: 'test_artifacts' +description: "Upload failed test artifacts" +runs: + using: "composite" + steps: + - name: Collect matrix properties for naming + uses: actions/github-script@v8 + id: matrix-props + env: + MATRIX_PROPS: ${{ toJSON(matrix) }} + with: + # An array-flattening-to-string JavaScript function. + script: | + const f = function (x) { return x.toString().length > 0; } + const g = function (x) { + return (Array.isArray(x)) + ? x.filter(f) + .map((function (h) { return function (y) { return h(y); }; })(g)) + .join('-') + : x; + } + return Object.values(JSON.parse(process.env.MATRIX_PROPS)) + .filter(f) + .map(g) + .join('-'); + # By default, the JSON-encoded return value of the function is + # set as the "result". + result-encoding: string + - name: Upload failed tests + uses: actions/upload-artifact@v7 + with: + # Name of the artifact to upload. + name: ${{ format('GH-{0}-{1}-{2}-{3}-{4}-failed-tests', + github.run_id, + github.run_attempt, + github.job, + strategy.job-index, + steps.matrix-props.outputs.result) }} + + # A file, directory or wildcard pattern that describes what + # to upload. + path: | + ${{ github.workspace }}/runtime/indent/testdir/*.fail + ${{ github.workspace }}/runtime/syntax/testdir/failed/* + ${{ github.workspace }}/src/testdir/failed/* + # The desired behavior if no files are found using the + # provided path. + if-no-files-found: ignore + + # Duration after which artifact will expire in days. 0 means + # using repository settings. + retention-days: 0 + + # If true, an artifact with a matching name will be deleted + overwrite: true |
