ci/cd: Wasted time spent in GitHub Actions
- Dominant language
- Rust
- Stars
- 4.9k
- Forks
- 432
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 173
Description
Some of the time spent in Github actions pre-merge.yml ( the PR build ) is wasted, there are some possible quick wins:
1. Java workflow runs all tests, then re-runs all the tests again to calculate coverage. This could be one step which executes all the tests and collects the coverage, or two steps with second step using the first step's results instead of re-running the tests.
2. Each of the 7 SDK jobs restore the large (20GB decompressed) rust cache, just to rebuild the same server. If this was done as a shared dependency it could be done once and shared across the SDKs. This doesn't save critical path time but would save a lot of actions-minutes.
3. Caching is disabled for the Java workflow which was done to stay under the 10GB cache limit. The post-merge coverage writes an instrumented Rust build into the shared cache key, and the pre-merge builds can't use it so they rebuild regardless. setting `save-cache: false` on that coverage job would stop it being written to cache which might give enough headroom to re-enable the Java cache.
I'm not advocating for changing anything right now, CI/CD stability is critical, but raising some things to investigate further when things are quieter.
Contributor guide
Research direction
Start with the pre-merge.yml workflow and compare the Java test and coverage steps with the seven SDK jobs that restore the Rust cache. Check how the post-merge coverage job writes its instrumented Rust build and whether save-cache: false would allow Java caching; done means an agreed CI change reduces duplicate test execution or cache work without harming stability.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, java, rust
- Domain
- build-system, ci-cd
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100