Commit graph

39 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
Copilot 23602f4229
Add support for third-party PPA repositories via add-repository parameter (#173)
* Initial plan

* Add add-repository parameter support for third-party PPAs

Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>

* Add validation and complete PPA repository support implementation

Co-authored-by: awalsh128 <2087466+awalsh128@users.noreply.github.com>

* Remove accidentally committed log file and update .gitignore

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>
2025-09-30 01:06:22 -07:00
awalsh128 9f7a885e33 Support symlinks and their targets. 2025-08-29 21:40:34 -07:00
Khyber Sen 4c82c3ccdc
Remove GitHub URL shorteners (git.io) as they no longer work. (#164)
Fixes #163.
2025-07-07 20:15:12 -07:00
Bradley Scott 13d2226e13
Avoid using xargs when creating package tarballs (#136) 2025-02-04 10:08:04 -08:00
Andrew Walsh 44c33b32f8
Pull staging changes upstream. (#113)
* 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>
2023-10-30 11:12:50 -07:00
Steven Hartland 641f947ac2
fix: apt cache performance (#104)
* 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.
2023-10-11 08:07:11 -07:00
Andrew Walsh 135ee20306
Merge branch 'dev' into master 2023-03-23 23:51:02 -07:00
awalsh128 f5bcdd76d3 Use APT syntax for name version delimitation and not a colon. 2023-03-23 22:19:43 -07:00
awalsh128 971da5988a Standardize syntax, name casing and fix package versioning feature. 2023-03-23 20:20:24 -07:00
awalsh128 a644619d1f Enclose filenames in single quotes to capture literals #99 2023-03-13 21:24:13 -07:00
Pascal Roeleven bdc09286d1
Only install apt-fast from source if not present (#97)
* Revert "Don't install apt-fast from source (#96)"

This reverts commit 854bb539e1.

* Only install apt-fast from source if not present
2023-03-08 09:04:22 -08:00
Pascal Roeleven 854bb539e1
Don't install apt-fast from source (#96) 2023-03-06 06:54:18 -08:00
John Hughes 797d1a2f52
More robust checking of age of apt cache (#90) 2023-02-11 21:36:46 -08:00
awalsh128 9b3b2b590c Enclose tar files in quotes #79. 2023-01-02 16:49:35 -08:00
awalsh128 982de21c87 Fix execute bits. 2022-11-23 23:02:00 -08:00
Andrew Walsh 51678ad913
Execute installation scripts feature, debug mode, and permission denied fix. (#65)
* Execute installation scripts and debug mode features. (#64)

* Provide the ability to call Debian package manager installation scripts (i.e. `*.[preinst, postinst]`).
* Introduce a debug mode that runs the scripts in verbose mode and uploads the logs for retrieval.
* Updated README to reflect new features and provided more info on how to use the action versions.

* Dev (#66)

* Fix permission denied error.

* Fix permission denied error. (#51)

* Remove compression from file caching. (#53)

* Draft of postinst support from issue #44.

* Remove bad option.

* Removed extraneous line.

* Cover no packages edge case when writing manifest.

* Fix postinst bugs and add docs to lib.

* Made cache directory variable and more refinements to postinst.

* Update deprecated option.

https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

* Rollback accidental commit of new postinst feature.

* Minor edit ands full install script execution FR.

* Fix execute_install_scripts message to show the right param name.

* Fix param check.

* Minor fix to doc.

* Upload action logs for debugging.

* Make artifact names unique.

* Add debug option.

* Update description.

* Debug package list issue.

* Rollback 76128c60a1

* Revert outputs set behavior to see if it fixes outputs issue in dev.

* Restore updated outputs behavior. So strange it is working when I revert.

* Fix bugs in install script execution.

* Add error suppression on file testing.

* Debug feature.

* Link to the issue that started the postinst troubleshooting.

* Describe action version usage.

* Fix package outputs command.
2022-11-23 22:24:00 -08:00
Mickaël Schoentgen d93c95e39c
Skip apt-fast installation on cache hit (#61) 2022-11-15 07:45:14 -08:00
Andrew Walsh 91b541353e
Fix issues #36, #37, and minor refactors. (#40) (#41)
* Bump license year.
* Fix pre-existing dep bug in issue #36.
* Account for packages without deps.
* Fix bug in issue #37 by combining install and dep listing reads. Ensures only installed deps are cached.
* Fix bad log lines.
* Use apt-fast to show package information and remove CLI warning message.
* Switch to apt-cache for package verification and remove CLI warning message.
2022-08-02 21:14:51 -07:00
Andrew Walsh c5df606b25
Optimize installs with apt-fast and various minor cleanups. (#35)
* Fix cut regression.

Originally fixed in #17. This was reintroduced when master was sync'd to staging.

* Update pre_cache_action.sh

* Switch to CLI safe apt command.

Address concern in issue #23.

* Optimize installs with apt-fast and cleanup logging.
2022-07-23 17:06:17 -07:00
awalsh128 b61cf9a6f1 Copy from staging to dev. 2022-07-19 20:42:48 -07:00
Andrew Walsh 2719bca2f4
Merge branch 'dev' into staging 2022-06-03 21:04:43 -07:00
Andrew Walsh 17cdbf8735
Revert "Cache non explicitly listed packages" 2022-06-03 20:30:40 -07:00
awalsh128 9568dc9783 Change include command. 2022-03-26 12:48:16 -07:00
awalsh128 e68df30bd6 Experimental version. Cleaned up syntax and created common library functions. 2022-03-26 12:42:40 -07:00
Nate Bohman 6d622023ef
Also Cache Non-Explicitly Listed APT PKGs
Apt installs more packages than just those explicitly listed. This can
lead to issues of missing files when the cache is restored.
2022-03-18 09:39:17 -06:00
Nate Bohman a56b21237f
Check APT Package Versions
Make sure to keep the cache up to date as package versions change
upstream. Also, allow specific package versions to be selected.
2022-03-16 13:38:50 -06:00
awalsh128 b80ada0329 Move trailing comma for manifest list. 2021-10-22 00:16:17 -07:00
awalsh128 edd1138fdd Write out manifest. 2021-10-21 23:28:06 -07:00
awalsh128 6d2730c8bf Fix manifest location. 2021-10-21 22:01:57 -07:00
awalsh128 dec2761421 Remove blank line on reporting. 2021-10-21 21:30:49 -07:00
awalsh128 3742bed6fe Remove cache directory create now that it is done in pre cache. 2021-10-21 21:13:23 -07:00
awalsh128 e5a9854ee1 Consolidate steps, and make reporting less verbose. 2021-10-21 20:57:52 -07:00
awalsh128 ca95c0de72 Add better messaging. 2021-10-21 12:41:47 -07:00
awalsh128 9512f95182 Update APT package metadata on installs to avoid errors due to staleness. 2021-10-21 12:25:56 -07:00
awalsh128 08d1b85370 Add better diagnostics. 2021-10-16 21:45:24 -07:00
awalsh128 6c13cf414f Fail script on any error. 2021-10-16 21:17:55 -07:00
awalsh128 6dbaadfc1e Fix script syntax. 2021-10-16 11:34:14 -07:00
awalsh128 b07ee5cce8 Initial commit. 2021-10-13 21:11:27 -07:00