Commit graph

209 commits

Author SHA1 Message Date
awalsh128 c24c2b9e97 fix: write logs under the home cache directory and await artifact upload
Instruments opened its log files at the relative path cache-apt-pkgs/
before that directory existed, so the action crashed at startup with
ENOENT. It also pointed artifact uploads there while Cache uses
~/cache-apt-pkgs. Resolve both with a shared resolveCacheDir helper and
create the directory before opening the logs.

The artifact upload was also never awaited, so a failed upload became an
unhandled rejection. Await it and report failures as a warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:22:55 -08:00
awalsh128 71288a5baf chor: remove stale file 2026-11-05 17:33:38 -08:00
awalsh128 f7f4e53584 ci: bundle the action with rollup and upload it for integration jobs
The integration jobs download an action-bundle-<sha> artifact that
nothing built or uploaded, so all of them failed on their first step.
v2 also had no bundle: action.yml runs dist/index.js, and an action has
no node_modules at runtime.

- Add rollup.config.mjs, which bundles the tsc output (dist/src) into a
  self-contained dist/index.js. npm run build now runs it.
- Fix the setup action, which never built: with if_no_artifact_found:
  ignore the download step always succeeds, so check found_artifact.
  Download cached builds into dist/, and overwrite the build artifact
  since several jobs in a run can build it.
- Upload action.yml and the bundle as action-bundle-<sha> from
  setup-and-cache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 17:31:39 -08:00
