cache
cache | upload-artifact | |
---|---|---|
45 | 29 | |
5,017 | 3,678 | |
0.7% | 1.2% | |
8.0 | 6.0 | |
22 days ago | about 1 month ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cache
-
Reverse Engineering the GHA Cache to Improve Performance
Since we launched this last year, GitHub released a v2 of their internal cache API [0], based on Twirp [1] of all things, so we adapted to that. Interestingly that Twirp service also receives Actions artifacts, though we have not intercepted those today given that you likely still want them to appear in the GitHub UI / be accessible from the GitHub API.
[0] https://github.com/actions/cache/discussions/1510
[1] https://github.com/twitchtv/twirp
-
3 ways to speed up CI [GitHub Actions] that you can do immediately!
Use the official actions/cache to implement the cache process.
- Cache from GitHub Actions breaking change
-
Speed up Kamal deploys in GitHub Actions
Since GitHub offers a cache storage back-end supported by Docker, we use the gha cache type so that the cache storage is as close to our runners as possible. The mode=max option instructs Docker to cache even the intermediate build layers, not only those exported to the final image. And we also give our build image some (arbitrary) name.
-
Building Efficient Node.js Workflows in GitHub Actions: Leveraging Caching and Modular Job Structures
We can use another amazing action provided by GitHub, actions/cache to cache our dependencies from our first job run and use that cache for subsequent jobs.
-
GitHub Actions could be so much better
> with no persistent storage
There's https://github.com/actions/cache though?
-
Optimizing GitHub Actions Performance: Enhance Workflows with Caching
Use Cache Actions: GitHub Actions provides cache actions that simplify caching implementation. The @actions/cache JavaScript library is a popular choice for managing caching in workflows. It offers flexible options for storing and retrieving cache artifacts based on keys, scopes, and paths.
-
Speeding up GitHub Actions with npm cache
GitHub maintain a set of repos called actions. One of which is called cache.
-
How I Sliced Deployment Times to a Fraction and Achieved Lightning-Fast Deployments with GitHub Actions
By utilizing the actions/cache action action, we implemented a strategy to store and retrieve dependencies, preventing redundant installations.
-
Use GitHub Actions to Make Your GitHub Profile Dynamic
I do think it's good practice to enable caching, such that your script doesn't hit RubyGems / pip / npm / etc every time it runs.
That way at least the automation activity stays entirely within the GitHub / Azure network.
It looks like you can do that for Ruby by adding this:
https://github.com/actions/cache/blob/master/examples.md#rub...
- uses: ruby/setup-ruby@v1
upload-artifact
-
The Pain That Is GitHub Actions
I have a small gripe that I think exemplifies a bigger problem. actions/upload-artifact strips executable permissions from binaries (1). The fact they fucked this up in the first place, and six years later haven't fixed it, gives me zero confidence in the team managing their platform. And when I'm picking a CI/CD service, I want reliability and correctness. GH has neither.
When it takes all of a day to self host your own task runner on a laptop in your office and have better uptime, lower cost, better performance, and more correct implementations, you have to ask why anyone chooses GHA. I guess the hello-world is convincing enough for some people.
(1) https://github.com/actions/upload-artifact/issues/38
- Why am I getting "Used 100% of GitHub Storage" after deleting all Artifacts?
- Breaking change on GH upload artifact
-
ArtiPACKED: Hacking Giants Through a Race Condition in GitHub Actions Artifacts
Github's response was pretty bad. They changed the upload-artifacts workflow to no longer include hidden files _in a minor release_ and that broke thousands of workflows that required hidden files.
Github issue with angry comments: https://github.com/actions/upload-artifact/issues/602
- Upcoming breaking change: Hidden Files will be excluded by default
-
Learning GitHub Actions in a Simple Way
upload-artifact
-
GitHub Actions for Jar file deployment
Here, the concept of "upload" is a little confusing. What the GitHub action upload-artifact does is to "copy" the jar file to a publicly accessible folder.
-
CI/CI deploy a static website to AWS S3 bucket through Github Actions
The content of the build destination folder folder needs is saved and transferred to the following jobs in the workflow. We do this with the Github actions actions/upload-artifact
- You've used 100% of included services for GitHub Storage
-
Building project docs for GitHub Pages
The action for uploading the artifact doesn't do too much, but it takes care of all the nuance around GitHub Pages artifacts specifically. You can view the action's source here. It will tar the path (provided by the with option) and then call the upload artifact action. The artifact's name is github-pages and has a 1 day expiration. This artifact has the name and format required for the deploy action. It all just works (so far).
What are some alternatives?
act - Run your GitHub Actions locally 🚀
jacoco-badge-generator - Coverage badges, and pull request coverage checks, from JaCoCo reports in GitHub Actions
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
build-push-action - GitHub Action to build and push Docker images with Buildx
checkout - Action for checking out a repo
codecov-action - GitHub Action that uploads coverage to Codecov :open_umbrella: