HodorNV / ALOps

ALOps
59 stars 24 forks source link

Question: Dependency handling with Nuget feeds & Incremental Compilation #811

Open ichladil opened 1 week ago

ichladil commented 1 week ago

I am evaluating the AL-Ops, and I would like to use the ALOpsAppCompiler@2 to batch compile the applications.

I am dealing with the following scenarios:

I have the following questions on this, that I did not found in the documentation or the sample builds:

Thanks ahead for the clarifications.

waldo1001 commented 3 days ago

I want to use the Nuget feeds for the dependency handling. It is now getting pretty standardized naming convention by Microsoft. Is it or will it be supported in ALOps in similar way it is in AL-Go?

We're adding nuget support, so yes, in the upcoming versions you'll be able to use nuget like AL-Go does.

I can download external packages from Nuget to some folder easily (using current bccontainehelper). However I was trying to use not well document parameter alcachepath and pointed the ALOpsAppCompiler to this directory and it did not take it. Where should I place these external dependencies so that the compiler takes these? Ideally if these can be in one folder for all the apps...

The alcachpath is something we didn't expect users to use, as our compiler-step tries to resolved all dependencies automatically. The only thing you should do is download the artifacts in the artifact directory.

Can you please send your logs (download logs from the failing pipeline)?

Incremental compilation - let's say that only 2 of 20 apps in the repository is changed. Will the ALOpsAppCompiler@2 batch compilation automatically handle compilation of only the changed apps since last build? And also does it check for the breaking changes?

No. ALOps cannot check anything git-wise. It has the context of one version of your code, which is the one you're running your pipeline on. However, if YOU can distinguish which apps were changed, you could set the target with the ´alsourcepath´ parameter. In my opinion, this is dangerous. The reason to have a mono-repo is to compile all, at all times. not doing that, is a partial build, which is to be avoided. But that's just my opinion.. .