Andrew Walsh 16d0f3489d
ci: fix linters, action pin check and npm audit failures (#232)
- eslint: parse scripts/**/*.{ts,mts} with the TypeScript parser.
  Only src and test were configured, so the scripts failed to parse.
- action-deps-pinned: run the --scan check over .github. The step passed
  ./action.yml, which the script doesn't accept, and action.yml has no
  uses: dependencies to check anyway.
- npm audit fix for the high severity advisories in production
  dependencies (undici, brace-expansion) and @actions/artifact 6.3.1.
  The remaining moderate glob/minimatch advisories need a breaking
  @actions/artifact downgrade, and the audit step only fails on high.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 17:26:06 -08:00
Andrew Walsh 9c915961c7
build: install ts-apt from GitHub instead of a local path (#231)
* build: install ts-apt from GitHub instead of a local path

package.json pointed ts-apt at file:../ts-apt, which only exists on a
dev machine, so every test suite in CI failed with "Cannot find package
'ts-apt'". ts-apt isn't on npm, so pin it to a commit on GitHub. Its
prepare script builds dist on install.

The dev:tsapt:link script used --save, which is how the local path got
committed. Use --no-save so linking a local ts-apt doesn't change
package.json, and restore with npm ci on unlink.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: clear GITHUB_RUN_ID when testing the run ID fallback

GitHub Actions always sets GITHUB_RUN_ID, so the fallback test failed
once CI could run the tests at all.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:53:27 -08:00
Andrew Walsh 1008cb540c
fix: archive installed package files on cache miss (#229)
Manifest.from built every entry with an empty file list and buildFileList
was never called, so tar.create was handed no paths. node-tar throws "no
paths specified to add to archive" for that, so every cache miss failed
before saving.

The runner now builds each manifest entry from buildFileList and passes
the manifest to archiveAndSave. Packages with no files (e.g.
metapackages) are skipped on archive and on restore since tar can't
create an empty archive. Manifest.from is removed.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:34:09 -08:00
Andrew Walsh 79721099c8
fix: restore cached packages in apt install order (#228)
Restore extracted archives sorted by filename, so packages whose install
scripts depend on files from other packages could break. Restore now
follows the entry order in manifest_all.json, which comes from the apt
install output, and fails explicitly when an archive is missing.

Refs #196

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:26:07 -08:00
awalsh128 0bada9deed Add local act CI runner and document @latest-v2
Add an .actrc, runner Dockerfile, push event payload, and
scripts/dev/act_ci.sh to run ci.yml jobs locally with nektos/act.
The script refuses --bind/--reuse in .actrc, since a bound checkout
runs as root and rewrites ownership and modes in the working tree.

Document the @latest-v2 version label in the README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 09:16:44 -07:00
awalsh128 fd8f3d3fd1 stuff 2026-08-01 12:33:44 -07:00
awalsh128 c2de292527 stuff 2026-07-25 16:08:50 -07:00
awalsh128 55278329ef fix dev dependencies 2026-07-03 20:52:21 -07:00
awalsh128 b3e03779c4 remove docs, add best practices scripts and fix CI with v1 action tests 2026-07-03 20:43:59 -07:00
awalsh128 3f70aca939 do stuff 2026-06-30 00:17:51 -07:00
awalsh128 1d921eeba9 fixed errors and restoring as a pure port from v1 2026-06-28 15:56:51 -07:00
awalsh128 42b6b9694b Draft of v2 2026-06-28 13:27:41 -07:00
Takahiro Ueda a605dbde2a
Add empty_packages_behavior option to handle empty package list (#154)
Available options: 'error' (default), 'warn' and 'ignore'.
2025-08-16 19:34:34 -07:00
awalsh128 2c09a5e66d Binary for https://github.com/awalsh128/cache-apt-pkgs-action/pull/160 2025-08-10 17:15:27 -07:00
Sébastien Morais 9a146f43d1
fix: skip invalid lines (#160) 2025-08-10 17:11:12 -07:00
Mike Tesch cbdbab28e6
Automatically append the OS architecture to the cache key (#150) 2025-08-10 13:24:23 -07:00
Andrew Walsh 23ccb675d9
Update README.md 2025-07-07 20:37:29 -07:00
Andrew Walsh db548ecc55
Update README.md 2025-07-07 20:35:48 -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
awalsh128 7ca5f46d06 Fix exec error. 2025-03-16 14:39:03 -07:00
Andrew Walsh 2330cb6dfb
Add support for virtual packages and break out APT logic into common library. (#155)
* Add support for virtual packages and break out APT logic into common library.
* Update binaries from commit 128de25ccb
2025-03-16 13:05:35 -07:00
Andrew Walsh 128de25ccb
Add support for virtual packages and break out APT logic into common library. (#153) 2025-03-16 12:35:38 -07:00
Bradley Scott 13d2226e13
Avoid using xargs when creating package tarballs (#136) 2025-02-04 10:08:04 -08:00
Ülgen Sarıkavak d1a184e480
Update actions/checkout versions in README (#148) 2025-02-03 11:42:51 -08:00
Jacco Broeren dfe9c8af34
fix: remove timestamps from loglines (#146) 2025-01-23 20:00:46 -08:00
Max Schwenk 5902b33ae2
Upgrade to cache v4 (#140) 2025-01-09 11:16:31 -08:00
Andrew Walsh f2fc6d1af4 Explicitly don't fail on error in library calls (required for conditonals) 2024-03-03 14:39:27 -08:00
Oliver Kopp a6c3917cc9
Add arm64 binary (#127)
* Add support for arm64 APT in Go apt-query binary.
2024-03-01 12:59:14 -08:00
Andrew Walsh 2555a377df
Bump force reload to accommodate update on cache action save version. #122 2024-02-13 21:42:01 -08:00
Hadrien G 75ab37ec52
Use matching versions of actions/cache actions (#123)
Needed to finish migration to node20 + probably wiser overall to use matching versions of the caching actions.
2024-02-13 21:38:36 -08:00
Andrew Walsh a9d925863b
Bump global version of cache.
Force cache reload for new version of cache action.
2024-02-13 11:36:57 -08:00
Daniel Possenriede 5c74a020dc
Bump actions/cache/restore to v4 (#120) 2024-02-01 13:13:10 -08: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 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
Andrew Walsh 6f9e6a86db
Update README.md 2023-10-11 08:11:43 -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
awalsh128 1850ee53f6 Documentation for versioning support. 2023-03-24 04:50:32 -07:00
Andrew Walsh 135ee20306
Merge branch 'dev' into master 2023-03-23 23:51:02 -07:00
awalsh128 0a4812359d Revert package existence test. 2023-03-23 22:58:47 -07:00
awalsh128 6d3c7590b1 Test apt-cache show command wrt versioning. 2023-03-23 22:33:59 -07:00
awalsh128 f5bcdd76d3 Use APT syntax for name version delimitation and not a colon. 2023-03-23 22:19:43 -07:00
awalsh128 cdad971850 Fix broken function calls. 2023-03-23 20:50:29 -07:00
awalsh128 971da5988a Standardize syntax, name casing and fix package versioning feature. 2023-03-23 20:20:24 -07:00
awalsh128 bd5455834e Convert action to APT version syntax. 2023-03-13 21:43:46 -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 946776e670
Clean cache directory after use (#95) 2023-03-06 06:56:37 -08:00