Include failed test goldens as artifacts for easier test fixing on github actions

This commit is contained in:
David Dworken 2023-12-03 11:12:24 -08:00
parent 8b50807c1d
commit 072fe2409a
No known key found for this signature in database
2 changed files with 11 additions and 1 deletions

View File

@ -81,12 +81,18 @@ jobs:
# Add an extra short delay to allow datadog to flush metrics
sleep 300 # 5 minutes
- name: Archive test results
- name: Upload test results json
uses: actions/upload-artifact@v3
if: success() || failure()
with:
name: test-results-{{ matrix.os }}.json
path: /tmp/testrun.json
- name: Upload failed test goldens
uses: actions/upload-artifact@v3
if: success() || failure()
with:
name: test-goldens-{{ matrix.os }}
path: /tmp/test-goldens/
# - name: Setup tmate session
# if: ${{ failure() }}

View File

@ -370,6 +370,10 @@ func CompareGoldens(t testing.TB, out, goldenName string) {
}
}
if diff := cmp.Diff(string(expected), out); diff != "" {
if err := os.Mkdir("/tmp/test-goldens", os.ModePerm); err != nil {
log.Fatal(err)
}
require.NoError(t, os.WriteFile(path.Join("/tmp/test-goldens", goldenName), []byte(out), 0644))
if os.Getenv("HISHTORY_UPDATE_GOLDENS") == "" {
_, filename, line, _ := runtime.Caller(1)
t.Fatalf("hishtory golden mismatch for %s at %s:%d (-expected +got):\n%s\nactual=\n%s", goldenName, filename, line, diff, out)