AL-Go/Actions/CalculateArtifactNames
Freddy Kristiansen 86c522104b
Add Page Scripting support to AL-Go for GitHub - part 1 (#1247)
This PR adds pagescripting functionality to CI/CD in AL-Go for GitHub.

### CI/CD

In CI/CD you will be able to define which page scripting tests you want
to execute after a successful build to verify the build. This is
controlled by 3 project settings:
- `pageScriptingTests` should be an array of page scripting test file
specifications, relative to the AL-Go project. Examples of file
specifications: `recordings/my*.yml` (for all yaml files in the
recordings subfolder matching my*.yml), `recordings` (for all *.yml
files in the recordings subfolder) or `recordings/test.yml` (for a
single yml file)
- `doNotRunPageScriptingTests` can force the pipeline to NOT run the
page scripting tests specified in pageScriptingTests. Note this setting
can be set in a [workflow specific settings
file](#where-are-the-settings-located) to only apply to that workflow
- `restoreDatabases` should be an array of events, indicating when you
want to start with clean databases in the container. Possible events
are: `BeforeBcpTests`, `BeforePageScriptingTests`, `BeforeEachTestApp`,
`BeforeEachBcptTestApp`, `BeforeEachPageScriptingTest`

CI/CD (and test) workflows will have new build artifacts created:

- `PageScriptingTestResults` is a JUnit test results file with all
results combined.
- `PageScriptingTestResultDetails` are the detailed test results
(including videos) when any of the page scripting tests have failures.
If the page scripting tests succeed - the details are not published.

### TO:DO
- [x] Update release notes
- [x] Update settings documentation
- [x] Revert to BcContainerHelper preview in AL-Go-Helper.ps1

### What's next

Workshop scenarios

Part 2 is adding a visual results viewer - this requires injecting a
custom playwright-reporter, which the current bc-replay module doesn't
support yet

Part 3 is adding pagescripting to deployment - allowing people to run
the same or other page scripting tests after deployment to QA
environment. This part could also allow running AL tests and BCPT tests
in QA environments after deployment as a validation of the deployment.

---------

Co-authored-by: freddydk <freddydk@users.noreply.github.com>
Co-authored-by: Maria Zhelezova <43066499+mazhelez@users.noreply.github.com>
2024-10-28 13:03:02 +01:00
..
CalculateArtifactNames.ps1 Add Page Scripting support to AL-Go for GitHub - part 1 (#1247) 2024-10-28 13:03:02 +01:00
README.md Add Page Scripting support to AL-Go for GitHub - part 1 (#1247) 2024-10-28 13:03:02 +01:00
action.yaml Add Page Scripting support to AL-Go for GitHub - part 1 (#1247) 2024-10-28 13:03:02 +01:00

README.md

Calculate Artifact Names

Calculate Artifact Names for AL-Go workflows

INPUT

ENV variables

Name Description
Settings env.Settings must be set by a prior call to the ReadSettings Action

Parameters

Name Required Description Default value
shell The shell (powershell or pwsh) in which the PowerShell script in this action should run powershell
project Yes Name of the built project or . if the repository is setup for single project
buildMode Yes Build mode used when building the artifacts
suffix A suffix to add to artifacts names. Note: if a suffix is specified, the current date will be added extra Build version

OUTPUT

ENV variables

none

OUTPUT variables

Name Description
ThisBuildAppsArtifactsName Artifact name for apps being built in the current workflow run
ThisBuildDependenciesArtifactsName Artifact name for dependencies of apps being built in the current workflow run
ThisBuildTestAppsArtifactsName Artifact name for test apps being built in the current workflow run
AppsArtifactsName Artifacts name for Apps
PowerPlatformSolutionArtifactsName Artifacts name for PowerPlatform Solution
DependenciesArtifactsName Artifacts name for Dependencies
TestAppsArtifactsName Artifacts name for TestApps
TestResultsArtifactsName Artifacts name for TestResults
BcptTestResultsArtifactsName Artifacts name for BcptTestResults
PageScriptingTestResultsArtifactsName Artifacts name for PageScriptingTestResults
PageScriptingTestResultDetailsArtifactsName Artifacts name for PageScriptingTestResultDetails
BuildOutputArtifactsName Artifacts name for BuildOutput
ContainerEventLogArtifactsName Artifacts name for ContainerEventLog
BuildMode Build mode used when building the artifacts