-
Notifications
You must be signed in to change notification settings - Fork 111
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
Multi AppSource Apps in one repo. #328
Comments
I found a solution
But this feels like cheating and this solution drasticly increases the build time. Whats the reasoning to only allow one appsource app per project? |
One project is one shippable entity, you can have multiple apps in one project, but they would be under one appsource app. Seems like a bug that you cannot have a multi-project repo with 2 appsource app projects - the above "solution" makes the root into a third project - and is likely not what you want. |
If you set appFolders to an empty array there seems to be no harm Is there anyway to eliminate wasted build time here? Maybe we can cache container images if all projects have the same requirements? Because if you capsulate your code you will often create bridge apps, which are independently deployable, but are still tightly coupled. |
There is no "good" way to get dependencies between projects within the same run. The following option is problematic
because this depends on the build to be successful before it can be used. So this will use the artifacts from the prevoius run and not the latest. After release this might be okay. But during development you will often make changes in both projects. So the only solution I see here is to create a repo for each app but this makes working with lots of apps very difficult. For us this would currently mean 30 additional repos. |
There are two solutions to this.
The first one will turn your build pipelines into multi-stage pipelines. The "right" solution is #1, but this one causes build time to shoot up. Over time (with up-coming performance improvements) this should go away again. |
Thanks, I'll give it a try. |
will add scenarios for these |
The build worked correctly, but I now get this error when delivering to nuget.
I'm not sure if this is still a bug in the nuget delivery or if this is caused by having the third project in base. |
I will check this. |
Looking at the first error first - created a multi-project repo with 2 appsource apps - I cannot repro the first issue. I can repro the issue with deliver to NuGet failing and will look at that. |
There is a fix for this issue on https://github.com/freddydk/AL-Go-AppSource@issue328 - if you want to try it. |
Thanks, the nuget issue is fixed. I've created a repo that reproduces the "error". But I now understand why this is happening. If you use multi project repos you need to run "Updated System files" if you add or remove projects. But this can't be done using a pr. Because the workflow will run on the old workflow which might have had to change. https://github.com/byndit/AL-Go-Issue138/pull/2/checks?check_run_id=10518386337 But this is probably just something you need to know. Because I'm not sure whats the solution for this. |
Correct - if you use UseProjectDependencies - you need to run Update AL-Go System Files if you change the dependency depth (with the workflow will tell you). |
Wrong - the error is not new, the consequence is new. |
It works now. Feel free to close the issue once this is merged into al-go. I'll then delete the repo again. |
Im trying to publish multiple apps in one repo to appsource.
You can only enter one productId per .AL-Go/settings.json. So I tried to make the repo multi project but now I get the following error.
Error: RunPipeline action failed. Error: For AppSource Apps with AppSourceCop enabled, you need to specify AppSourceCopMandatoryAffixes in .AL-Go\settings.json Stacktrace: at AnalyzeRepo, D:\a\_actions\microsoft\AL-Go-Actions\v2.2\AL-Go-Helper.ps1: line 539 at <ScriptBlock>, D:\a\_actions\microsoft\AL-Go-Actions\v2.2\RunPipeline\RunPipeline.ps1: line 79 at <ScriptBlock>, D:\a\_temp\d965a261-a9b2-4f1c-91d7-c20ad8eabeb2.ps1: line 1 at <ScriptBlock>, <No file>: line 1
https://github.com/microsoft/AL-Go-Actions/blob/53470cc1bf0524559a158d90b093170d7fb3ec76/AL-Go-Helper.ps1#L539
It seems like the analyse-repo part doesn't respect multi project AppSource Repos.
I'm doing something wrong here?
The text was updated successfully, but these errors were encountered: