summaryrefslogtreecommitdiff
path: root/.github/actions/uvim/test_artifacts
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:30:47 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 19:31:15 +0300
commitb1e34e861b5d732afe828d58aad2c638135061fd (patch)
tree6ab65910221ff147b1fdc49299418d8af04d0a7b /.github/actions/uvim/test_artifacts
parentc965a4ebddf98c368edd905324a4ecd79b2aae55 (diff)
downloadProject-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.tar.gz
Project-Tick-b1e34e861b5d732afe828d58aad2c638135061fd.zip
NOISSUE Add GitHub workflows for Project Tick project
- Create CodeQL analysis workflow for security checks on meshmc codebase. - Add container build workflow for meshmc using Podman and Buildah. - Implement scheduled flake update workflow for Nix dependencies. - Introduce merge blocking PR automation to manage dependent PRs. - Set up Nix build workflow for meshmc with multi-platform support. - Add release workflow for publishing MeshMC artifacts on GitHub. - Create CI workflow for tomlplusplus library with multi-compiler support. - Implement CI workflow for uvim with various feature sets and architectures. - Add .gitignore to exclude build artifacts and IDE files. - Create .gitattributes files for various submodules to manage line endings and diff settings. - Add post-receive hook for mirroring pushes to multiple forges. - Include .gitignore files for images4docker and other submodules to manage temporary files. Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to '.github/actions/uvim/test_artifacts')
-rw-r--r--.github/actions/uvim/test_artifacts/action.yml55
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