apache / apache/iggy

ci/cd: Wasted time spent in GitHub Actions

Open
#4,090 1 comment 0 reactions 0 assignees View on GitHub
CI/CD 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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.