action #138029

Updated by tinita 7 months ago

## Motivation 

 Whilst a `wheels.yaml` is in place a request to GitHub is made for each reference to a GitHub-hosted repo in that file every time a job is prepared. This can amount to several hundreds of attempts daily even with a single repo. This is why we should look into caching wheel repositories, i.e. tiny git repositories, which are commonly stored on github. So I suggest we research a bit what are current best practices how to handle that. Maybe there are generic solutions and we don't want to reinvent the wheel. 

 ## Acceptance criteria 
 * **AC1**: When there are no changes to a wheel repository we know how openQA tests on workers could access the content of wheels from a location within the openQA infrastructure without needing to reclone from github 
 * **AC2:** When there are changes to a wheel repository we know how openQA tests would be able to access to most recent code version from wheel repos 

 ## Suggestions 
 * Read #60272 
 * Conduct a web research how to "cache github repositories" 
 * Look into "git worktrees" for repositories and branches, see #60272 
 * Look into how git uses efficient hardlinks when cloning locally, e.g. from a cache directory to the pool of the openQA worker 
 * Look into the existing caching mechanisms used for needles and test distributions (rsync) 
 * Optional: Build a prototype 

 ## Out of scope 
 * Manage storage capacity long-term / clean-up service