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

binary archive: check recipes against archives? #533

Open
sbixl opened this issue Oct 2, 2023 · 3 comments
Open

binary archive: check recipes against archives? #533

sbixl opened this issue Oct 2, 2023 · 3 comments

Comments

@sbixl
Copy link

sbixl commented Oct 2, 2023

Hi, is it somehow possible to check the current state of the recipes against the artifacts stored in a binary archiv? The result of this "check" should be show if the recipes are still in sync (so no new packages must be uploaded) or if a new run of the Jenkins/CI shall be triggered. This will help among other things not so experienced users to see what effects their changes have.

@jkloetzke
Copy link
Member

No, there is currently no such command available. What comes close is to do a bob (build|dev) --download=forced -f /path/to/descendant-or-self@package which will try to download the package and all dependencies. Note that this might not catch any tools that were forwarded. And it will fail on the first package. It will also actually download all the packages and probably waste a good amount of disk space.

Note that the recipes are not the only possible reason for mismatches with the artifact repository. Overrides (SCM, environment) and source code changes will have an impact too. Depending on the recipes and what has been uploaded to the artifact repository it might always be required to checkout some of the source code...

@sbixl
Copy link
Author

sbixl commented Oct 21, 2023

We use bob in addition to Jenkins within GitLab CI/CD. It would be nice to have the possibility to check the state of the recipes vs. the artifacts stored in the archive to prevent building e.g. all tools from scratch. It would be good if you could define a job that checks this and then cancels all the following dependent jobs. If the job fails this, on the one hand, is the indication that something may have been misconfigured in the recipes or the indication that the archive must be updated (in our case the Jenkins must be triggered manually because it is reponsible to build and upload the tools).

@jkloetzke
Copy link
Member

I guess this needs to be implemented in a dedicated command. Anything else will either be incomplete or have too much overhead. It may also have an advantage to have such a command for the following cases:

  • Check if checkout predictions are correct to analyze/fix the "restarting build due to wrong predictions" errors
  • Verify which mirror provides the required artifacts

The details still need to be fleshed out, though...

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

No branches or pull requests

2 participants