microsoft / AL-Go

The plug-and-play DevOps solution for Business Central app development on GitHub
MIT License
270 stars 113 forks source link

Publish to AppSource - Skip projects without AppSourceProductId when publishing all projects (*) #1062

Open fvet opened 4 months ago

fvet commented 4 months ago

We have a multi-project repository with one library app (Core) - without AppSource listing - and several others apps / projects with an AppSource listing.

image

I would like to publish all projects / apps to AppSource at once, so using *''** in the Publish to AppSource action.

image

However, the github actions fails with below warning ...

Projects:
Core
Manufacturing_Calculation
Project_Manufacturing
SharePoint_Integration
Shopfloor_Manufacturing_Advanced
Shopfloor_Manufacturing_Basic
Project 'Core'
Analyzing releases https://api.github.com/repos/ESC-BV/bc-esc-appsource/releases
Downloading release 23.0.9, projects Core, type Apps
project 'Core'
AssetPatterns: 'Core-*-Apps-*.zip' | 'Core-Apps-*.zip'
https://api.github.com/repos/ESC-BV/bc-esc-appsource/releases/assets/1651[60](https://github.com/ESC-BV/bc-esc-appsource/actions/runs/8911563006/job/24473169608#step:5:62)221
'/home/runner/work/bc-esc-appsource/bc-esc-appsource/.artifacts/Core-main-Apps-23.0.152.0.zip'
Artifacts:
- Core-main-Apps-23.0.152.0
Applying settings from /home/runner/work/bc-esc-appsource/bc-esc-appsource/.github/AL-Go-Settings.json
Applying settings from /home/runner/work/bc-esc-appsource/bc-esc-appsource/Core/.AL-Go/settings.json
No settings found in /home/runner/work/bc-esc-appsource/bc-esc-appsource/.github/Publish To AppSource.settings.json
No settings found in /home/runner/work/bc-esc-appsource/bc-esc-appsource/Core/.AL-Go/Publish To AppSource.settings.json
No settings found in /home/runner/work/bc-esc-appsource/bc-esc-appsource/Core/.AL-Go/fvet.settings.json
Analyzing repository
Installing and importing Az.Storage.
Attempting authentication to https://api.partner.microsoft.com/.default using clientCredentials...
Authenticated as app ***
AL-Go action ran: Deliver Telemetry Correlation Id: 15d3a4ad-cd15-4f1c-b10d-d866949fdca1
Error: Unexpected error when running action. Error Message: AppSourceProductId needs to be specified in Core/.AL-Go/settings.json in order to deliver to AppSource, StackTrace: at <ScriptBlock>, /home/runner/work/_actions/microsoft/AL-Go-Actions/v5.0/Deliver/Deliver.ps1: line 420 <- at <ScriptBlock>, /home/runner/work/_temp/8c852d05-6[62](https://github.com/ESC-BV/bc-esc-appsource/actions/runs/8911563006/job/24473169608#step:5:64)3-443e-b347-a6c99cf079bc.ps1: line 4 <- at <ScriptBlock>, <No file>: line 1
Error: Process completed with exit code 1.

... probably because the library app (Core) does not have an AppSourceProductId.

It would be nice if the Publish to AppSource action could skip apps without AppSourceProductId (or at maybe indicate in a setting that the app is a library app) instead of failing.

Alternative would be to run the action by specifying only the AppSource projects, but this is a bit cumbersome.

Manufacturing_Calculation,Project_Manufacturing,SharePoint_Integration,Shopfloor_Manufacturing_Advanced,Shopfloor_Manufacturing_Basic,...

freddydk commented 3 months ago

Looks like a small but nice feature.