Download installApps and installTestApps as part of "Download Project Dependencies" #2101
Download installApps and installTestApps as part of "Download Project Dependencies" #2101aholstrup1 wants to merge 30 commits intomicrosoft:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request moves the downloading of apps specified in installApps and installTestApps settings from the RunPipeline action to the DownloadProjectDependencies action. This improves error detection and build reliability by downloading dependencies upfront before the build pipeline runs.
Changes:
- Added functionality to DownloadProjectDependencies action to download app files from URLs in installApps/installTestApps settings
- Removed URL validation and secret resolution logic from RunPipeline action
- Updated RELEASENOTES.md to document the new behavior
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| RELEASENOTES.md | Documents the new behavior where URL-based dependencies are downloaded during the DownloadProjectDependencies action |
| Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1 | Adds two new functions: Get-AppFileFromUrl for downloading files with retry logic, and DownloadDependenciesFromInstallApps for processing installApps/installTestApps settings |
| Actions/RunPipeline/RunPipeline.ps1 | Removes secret resolution and URL validation logic for installApps/installTestApps, now relies on JSON files from DownloadProjectDependencies |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Actions/DownloadProjectDependencies/DownloadProjectDependencies.Action.ps1
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
PSScriptAnalyzer found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
❔What, Why & How
Currently
Apps defined in the installApps and installTestApps settings can either refer to files in the file system or URLs to files. If a URL is defined, then the Runpipeline action will check that the URL is reachable and Run-ALPipeline (in BCContainerHelper) will download the apps.
installApps and installTestApps can also refer to local paths (either full paths to .app files, folders, paths with wildcards or even zip archives).
Proposed Change
We move the download of these apps to the "Download Project Dependencies" action. That way most dependencies should be downloaded to the runner before calling Run-ALPipeline. This action would still not resolve dependencies from NuGet. That's something we should add in the future.
For local paths, we will try to resolve the paths within AL-Go rather than relying on Run-ALPipeline to do it. That way this action should return a list of paths to .app files.
Related to AB#618073
✅ Checklist