Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to create a cache for a different job #226

Open
fidsamurai-crelio opened this issue Sep 15, 2023 · 7 comments
Open

Ability to create a cache for a different job #226

fidsamurai-crelio opened this issue Sep 15, 2023 · 7 comments

Comments

@fidsamurai-crelio
Copy link

What feature do you want to see added?

We have a use case where we build 15 modules on react, the steps and codebase are the same, only the name of the module changes, we run all 15 in parallel using the build jobs declarative step.

What I'd like to request is the ability to run a "cache generator" pipeline which will use the steps like yarn install to create the cache and then save it for use by another job.

Upstream changes

No response

@jonesbusy
Copy link
Contributor

jonesbusy commented Feb 19, 2024

I have same requirement here. For cache storage optimization and don't multiply identical caches accros several instances

One job is creating cache (it's a main Jenkins instance). Other instances can consume (read-only) cache.

Ideally we should be able to override the

@repolevedavaj
Copy link
Contributor

I am thinking if it would make sense to introduce a new step or even a new plugin which is able to handle that in a better way. More similar to the Github cache action but more flexibility. The current api gets more and more complicated and having a completely different step in the same plugin is strange imho.. what do you think @jonesbusy ?

@jonesbusy
Copy link
Contributor

Is right that the cache steps is complicated.

It could be a new plugin or new step I don't have strong opinion about that.

The annoying point is that you will ask users to migrate but at least start from a clean codebase that address most issues we have with jobcacher

@repolevedavaj
Copy link
Contributor

I will check how we could achieve that. Maybe there is an elegant way :)

@jonesbusy
Copy link
Contributor

Perhaps, I think we are not far to use jobcacher at large scale. My pain point is now that I need to optimize the storage.

I did it already per job using skipSave and skipRestore parameter depending on the branch, but now I would like to do it across job and even instances (by setting a read-only ACL on specific folders of the S3 storage)

@repolevedavaj
Copy link
Contributor

A solution to the initial problem here is to allow storing a cache instance-wide and then add this location as an additional candidate when restoring. I assume this will not solve your issue @jonesbusy as you want to use a cache across multiple instances. I don't know whether it makes sense to handle that in the plugin. Maybe we could allow specifying a global readonly cache item storage?

@jonesbusy
Copy link
Contributor

Yes that's correct. Overidding the prefix and job name is not enough. We need to restore or save on different location.

So perhaps an optional global configuration for a general read only cache could work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants