Replies: 10 comments
-
I've considered this feature as well. And I came to the conclusion it would be easiest to use the github cache action to cache the docker image as a tar. The only limitation is that you can only cache one image per repo. Because the size limitation of 10GB per repo doesn't allow more then one image. Or am I missing something? |
Beta Was this translation helpful? Give feedback.
-
@jonaswre - I tested that - that is way too slow. |
Beta Was this translation helpful? Give feedback.
-
BTW - the TAR is 14Gb |
Beta Was this translation helpful? Give feedback.
-
In my previous company, we spend quite some time finetuning performance/cost ratio of our build agents. We used Azure Devops there, which has capability of Azure VM scale sets. AzureDevops controls the scale set and creates or destroy agent VM. VM was based on image (ephemeral) I generate. Within this image, I would rep-download/cache all the needed stuff: agent/bccontainerhelper/7zip/base image/& most used bc artifacts. I would refresh base image on regular basis. Image size was a challenge there . Smaller image you use, faster VM is created. So, you need to be smart what to cache & what not. We configured VM scale set with min=0, max=15, and cleanup time 30min. This allowed us to use good machines and still save money. Plus, it highly improved waiting time (previously we used multiple machines that run 24/7). If I remember correctly, it tpok ~5 minutes to source an agent. We also tried using caching (similar to GitHub Actions Cache) mechanism, but it was way too slow as well. Ironically, it's faster to spin entire VM :) I believe similar approach could be used with Github as well. They do provide few ways for autosacalling. VM on AWS, and kubernetes. Just an idea. When it comes to GitHubPackages, they also come with a limits. Not sure if those applies for MS. Nevertheless, those docker images are not small. I think it would be worth to investigate it first. |
Beta Was this translation helpful? Give feedback.
-
Thanks, |
Beta Was this translation helpful? Give feedback.
-
btw - on autoscale - I want to wait for this: github/roadmap#555 to see if that is something that becomes easily usable by AL-Go |
Beta Was this translation helpful? Give feedback.
-
@freddydk should have expected that you had already tried this. Great news, I wont waste any time on this. Interesting that pulling from the registry is faster then from the cache.
Okay... Then I don't now what I was looking at I didn't tar it, I thought It was more like 8. |
Beta Was this translation helpful? Give feedback.
-
Just curious if you making/planning any progress in this area? Asking, since we are starting to feel pain due to slow build pipelines. Wondering, if i should start fine tuning it, or some great improvements are just around the corner? |
Beta Was this translation helpful? Give feedback.
-
Which of these steps have been realised at this point? We want to take some steps to speed up our Builds - especially since we mostly have PTE applications with a given BC version, so there isn't really a good reason to rebuild the image. |
Beta Was this translation helpful? Give feedback.
-
I'm experiencing a lot of random timeout. Some days, downloading artifacts will go nicely, some others, I will face many time out and failed build... The DetermineArtifactUrl always takes more than 5 mns. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Use GitHub Packages for docker images for CI/CD
Use GitHub Actions Cache for improved build performance with hosted agents
Build jobs, which are set to not upgrade and not run tests can be done very quickly with a filesonly cached container image
When using UseProjectDependencies, we could allow all build jobs of dependent apps to build without upgrading and running tests
Some additional info:
Beta Was this translation helpful? Give feedback.
All reactions