Commit graph

8 commits

Author SHA1 Message Date
Rob Taylor 5bddecf9cd Fix dpkg not knowing about packages after cache restore
After cache restore, dpkg had no record of the installed packages because:
1. Only preinst/postinst scripts were cached from /var/lib/dpkg/info/,
   missing .list, .md5sums, .conffiles, and other metadata files
2. The dpkg status database (/var/lib/dpkg/status) was never updated

This meant dpkg -s, apt list --installed, and anything checking package
state would not see the restored packages.

Fix:
- Cache all /var/lib/dpkg/info/<package>.* files (not just install scripts)
- Save each package's dpkg status entry to a .dpkg-status file
- On restore, append status entries to /var/lib/dpkg/status (skipping
  packages that are already registered)

Adds tests verifying dpkg -s reports packages as installed after both
fresh install and cache restore.

Co-developed-by: Claude Code v2.1.58 (claude-opus-4-6)
2026-03-10 18:30:37 +00:00
Rob Taylor f6d423e255 Add in-repo action integration tests
Bring the integration tests from the separate cache-apt-pkgs-action-ci
repo into this repo. Tests now use `uses: ./` to test the local checkout
directly, eliminating the need for cross-repo dispatch events.

Tests cover:
- Core workflow: install, restore, cache invalidation, package ordering
- Error handling: empty packages, missing packages, invalid version
- Regression tests: issues #36, #37, #72, #76, #79, #81, #84, #89, #98, #106
- Special cases: multi-arch cache keys, virtual packages

Changes from the external CI tests:
- Uses `uses: ./` instead of `uses: awalsh128/cache-apt-pkgs-action@master`
- Updated checkout to actions/checkout@v4
- Made version-list assertions resilient (grep for expected packages
  rather than exact string match, since dependency versions change
  with Ubuntu updates)
- Improved error-case verification (check outcome != failure rather
  than only running on failure)
- Triggers on push to master/dev/staging and on pull requests

Co-developed-by: Claude Code v2.1.58 (claude-opus-4-6)
2026-03-10 17:55:01 +00:00
Andrew Walsh 6460a33c29
First version of a Golang version for APT package querying. (#118) (#119)
* 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>
2023-12-22 10:28:03 -08:00
Andrew Walsh 276bbdc9f3
Update issue templates 2022-11-23 22:13:12 -08:00
awalsh128 b61cf9a6f1 Copy from staging to dev. 2022-07-19 20:42:48 -07:00
awalsh128 1372e9e2e7 Publish push event for master too. 2021-10-17 13:06:35 -07:00
awalsh128 7c507492e5 Update publish conditions. 2021-10-16 10:19:02 -07:00
awalsh128 b07ee5cce8 Initial commit. 2021-10-13 21:11:27 -07:00