We are testing out a new default method to checkout code (blobless clones) which aims to speed up checking out source code for all users who use our built-in checkoutcommand.
If you experience issues with cloning your repo when using the built-in checkout step, please comment on this thread or email oran@circleci.com.
My team’s builds started mysteriously and consistently failing today, with no obvious code-related or config-related cause. This is the only thing in CircleCI’s changelog and the only reason I suspect it to be the cause is that the timing matches up.
I’m seeing a similar issue where jobs have started randomly failing around a step that uses git diff. I assume it’s caused by this change since parts of commit history would be missing.
Is there a way to disable this option in config.yml to verify it’s the cause?
Questions - why blobless and why change the default action?
I’m going to be in the minority as I use self-hosted runners, but this allows me to persist a copy of the git repo on the runner host with the result that the full git clone performed by the checkout command is an update rather than a full checkout for each future job run. As none of my repos have blobs the change does not impact my current usage, but for the future it would seem better to be able to choose how checkout operates, rather than just having a hardcoded selection.
If I were using the standard runner environment with a large repo I would likely be asking why you have not gone with a treeless clone as the local repos produced would be deleted at the end of the job anyway.
It has been a long time since I have had to worry about the checkout step, but in the past when trying to understand what actions were being performed it was very easy as the executed shell script was included in the output of the checkout step shown in the GUI.
At some point, this must have been dropped, but I am not aware of any other way to see what actions the script is performing. Obscuring such information may make the output look cleaner, but it does not do anything to help understand what is going on if there is an issue.
Looking at past logs this detail was lost in the last 2 months.
We have noticed that sonar cloud steps are failing in our builds while using blobless clones. This is a huger blocker for us as sonar is a gatekeeper for getting our PRs merged across projects.
Sonar community is starting to be aware of this issue, but they do not have any permanent solutions yet.
If you look at the step output from any workflow that is older than about 3 months you will be able to see the script run for the checkout step and so duplicate it.
I do not know why, but the latest update to the checkout step has also removed this detail as I noted in a post a few weeks ago.
I can help out with disabling blobless checkout for you. Send the name of your organization and the project(s) you’d like us to turn this off for to oran@circleci.com. Thanks!
@sebastian-lerner In my organization, few repositories are checking-out using blobless clone, what would be the reason for that ? blobless clone should apply to all repositories in organization right ?
We also are experiencing the same problem. Our SonarScanner step has started failing consistently complaining about a “Missing blob”.
Please, could you provide a solution to this problem in your documentation? Or through a parameter of the checkout command?
I can help out with disabling blobless checkout for you. Send the name of your organization and the project(s) you’d like us to turn this off for to oran@circleci.com. Thanks!
I can help out with disabling blobless checkout for you. Send the name of your organization and the project(s) you’d like us to turn this off for to oran@circleci.com. Thanks!
Hi,
thanks for the offer but we just want to disable it for a single job, not for a project.
In the end we fixed it by re-fetching all blobs after the checkout command.
I really thank you for offering help but my suggestion was more general. Instead of an ad-hoc solution, I would suggest to provide a parameter to the command that allows enabling/disabling that behaviour.
Ah, I understand now. Thanks for the context. We’re in the process of investigating better ways to enable/disable this feature now - we’ll update the thread when there’s something new to report.
Hey ! We experience issue using sentry/cli to detect git commit tree since you release the new checkout version. The sentry/cli is not able to parse and detect all commits from latest deployment now…
Is it possible to rollback our org to the previous version? It’s a huge blocker for us…
It could be good to have option parameters to setup this “Speeding up code checkout” mode and make the previous one as the default.
Thank you all again for your feedback! In our search for balancing the gains of blobless checkout against the challenges identified so far, we think we have a solution and would appreciate your feedback.