Browse Source

ci: upload test artifacts (#42925)

* Upload test-artifacts directory

* Rename test artifacts directory to avoid conflicts

* Update .gitignore

* Upload test artifacts

* Update .gitignore

* Update move-artifacts.sh

* Update artifacts.ts

* Update pipeline-segment-electron-test.yml

* Make output less noisy

* reduce artifact image size
Sam Maddock 9 months ago
parent
commit
c7709747d0

+ 8 - 1
.github/workflows/pipeline-segment-electron-test.yml

@@ -187,10 +187,17 @@ jobs:
             runuser -u builduser -- xvfb-run script/actions/run-tests.sh script/yarn test --runners=main --trace-uncaught --enable-logging --files $tests_files
           fi
         fi
+    - name: Upload Test Artifacts
+      if: always() && !cancelled()
+      uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808
+      with:
+        name: test_artifacts_${{ env.ARTIFACT_KEY }}
+        path: src/electron/spec/artifacts
+        if-no-files-found: ignore
     - name: Wait for active SSH sessions
       if: always() && !cancelled()
       run: |
         while [ -f /var/.ssh-lock ]
         do
           sleep 60
-        done
+        done

+ 2 - 1
spec/.gitignore

@@ -1 +1,2 @@
-node_modules
+node_modules
+artifacts

+ 7 - 0
spec/lib/screen-helpers.ts

@@ -167,11 +167,18 @@ export class ScreenCapture {
     } while (Date.now() < expiration);
 
     if (!gotExpectedResult) {
+      // Limit image to 720p to save on storage space
+      if (process.env.CI) {
+        const width = Math.floor(Math.min(frame.getSize().width, 720));
+        frame = frame.resize({ width });
+      }
+
       // Save the image as an artifact for better debugging
       const artifactName = await createArtifactWithRandomId(
         (id) => `color-mismatch-${id}.png`,
         frame.toPNG()
       );
+
       throw new AssertionError(
         `Expected color at (${point.x}, ${point.y}) to ${
           matchIsExpected ? 'match' : '*not* match'