[wp-trac] [WordPress Trac] #52660: Check the NPM cache configuration on GitHub Actions
WordPress Trac
noreply at wordpress.org
Thu Feb 25 20:47:42 UTC 2021
#52660: Check the NPM cache configuration on GitHub Actions
------------------------------+------------------------------
Reporter: johnbillion | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Build/Test Tools | Version:
Severity: normal | Resolution:
Keywords: dev-feedback | Focuses:
------------------------------+------------------------------
Comment (by desrosj):
In [changeset:"50436" 50436]:
{{{
#!CommitTicketReference repository="" revision="50436"
Build/Test Tools: Prevent the NPM/Composer caches in GitHub Actions from
snowballing.
The `actions/cache` GitHub action uses a `key` input to find the desired
cache in storage. Currently, this is defined as a combination of the
operating system being used, the software being cached (NPM or Composer),
PHP version (Composer only), and a hash of the relevant lock file.
The `cache` action also supports a `restore-keys` input, which is an
ordered list of keys to use for restoring a cache if no cache hit occurred
for the specified key.
However, this means that every time a lock file is updated, the cache is
being recreated by first restoring a previous one (when available), and
then installing new versions of dependencies on top of that. This results
in old, unused versions of dependencies never being removed from the
cache.
In this change, the `restore-keys` are removed. This will force a new,
fresh cache to be generated when the desired `key` is not matched. In
testing, this results in a ~40% reduction in cache size when compared to
the latest successful workflow runs. Since there is no way to manually
flush the cache in GHA, the benefits of this change will not be seen until
the `package-lock.json` and `composer.lock` files are updated, or the
cache at the desired key is evicted.
Props johbillion.
See #52660.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/52660#comment:4>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list