awalsh128 / cache-apt-pkgs-action

Cache APT packages in GitHub Actions
Other
205 stars 35 forks source link

fix: apt cache performance #104

Closed stevenh closed 1 year ago

stevenh commented 1 year ago

Use a single call to apt-cache to reduce the time needed to lookup package versions.

Also:

Fixes #103

stevenh commented 1 year ago

In a simple test case with 7 packages this reduced the processing time from 17s to 4s for the cached case.

This makes it quicker to use this action than to install the packages natively, which previously wasn't the case.

stevenh commented 1 year ago

Thanks for the review @awalsh128 I believe I've addressed the feedback.

If you're happy with how it now looks I can do PR against develop, just wanted to update this one first to make sure I catch all the feedback.

stevenh commented 1 year ago

Quick nudge to see if we can get this one in @awalsh128

bonlime commented 1 year ago

@awalsh128 what stops this from being merged?

richarddd commented 1 year ago

Any update?

awalsh128 commented 1 year ago

Sorry for the really long wait. It has now been merged into master. I'll do a release today or tomorrow.

awalsh128 commented 1 year ago

This is now included in release v1.3.1.

Although it looks like it is causing 2 regressions on the CI.

The most critical is the multiline block one. If I can't resolve in a couple of days I will need to pull the change for now. Could you help diagnose the issue introduced with the latest change (verified it is in this PR)?

stevenh commented 1 year ago

This is now included in release v1.3.1.

Although it looks like it is causing 2 regressions on the CI.

The most critical is the multiline block one. If I can't resolve in a couple of days I will need to pull the change for now. Could you help diagnose the issue introduced with the latest change (verified it is in this PR)?

Could you describe how I can validate this, so I can investigate @awalsh128 ?

awalsh128 commented 1 year ago

The easiest to tackle is https://github.com/awalsh128/cache-apt-pkgs-action-ci/actions/runs/6697244906/job/18196712208 which tests that two package lists of different order should be the same in terms of a cache hit.

I think the issue here is that the returned normalized package list no longer sorts. Below is the difference now between the pre-hashed value.

xdot=1.2-2 rolldice=1.16-1build1 @ 6697244906-1-standard_workflow 1
rolldice=1.16-1build1 xdot=1.2-2 @ 6697244906-1-standard_workflow 1

BTW, received a report today where it is failing on the function. https://github.com/awalsh128/cache-apt-pkgs-action/issues/116 Isn't open source fun? 😆