changeset 35183:9a1ac66c788d

CI: Upload failed screendump tests when run in github actions Commit: https://github.com/vim/vim/commit/8314de8fd4aa4d18fc524f960f5d683a2d8cba32 Author: Christian Brabandt <cb@256bit.org> Date: Wed May 15 21:48:11 2024 +0200 CI: Upload failed screendump tests when run in github actions It's a bit of a pain to debug failing screendump tests without knowing exactly what went wrong. Therefore include actions/upload-artifact for the Github CI runners and have them uploaded those failing screen dump tests automatically. Let's add this step to each of the Linux/MacOS/Windows workflows but do not duplicate the code, factor it out to a single file .github/actions/screendump/action.yml and reference this one from the main ci.yml file Example: https://github.com/chrisbra/vim/actions/runs/9085493619 closes: #14771 Co-authored-by: dundargoc <gocdundar@gmail.com> Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 15 May 2024 22:00:04 +0200
parents 205878036d87
children 0a80fe1a9125
files .github/actions/screendump/action.yml .github/workflows/ci.yml Filelist
diffstat 3 files changed, 36 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/.github/actions/screendump/action.yml
@@ -0,0 +1,26 @@
+name: 'screendump'
+description: "Upload failed syntax tests"
+runs:
+  using: "composite"
+  steps:
+    - name: Upload failed syntax tests
+      uses: actions/upload-artifact@v4
+      with:
+        # Name of the artifact to upload.
+        name: ${{ github.workflow }}-${{ github.job }}-${{ join(matrix.*, '-') }}-failed-syntax-tests
+
+        # A file, directory or wildcard pattern that describes what
+        # to upload.
+        path: |
+         ${{ 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
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -270,6 +270,9 @@ jobs:
           do_test() { sg audio "sg $(id -gn) '$*'"; }
           do_test make ${SHADOWOPT} ${TEST}
 
+      - if: ${{ !cancelled() }}
+        uses: ./.github/actions/screendump
+
       - name: Vim tags
         if: contains(matrix.extra, 'vimtags')
         run: |
@@ -396,6 +399,9 @@ jobs:
         run: |
           make ${TEST}
 
+      - if: ${{ !cancelled() }}
+        uses: ./.github/actions/screendump
+
   windows:
     runs-on: windows-2022
 
@@ -691,6 +697,9 @@ jobs:
             nmake -nologo -f Make_mvc.mak tiny VIMPROG=..\vim  || exit 1
           )
 
+      - if: ${{ !cancelled() }}
+        uses: ./.github/actions/screendump
+
       - name: Generate gcov files
         if: matrix.coverage
         shell: msys2 {0}
--- a/Filelist
+++ b/Filelist
@@ -10,6 +10,7 @@ SRC_ALL =	\
 		.github/ISSUE_TEMPLATE/feature_request.md \
 		.github/workflows/ci.yml \
 		.github/workflows/codeql-analysis.yml \
+		.github/actions/screendump/action.yml \
 		.github/workflows/coverity.yml \
 		.github/dependabot.yml \
 		.gitignore \