lib.sh disables errexit, so failures from package resolution, apt-fast
install, and repository setup were ignored and an incomplete install could
be cached. Check each of these explicitly and abort with a distinct exit
code, and verify every requested package is installed before caching.
- Report virtual packages with no providers (e.g. python on 22.04) with a
clear error instead of a mangled "Reverse=Provides:" package (#166).
- Stop reporting each apt_query error twice.
- Guard logging.Debug against an uninitialized logger.
- Add an abort helper to lib.sh and use it for all abort sites.
- Add distribute.sh build-committed-binaries / check-committed-binaries and
apt_query.srchash so PR CI fails when the committed binaries are stale
(#166, #218). Release and committed builds share build_apt_query.
- Rebuild the committed apt_query binaries.
- Make the expected-failure tests actually fail when the action succeeds,
and add regression tests for #166 and #221.
Fixes#166Fixes#221
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Updated variable expansions to use double quotes for better safety and to prevent word splitting.
- Replaced `ls` with `find` in cache operations to handle non-alphanumeric filenames more robustly.
- Enhanced array handling in scripts by using `${*:N}` syntax for concatenation.
- Improved readability and consistency in conditional checks by using `[[ ... ]]` instead of `[ ... ]`.
- Added comments for clarity on specific operations and shellcheck directives.
* Initial plan
* Fix test workflows to download artifacts and use local action
- Add needs: [build_binaries] to all test jobs that use the action
- Replace remote action references with local (uses: ./)
- Add checkout step where missing
- Add artifact download and distribute directory setup before action usage
- This ensures binaries built by build_binaries job are available when tests run
Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>
1. The logic for listing the files to be cached was using `&&`s between
the listing of the package files, the preinst script and postinst script.
Therefore if there wasn't a preinst script, a postinst script wasn't
checked for.
2. get_install_script_filepath was being passed an empty root file path
so it would never find any files.
Resolves: #194
* Bump actions/cache off of Node 20
* Bump actions/upload-artifact off of Node 20
---------
Co-authored-by: Sebastian P <241632094+immoseb@users.noreply.github.com>
* Initial plan
* Fix ls error when no tar files exist in cache restore
Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>
* Pull dev upstream to staging. (#112)
* Use awk to enclose filename in single quotes tar #99
* Add null field separator so filenames don't get broken up.
* Move upload logs up in the action sequence so it captures data before it gets deleted.
* Fix awk (#109)
---------
Co-authored-by: sn-o-w <cristian.silaghi@mozilla.ro>
* Fix awk delimiter.
Pull in fix by @sn-o-w in d0ee83b497 mentioned in issue #99
* Swap out Bash based APT query logic for Golang version. (#117)
* First version of a Golang version of command handling in general. (#118)
---------
Co-authored-by: sn-o-w <cristian.silaghi@mozilla.ro>
* Pull dev upstream to staging. (#112)
* Use awk to enclose filename in single quotes tar #99
* Add null field separator so filenames don't get broken up.
* Move upload logs up in the action sequence so it captures data before it gets deleted.
* Fix awk (#109)
---------
Co-authored-by: sn-o-w <cristian.silaghi@mozilla.ro>
* Fix awk delimiter.
Pull in fix by @sn-o-w in d0ee83b497 mentioned in issue #99
---------
Co-authored-by: sn-o-w <cristian.silaghi@mozilla.ro>
* fix: apt cache performance
Use a single call to apt-cache to reduce the time needed to lookup
package versions.
Also:
* Added millisecond details to log timing so slow operations can be more
easily identified.
* Perform apt update before determining package versions.
Fixes#103
* chore: descriptive variable names and use log_err
Added the review feedback, updating variable names to be more
descriptive and using log_err where appropriate.