-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid using xargs when creating package tarballs #136
base: master
Are you sure you want to change the base?
Conversation
@awalsh128 May we ask for a review here? 😅 For me, the code looks good! |
@bscott-zebra Do I need to recreate the cache? I tried the action at koppor/plantuml#41: Output at https://github.com/koppor/plantuml/actions/runs/10921258797/job/30312933717?pr=41
Action: - uses: bscott-zebra/cache-apt-pkgs-action@bdb5bbaae8f11b3e4e63cf78e303ac1519dcff7f
with:
packages: graphviz inkscape
version: 1.0
execute_install_scripts: true |
Even with version increase, it does not work.
|
@koppor Yes, the problem was on the cache creation side of things, so a new cache file would have to be created after using the fixed version of this action. Your subsequent version increase did this. But, your first test on the restored package is to run Can you try your workflow again, but with the |
@bscott-zebra Thank you for the hint! That was a "leftover" from debugging. Removed. Works. Thank you! 🎉 |
Sorry for the extremely long delay; been struggling maintaining this repo. I am always open to have co-maintainers. 😄 I will incorporate this into a release sometime this week. If you could just quickly confirm the issue is still applicable with latest. |
No problem, regarding the delay. The beauty of github is that it allows easy use of forks in the meantime. 😄 I had a quick look at the current |
Fix for this issue: #110
xargs
was being used to runtar
to create each package tarball. Butxargs
has a default--max-chars
limit (per command it will run) of 128KiB (assuming the system ARG_MAX is significantly larger than this). For packages that contain a large number of files, this limit is exceeded, and the argument list is split into multiple tar runs. Since the-c
option is used to create a new tar archive each run, only the files passed into the last execution would wind up in the resulting tar file.With this change, the tar file list is now being passed via tar's
--files-from
option, using process substitution, there-by avoiding the above mentioned limit, and simplifying tarball creation as well.