Summary
PR #6682 (f194260070, "always upload build logs for CPN runs") added CI steps to linux_cpn.yml, macosx_cpn.yml, and win_cpn-64.yml that:
- Collected
build/**/*.log, CMakeOutput.log, CMakeError.log, etc. into a logs/ directory after the build step
- Uploaded these as a separate
<artifact_name>-logs artifact with if: always() and 30-day retention, so logs were available even on a failed build
- Had
tools/build-companion.sh aggregate per-step error output into a build-summary.log via output_error_log()
PR #6435 ("WASM modules based simulation in Companion") replaced these three OS-specific workflows with a unified companion.yml + .github/actions/build_companion/action.yml, and dropped this log-collection/upload logic in the process.
Current state
.github/actions/build_companion/action.yml's "Archive production artifacts" step only uploads ${{github.workspace}}/output
- On a build/packaging failure,
output/ is empty (the package file is never copied there), so no log artifact is produced at all
tools/build-companion.sh no longer writes a build-summary.log or copies CMake logs anywhere persistent
- The only diagnostic output available on failure is the truncated stdout in the Actions log itself
Impact
When a Companion build fails (e.g. during CMake configure, compile, or packaging), there's no way to retrieve the full build log without re-running CI with ad-hoc tail/diagnostic patches to build-companion.sh. This significantly slows down debugging CI-only failures.
Suggested fix
Restore the always-on log artifact upload from #6682 in the new unified action:
- In
.github/actions/build_companion/action.yml, add a "Collect build logs" step (if: always()) that gathers build/**/*.log (and CMakeOutput.log/CMakeError.log) into a logs/ directory
- Add an "Archive build logs" step (
if: always()) uploading logs/ as a <artifact_name>-logs artifact (e.g. 30-day retention)
- Optionally restore
build-companion.sh's build-summary.log aggregation for a single consolidated log file
Found while investigating an unrelated AppImage packaging failure on Linux Companion (validation of EdgeTX/build-edgetx#42).
Summary
PR #6682 (
f194260070, "always upload build logs for CPN runs") added CI steps tolinux_cpn.yml,macosx_cpn.yml, andwin_cpn-64.ymlthat:build/**/*.log,CMakeOutput.log,CMakeError.log, etc. into alogs/directory after the build step<artifact_name>-logsartifact withif: always()and 30-day retention, so logs were available even on a failed buildtools/build-companion.shaggregate per-step error output into abuild-summary.logviaoutput_error_log()PR #6435 ("WASM modules based simulation in Companion") replaced these three OS-specific workflows with a unified
companion.yml+.github/actions/build_companion/action.yml, and dropped this log-collection/upload logic in the process.Current state
.github/actions/build_companion/action.yml's "Archive production artifacts" step only uploads${{github.workspace}}/outputoutput/is empty (the package file is never copied there), so no log artifact is produced at alltools/build-companion.shno longer writes abuild-summary.logor copies CMake logs anywhere persistentImpact
When a Companion build fails (e.g. during CMake configure, compile, or packaging), there's no way to retrieve the full build log without re-running CI with ad-hoc
tail/diagnostic patches tobuild-companion.sh. This significantly slows down debugging CI-only failures.Suggested fix
Restore the always-on log artifact upload from #6682 in the new unified action:
.github/actions/build_companion/action.yml, add a "Collect build logs" step (if: always()) that gathersbuild/**/*.log(andCMakeOutput.log/CMakeError.log) into alogs/directoryif: always()) uploadinglogs/as a<artifact_name>-logsartifact (e.g. 30-day retention)build-companion.sh'sbuild-summary.logaggregation for a single consolidated log fileFound while investigating an unrelated AppImage packaging failure on Linux Companion (validation of EdgeTX/build-edgetx#42).