When a unit test fails during CI checks, the corresponding GitHub
Actions reports and collected btlayer-*.log files do not contain
any failure details. For example, we see
FAIL: tests/testRock
# FAIL: 1
but are missing critical details like
stub time| FATAL: Ipc::Mem::Segment::create failed to
shm_open(/squid-0-tr_rebuild_versions.shm): (63) File name too long
Now, GitHub Actions collect all log files, including unit test logs. For
the `ubuntu-24.04,gcc,default` build target, adding more logs increases
artifacts zip archive size by about 100 KB (from ~200KB to ~300KB).
If `test-builds.sh` succeeds, there are no unit test logs to collect
because all unit test logs are erased when `make distcheck` (initiated
by `test-builds.sh`) reaches its `make distclean` step. If a unit test
fails, then that cleaning step is not reached, (successful and failed)
unit test logs are preserved and are now added to CI artifacts.
uses: actions/upload-artifact@v4
with:
name: build-logs-${{ matrix.os }}-${{ matrix.compiler.CC }}-${{ matrix.layer.nick }}
- path: btlayer-*.log
+ path: "**/*.log"
CodeQL-tests:
uses: actions/upload-artifact@v4
with:
name: build-logs-${{ matrix.os }}-${{ matrix.compiler.CC }}-${{ matrix.layer.nick }}
- path: btlayer-*.log
+ path: "**/*.log"
macos:
runs-on: macos-14
uses: actions/upload-artifact@v4
with:
name: build-logs-macos
- path: btlayer-*.log
+ path: "**/*.log"
freebsd:
strategy:
uses: actions/upload-artifact@v4
with:
name: build-logs-freebsd-${{ matrix.osversion }}
- path: btlayer-*.log
+ path: "**/*.log"
openbsd:
runs-on: ubuntu-24.04
uses: actions/upload-artifact@v4
with:
name: build-logs-openbsd
- path: btlayer-*.log
+ path: "**/*.log"