Cache external images in integration tests
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 11.5k
- Forks
- 1.4k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 53
Description
### What problem are you trying to solve?
One potential way of speeding up our integration tests might be to cache external dependencies. When discussing https://github.com/linkerd/linkerd2/issues/7403 with @alpeb, we noticed certain tests that rely on external images (such as rabbitmq, emojivoto and so on) tend to take longer to complete.
Same conclusion was sort of reached in https://github.com/linkerd/linkerd2/issues/7538#issuecomment-1006539192 too. Emojivoto in tracing takes quite a long time to spin up. We could perhaps lower these times if we can cache the images ahead of time instead of pulling them in.
### How should the problem be solved?
Cache external images that we use throughout our integration tests. Might be similar to how we do our caching for linkerd images:
https://github.com/linkerd/linkerd2/blob/main/.github/actions/docker-build/action.yml.
Luckily, the cache size was bumped to 10GB 🤞🏻
### Any alternatives you've considered?
N/A
### How would users interact with this feature?
_No response_
### Would you like to work on this feature?
maybe
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading .github/actions/docker-build/action.yml and reviewing the integration tests that pull external images such as RabbitMQ and Emojivoto. Define completion as caching the external images used by those tests before they run, with the integration tests completing successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions
- Domain
- ci-cd, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100