diff --git a/.github/workflows/coder.yaml b/.github/workflows/coder.yaml index a5bb412ebc67e..4772af329eb5e 100644 --- a/.github/workflows/coder.yaml +++ b/.github/workflows/coder.yaml @@ -338,8 +338,16 @@ jobs: else echo ::set-output name=cover::false fi - set -x gotestsum --junitfile="gotests.xml" --jsonfile="gotestsum.json" --packages="./..." --debug -- -parallel=8 -timeout=3m -short -failfast $COVERAGE_FLAGS + ret=$? + if ((ret)); then + # Eternalize test timeout logs because "re-run failed" erases + # artifacts and gotestsum doesn't always capture it: + # https://github.com/gotestyourself/gotestsum/issues/292 + echo "Checking gotestsum.json for panic trace:" + grep -A 999999 'panic: test timed out' gotestsum.json + fi + exit $ret - uses: actions/upload-artifact@v3 if: success() || failure() @@ -407,7 +415,17 @@ jobs: terraform_wrapper: false - name: Test with PostgreSQL Database - run: make test-postgres + run: | + make test-postgres + ret=$? + if ((ret)); then + # Eternalize test timeout logs because "re-run failed" erases + # artifacts and gotestsum doesn't always capture it: + # https://github.com/gotestyourself/gotestsum/issues/292 + echo "Checking gotestsum.json for panic trace:" + grep -A 999999 'panic: test timed out' gotestsum.json + fi + exit $ret - uses: actions/upload-artifact@v3 if: success() || failure()