From ddd94d3927e14dff2b45f9907f245513d202d8f4 Mon Sep 17 00:00:00 2001 From: Maria Zhelezova <43066499+mazhelez@users.noreply.github.com> Date: Wed, 24 Jan 2024 15:56:15 +0100 Subject: [PATCH 1/5] Fix getting version from a release branch name (#890) After https://github.com/microsoft/AL-Go/commit/bf1e8f35935cb9a2361a40e47b6bf3a2ec0dad9c#diff-8b3bc43d627973d00981a6cb79e54160281d51f7a4a7aee41e856160e9841b24 getting the release branch version from the branch name was broken. --- Actions/Github-Helper.psm1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Actions/Github-Helper.psm1 b/Actions/Github-Helper.psm1 index 7d9d85025..a3209c85a 100644 --- a/Actions/Github-Helper.psm1 +++ b/Actions/Github-Helper.psm1 @@ -538,7 +538,8 @@ function GetLatestRelease { if ($isReleaseBranch) { # If release branch, get the latest release from that the release branch # This is given by the latest release with the same major.minor as the release branch - $semVerObj = SemVerStrToSemVerObj -semVerStr $ref.SubString($releaseBranchPrefix.Length) -allowMajorMinorOnly + $releaseVersion = $ref -split '/' | Select-Object -Last 1 # Get the version from the release branch + $semVerObj = SemVerStrToSemVerObj -semVerStr $releaseVersion -allowMajorMinorOnly $latestRelease = $releases | Where-Object { $releaseSemVerObj = SemVerStrToSemVerObj -semVerStr $_.tag_name $semVerObj.Major -eq $releaseSemVerObj.Major -and $semVerObj.Minor -eq $releaseSemVerObj.Minor From 4c5bfbca1adebbf997f63882df4b9074a19aac1d Mon Sep 17 00:00:00 2001 From: Freddy Kristiansen Date: Thu, 25 Jan 2024 13:19:46 +0100 Subject: [PATCH 2/5] Update action references to use node 20 (#892) + Move preview release notes Co-authored-by: freddydk --- .github/workflows/CI.yaml | 2 +- .github/workflows/CleanupTempRepos.yaml | 4 ++-- .github/workflows/Deploy.yaml | 2 +- .github/workflows/E2E.yaml | 14 +++++------ .github/workflows/jekyll-gh-pages.yml | 8 +++---- .github/workflows/powershell.yaml | 2 +- .../DownloadProjectDependencies/action.yaml | 2 +- RELEASENOTES.md | 10 +++++--- .../workflows/AddExistingAppOrTestApp.yaml | 2 +- .../AppSource App/.github/workflows/CICD.yaml | 24 +++++++++---------- .../.github/workflows/CreateApp.yaml | 2 +- .../CreateOnlineDevelopmentEnvironment.yaml | 4 ++-- .../workflows/CreatePerformanceTestApp.yaml | 2 +- .../.github/workflows/CreateRelease.yaml | 12 +++++----- .../.github/workflows/CreateTestApp.yaml | 2 +- .../.github/workflows/Current.yaml | 4 ++-- .../DeployReferenceDocumentation.yaml | 8 +++---- .../workflows/IncrementVersionNumber.yaml | 2 +- .../.github/workflows/NextMajor.yaml | 4 ++-- .../.github/workflows/NextMinor.yaml | 4 ++-- .../.github/workflows/PublishToAppSource.yaml | 6 ++--- .../workflows/PublishToEnvironment.yaml | 6 ++--- .../.github/workflows/PullRequestHandler.yaml | 2 +- .../.github/workflows/Troubleshooting.yaml | 2 +- .../workflows/UpdateGitHubGoSystemFiles.yaml | 2 +- .../.github/workflows/_BuildALGoProject.yaml | 24 +++++++++---------- .../workflows/AddExistingAppOrTestApp.yaml | 2 +- .../.github/workflows/CICD.yaml | 24 +++++++++---------- .../.github/workflows/CreateApp.yaml | 2 +- .../CreateOnlineDevelopmentEnvironment.yaml | 4 ++-- .../workflows/CreatePerformanceTestApp.yaml | 2 +- .../.github/workflows/CreateRelease.yaml | 12 +++++----- .../.github/workflows/CreateTestApp.yaml | 2 +- .../.github/workflows/Current.yaml | 4 ++-- .../DeployReferenceDocumentation.yaml | 8 +++---- .../workflows/IncrementVersionNumber.yaml | 2 +- .../.github/workflows/NextMajor.yaml | 4 ++-- .../.github/workflows/NextMinor.yaml | 4 ++-- .../workflows/PublishToEnvironment.yaml | 6 ++--- .../.github/workflows/PullRequestHandler.yaml | 2 +- .../.github/workflows/Troubleshooting.yaml | 2 +- .../workflows/UpdateGitHubGoSystemFiles.yaml | 2 +- .../.github/workflows/_BuildALGoProject.yaml | 24 +++++++++---------- Tests/CheckForUpdates.Action.Test.ps1 | 2 +- Tests/YamlSnippet.txt | 4 ++-- 45 files changed, 136 insertions(+), 132 deletions(-) diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml index 4fafaf69e..b96152d5d 100644 --- a/.github/workflows/CI.yaml +++ b/.github/workflows/CI.yaml @@ -15,7 +15,7 @@ jobs: Test: runs-on: [ ubuntu-latest ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run Tests run: | diff --git a/.github/workflows/CleanupTempRepos.yaml b/.github/workflows/CleanupTempRepos.yaml index c9cf4491c..a9081bd97 100644 --- a/.github/workflows/CleanupTempRepos.yaml +++ b/.github/workflows/CleanupTempRepos.yaml @@ -18,7 +18,7 @@ jobs: outputs: githubOwner: ${{ steps.check.outputs.githubOwner }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check secrets id: check @@ -52,7 +52,7 @@ jobs: runs-on: [ ubuntu-latest ] needs: [ Check ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Remove Temp Repositories run: | diff --git a/.github/workflows/Deploy.yaml b/.github/workflows/Deploy.yaml index b4703e274..2db6ba29b 100644 --- a/.github/workflows/Deploy.yaml +++ b/.github/workflows/Deploy.yaml @@ -52,7 +52,7 @@ jobs: } } - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Deploy env: diff --git a/.github/workflows/E2E.yaml b/.github/workflows/E2E.yaml index e9a5d2764..37603ef9c 100644 --- a/.github/workflows/E2E.yaml +++ b/.github/workflows/E2E.yaml @@ -39,7 +39,7 @@ jobs: maxParallel: ${{ steps.check.outputs.maxParallel }} githubOwner: ${{ steps.check.outputs.githubOwner }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check secrets id: check @@ -87,7 +87,7 @@ jobs: perTenantExtensionRepo: ${{ steps.setup.outputs.perTenantExtensionRepo }} appSourceAppRepo: ${{ steps.setup.outputs.appSourceAppRepo }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} @@ -105,7 +105,7 @@ jobs: releases: ${{ steps.Analyze.outputs.releases }} scenarios: ${{ steps.Analyze.outputs.scenarios }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} @@ -173,7 +173,7 @@ jobs: if: github.event.inputs.runScenarios == 'true' strategy: ${{ fromJson(needs.Analyze.outputs.scenarios) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} @@ -204,7 +204,7 @@ jobs: if: github.event.inputs.runTestMatrix == 'true' strategy: ${{ fromJson(needs.Analyze.outputs.testruns) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} @@ -250,7 +250,7 @@ jobs: if: github.event.inputs.runUpgradeTests == 'true' strategy: ${{ fromJson(needs.Analyze.outputs.releases) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} @@ -293,7 +293,7 @@ jobs: needs: [ Check, SetupRepositories, TestAlGo, TestAlGoUpgrade, Scenario ] if: always() && (!Cancelled()) && (needs.SetupRepositories.result == 'Success') && (needs.TestAlGo.result == 'Success' || needs.TestAlGo.result == 'Skipped') && (needs.TestAlGoUpgrade.result == 'Success' || needs.TestAlGoUpgrade.result == 'Skipped') && (needs.Scenario.result == 'Success' || needs.Scenario.result == 'Skipped') steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml index a607fb5c6..9271cf620 100644 --- a/.github/workflows/jekyll-gh-pages.yml +++ b/.github/workflows/jekyll-gh-pages.yml @@ -24,16 +24,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Pages - uses: actions/configure-pages@v2 + uses: actions/configure-pages@v4 - name: Build with Jekyll uses: actions/jekyll-build-pages@v1 with: source: . destination: ./_site - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 deploy: environment: @@ -44,6 +44,6 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 with: preview: true diff --git a/.github/workflows/powershell.yaml b/.github/workflows/powershell.yaml index 54baae5aa..ff817ab7d 100644 --- a/.github/workflows/powershell.yaml +++ b/.github/workflows/powershell.yaml @@ -19,7 +19,7 @@ jobs: name: PSScriptAnalyzer runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Run PSScriptAnalyzer uses: microsoft/psscriptanalyzer-action@v1.1 diff --git a/Actions/DownloadProjectDependencies/action.yaml b/Actions/DownloadProjectDependencies/action.yaml index 72b7aa9dc..d21fbcd01 100644 --- a/Actions/DownloadProjectDependencies/action.yaml +++ b/Actions/DownloadProjectDependencies/action.yaml @@ -30,7 +30,7 @@ runs: using: composite steps: - name: Download artifacts from current build - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: ${{ github.workspace }}/.dependencies diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e2e941d16..a7412b2a4 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,6 +2,12 @@ Note that when using the preview version of AL-Go for GitHub, we recommend you Update your AL-Go system files, as soon as possible when informed that an update is available. +### New Settings +- `UpdateALGoSystemFilesEnvironment`: The name of the environment that is referenced in job `UpdateALGoSystemFiles` in the _Update AL-Go System Files_ workflow. See [jobs..environment](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment) for more information. Currently, only setting the environment name is supported. + +### Issues +- Support release branches that start with releases/ + ### Build modes AL-Go ships with Default, Translated and Clean mode out of the box. Now you can also define custom build modes in addition to the ones shipped with AL-Go. This allows you to define your own build modes, which can be used to build your apps in different ways. By default, a custom build mode will build the apps similarly to the Default mode but this behavior can be overridden in e.g. script overrides in your repository. @@ -9,7 +15,6 @@ AL-Go ships with Default, Translated and Clean mode out of the box. Now you can ### New Settings - `templateSha`: The SHA of the version of AL-Go currently used -- `UpdateALGoSystemFilesEnvironment`: The name of the environment that is referenced in job `UpdateALGoSystemFiles` in the _Update AL-Go System Files_ workflow. See [jobs..environment](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment) for more information. Currently, only setting the environment name is supported. ### New Actions - `DumpWorkflowInfo`: Dump information about running workflow @@ -25,7 +30,6 @@ If false, the templateSha repository setting is used to download specific AL-Go - App artifacts for version 'latest' are now fetched from the latest CICD run that completed and successfully built all the projects for the corresponding branch. - Issue 824 Utilize `useCompilerFolder` setting when creating an development environment for an AL-Go project. - Issue 828 and 825 display warnings for secrets, which might cause AL-Go for GitHub to malfunction -- Support release branches that start with releases/ ### New Settings @@ -40,7 +44,7 @@ If false, the templateSha repository setting is used to download specific AL-Go - **footer** = Footer for the documentation site. (Default: Made with...) - **defaultIndexMD** = Markdown for the landing page of the documentation site. (Default: Reference documentation...) - **defaultReleaseMD** = Markdown for the landing page of the release sites. (Default: Release reference documentation...) - - *Note that in header, footer, defaultIndexMD and defaultReleaseMD you can use the following placeholders: {REPOSITORY}, {VERSION}, {INDEXTEMPLATERELATIVEPATH}, {RELEASENOTES}* + - *Note that in header, footer, defaultIndexMD and defaultReleaseMD you can use the following placeholders: {REPOSITORY}, {VERSION}, {INDEXTEMPLATERELATIVEPATH}, {RELEASENOTES}* ### New Workflows - **Deploy Reference Documentation** is a workflow, which you can invoke manually or on a schedule to generate and deploy reference documentation using the aldoc tool, using the ALDoc setting properties described above. diff --git a/Templates/AppSource App/.github/workflows/AddExistingAppOrTestApp.yaml b/Templates/AppSource App/.github/workflows/AddExistingAppOrTestApp.yaml index 91420c899..92f55c4d3 100644 --- a/Templates/AppSource App/.github/workflows/AddExistingAppOrTestApp.yaml +++ b/Templates/AppSource App/.github/workflows/AddExistingAppOrTestApp.yaml @@ -44,7 +44,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/CICD.yaml b/Templates/AppSource App/.github/workflows/CICD.yaml index d3dbb389a..64f8a7856 100644 --- a/Templates/AppSource App/.github/workflows/CICD.yaml +++ b/Templates/AppSource App/.github/workflows/CICD.yaml @@ -47,7 +47,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -118,7 +118,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main @@ -172,10 +172,10 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -186,7 +186,7 @@ jobs: - name: Setup Pages if: needs.Initialization.outputs.deployALDocArtifact == 1 - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Build Reference Documentation uses: microsoft/AL-Go-Actions/BuildReferenceDocumentation@main @@ -195,14 +195,14 @@ jobs: artifacts: '.artifacts' - name: Upload pages artifact - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-pages-artifact@v3 with: path: ".aldoc/_site/" - name: Deploy to GitHub Pages if: needs.Initialization.outputs.deployALDocArtifact == 1 id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 Deploy: needs: [ Initialization, Build ] @@ -215,10 +215,10 @@ jobs: url: ${{ steps.Deploy.outputs.environmentUrl }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -265,10 +265,10 @@ jobs: name: Deliver to ${{ matrix.deliveryTarget }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -302,7 +302,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/CreateApp.yaml b/Templates/AppSource App/.github/workflows/CreateApp.yaml index d79dc1aac..f1117377a 100644 --- a/Templates/AppSource App/.github/workflows/CreateApp.yaml +++ b/Templates/AppSource App/.github/workflows/CreateApp.yaml @@ -54,7 +54,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml b/Templates/AppSource App/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml index 096f545d6..5984a0b2e 100644 --- a/Templates/AppSource App/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml +++ b/Templates/AppSource App/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml @@ -53,7 +53,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -108,7 +108,7 @@ jobs: deviceCode: ${{ needs.Initialization.outputs.deviceCode }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main diff --git a/Templates/AppSource App/.github/workflows/CreatePerformanceTestApp.yaml b/Templates/AppSource App/.github/workflows/CreatePerformanceTestApp.yaml index 83dfdc161..7ee713fc4 100644 --- a/Templates/AppSource App/.github/workflows/CreatePerformanceTestApp.yaml +++ b/Templates/AppSource App/.github/workflows/CreatePerformanceTestApp.yaml @@ -60,7 +60,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/CreateRelease.yaml b/Templates/AppSource App/.github/workflows/CreateRelease.yaml index 978865587..85c562bb1 100644 --- a/Templates/AppSource App/.github/workflows/CreateRelease.yaml +++ b/Templates/AppSource App/.github/workflows/CreateRelease.yaml @@ -76,7 +76,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -192,7 +192,7 @@ jobs: target_commitish: ${{ steps.analyzeartifacts.outputs.commitish }} - name: Create release - uses: actions/github-script@v6 + uses: actions/github-script@v7 id: createrelease env: bodyMD: ${{ steps.createreleasenotes.outputs.releaseNotes }} @@ -224,7 +224,7 @@ jobs: fail-fast: true steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main @@ -251,7 +251,7 @@ jobs: Invoke-WebRequest -UseBasicParsing -Headers $headers -Uri '${{ matrix.url }}' -OutFile '${{ matrix.name }}.zip' - name: Upload release artifacts - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: releaseId: ${{ needs.createrelease.outputs.releaseId }} with: @@ -301,7 +301,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: '${{ needs.createRelease.outputs.commitish }}' @@ -352,7 +352,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/CreateTestApp.yaml b/Templates/AppSource App/.github/workflows/CreateTestApp.yaml index 26a0c711a..d4c846834 100644 --- a/Templates/AppSource App/.github/workflows/CreateTestApp.yaml +++ b/Templates/AppSource App/.github/workflows/CreateTestApp.yaml @@ -56,7 +56,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/Current.yaml b/Templates/AppSource App/.github/workflows/Current.yaml index 08994ede3..3387be334 100644 --- a/Templates/AppSource App/.github/workflows/Current.yaml +++ b/Templates/AppSource App/.github/workflows/Current.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/DeployReferenceDocumentation.yaml b/Templates/AppSource App/.github/workflows/DeployReferenceDocumentation.yaml index a78c7407c..711b71881 100644 --- a/Templates/AppSource App/.github/workflows/DeployReferenceDocumentation.yaml +++ b/Templates/AppSource App/.github/workflows/DeployReferenceDocumentation.yaml @@ -26,7 +26,7 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -52,7 +52,7 @@ jobs: - name: Setup Pages if: steps.DetermineDeploymentEnvironments.outputs.deployALDocArtifact == 1 - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Build Reference Documentation uses: microsoft/AL-Go-Actions/BuildReferenceDocumentation@main @@ -61,11 +61,11 @@ jobs: artifacts: 'latest' - name: Upload pages artifact - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-pages-artifact@v3 with: path: ".aldoc/_site/" - name: Deploy to GitHub Pages if: steps.DetermineDeploymentEnvironments.outputs.deployALDocArtifact == 1 id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 diff --git a/Templates/AppSource App/.github/workflows/IncrementVersionNumber.yaml b/Templates/AppSource App/.github/workflows/IncrementVersionNumber.yaml index 5e4a8b41f..67b3fcc35 100644 --- a/Templates/AppSource App/.github/workflows/IncrementVersionNumber.yaml +++ b/Templates/AppSource App/.github/workflows/IncrementVersionNumber.yaml @@ -44,7 +44,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/NextMajor.yaml b/Templates/AppSource App/.github/workflows/NextMajor.yaml index ccad75801..837ac38a0 100644 --- a/Templates/AppSource App/.github/workflows/NextMajor.yaml +++ b/Templates/AppSource App/.github/workflows/NextMajor.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/NextMinor.yaml b/Templates/AppSource App/.github/workflows/NextMinor.yaml index a29c4dcae..706b96eca 100644 --- a/Templates/AppSource App/.github/workflows/NextMinor.yaml +++ b/Templates/AppSource App/.github/workflows/NextMinor.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/PublishToAppSource.yaml b/Templates/AppSource App/.github/workflows/PublishToAppSource.yaml index 855652fb0..7065f214d 100644 --- a/Templates/AppSource App/.github/workflows/PublishToAppSource.yaml +++ b/Templates/AppSource App/.github/workflows/PublishToAppSource.yaml @@ -41,7 +41,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -56,7 +56,7 @@ jobs: name: Deliver to AppSource steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main @@ -90,7 +90,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/PublishToEnvironment.yaml b/Templates/AppSource App/.github/workflows/PublishToEnvironment.yaml index 165552267..f0ba1616c 100644 --- a/Templates/AppSource App/.github/workflows/PublishToEnvironment.yaml +++ b/Templates/AppSource App/.github/workflows/PublishToEnvironment.yaml @@ -40,7 +40,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -128,7 +128,7 @@ jobs: deviceCode: ${{ needs.Initialization.outputs.deviceCode }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: EnvName id: envName @@ -168,7 +168,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/AppSource App/.github/workflows/PullRequestHandler.yaml b/Templates/AppSource App/.github/workflows/PullRequestHandler.yaml index 0200d1aaa..abe6f5bcb 100644 --- a/Templates/AppSource App/.github/workflows/PullRequestHandler.yaml +++ b/Templates/AppSource App/.github/workflows/PullRequestHandler.yaml @@ -49,7 +49,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true ref: refs/pull/${{ github.event.number }}/merge diff --git a/Templates/AppSource App/.github/workflows/Troubleshooting.yaml b/Templates/AppSource App/.github/workflows/Troubleshooting.yaml index bb54a9a8b..add82ca51 100644 --- a/Templates/AppSource App/.github/workflows/Troubleshooting.yaml +++ b/Templates/AppSource App/.github/workflows/Troubleshooting.yaml @@ -25,7 +25,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true diff --git a/Templates/AppSource App/.github/workflows/UpdateGitHubGoSystemFiles.yaml b/Templates/AppSource App/.github/workflows/UpdateGitHubGoSystemFiles.yaml index 8f06f93b0..bf064b34e 100644 --- a/Templates/AppSource App/.github/workflows/UpdateGitHubGoSystemFiles.yaml +++ b/Templates/AppSource App/.github/workflows/UpdateGitHubGoSystemFiles.yaml @@ -38,7 +38,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/AppSource App/.github/workflows/_BuildALGoProject.yaml b/Templates/AppSource App/.github/workflows/_BuildALGoProject.yaml index c9e7c4737..347f81f1a 100644 --- a/Templates/AppSource App/.github/workflows/_BuildALGoProject.yaml +++ b/Templates/AppSource App/.github/workflows/_BuildALGoProject.yaml @@ -86,7 +86,7 @@ jobs: name: ${{ inputs.projectName }} (${{ inputs.buildMode }}) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ inputs.checkoutRef }} lfs: true @@ -117,7 +117,7 @@ jobs: - name: Cache Business Central Artifacts if: env.useCompilerFolder == 'True' && inputs.useArtifactCache && env.artifactCacheKey - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .artifactcache key: ${{ env.artifactCacheKey }} @@ -170,7 +170,7 @@ jobs: - name: Upload thisbuild artifacts - apps if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildAppsArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/Apps/' @@ -179,7 +179,7 @@ jobs: - name: Upload thisbuild artifacts - dependencies if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildDependenciesArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/Dependencies/' @@ -188,7 +188,7 @@ jobs: - name: Upload thisbuild artifacts - test apps if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildTestAppsArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/TestApps/' @@ -196,7 +196,7 @@ jobs: retention-days: 1 - name: Publish artifacts - apps - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts with: name: ${{ steps.calculateArtifactsNames.outputs.AppsArtifactsName }} @@ -204,7 +204,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - dependencies - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts && env.generateDependencyArtifact == 'True' with: name: ${{ steps.calculateArtifactsNames.outputs.DependenciesArtifactsName }} @@ -212,7 +212,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - test apps - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts with: name: ${{ steps.calculateArtifactsNames.outputs.TestAppsArtifactsName }} @@ -220,7 +220,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - build output - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/BuildOutput.txt',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.BuildOutputArtifactsName }} @@ -228,7 +228,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - container event log - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (failure()) && (hashFiles(format('{0}/ContainerEventLog.evtx',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.ContainerEventLogArtifactsName }} @@ -236,7 +236,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/TestResults.xml',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.TestResultsArtifactsName }} @@ -244,7 +244,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - bcpt test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/bcptTestResults.json',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.BcptTestResultsArtifactsName }} diff --git a/Templates/Per Tenant Extension/.github/workflows/AddExistingAppOrTestApp.yaml b/Templates/Per Tenant Extension/.github/workflows/AddExistingAppOrTestApp.yaml index 91420c899..92f55c4d3 100644 --- a/Templates/Per Tenant Extension/.github/workflows/AddExistingAppOrTestApp.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/AddExistingAppOrTestApp.yaml @@ -44,7 +44,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/CICD.yaml b/Templates/Per Tenant Extension/.github/workflows/CICD.yaml index d3dbb389a..64f8a7856 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CICD.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CICD.yaml @@ -47,7 +47,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -118,7 +118,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main @@ -172,10 +172,10 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -186,7 +186,7 @@ jobs: - name: Setup Pages if: needs.Initialization.outputs.deployALDocArtifact == 1 - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Build Reference Documentation uses: microsoft/AL-Go-Actions/BuildReferenceDocumentation@main @@ -195,14 +195,14 @@ jobs: artifacts: '.artifacts' - name: Upload pages artifact - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-pages-artifact@v3 with: path: ".aldoc/_site/" - name: Deploy to GitHub Pages if: needs.Initialization.outputs.deployALDocArtifact == 1 id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 Deploy: needs: [ Initialization, Build ] @@ -215,10 +215,10 @@ jobs: url: ${{ steps.Deploy.outputs.environmentUrl }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -265,10 +265,10 @@ jobs: name: Deliver to ${{ matrix.deliveryTarget }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: path: '.artifacts' @@ -302,7 +302,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/CreateApp.yaml b/Templates/Per Tenant Extension/.github/workflows/CreateApp.yaml index d79dc1aac..f1117377a 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CreateApp.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CreateApp.yaml @@ -54,7 +54,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml b/Templates/Per Tenant Extension/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml index 096f545d6..5984a0b2e 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CreateOnlineDevelopmentEnvironment.yaml @@ -53,7 +53,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -108,7 +108,7 @@ jobs: deviceCode: ${{ needs.Initialization.outputs.deviceCode }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main diff --git a/Templates/Per Tenant Extension/.github/workflows/CreatePerformanceTestApp.yaml b/Templates/Per Tenant Extension/.github/workflows/CreatePerformanceTestApp.yaml index 83dfdc161..7ee713fc4 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CreatePerformanceTestApp.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CreatePerformanceTestApp.yaml @@ -60,7 +60,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml b/Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml index 978865587..85c562bb1 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CreateRelease.yaml @@ -76,7 +76,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -192,7 +192,7 @@ jobs: target_commitish: ${{ steps.analyzeartifacts.outputs.commitish }} - name: Create release - uses: actions/github-script@v6 + uses: actions/github-script@v7 id: createrelease env: bodyMD: ${{ steps.createreleasenotes.outputs.releaseNotes }} @@ -224,7 +224,7 @@ jobs: fail-fast: true steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main @@ -251,7 +251,7 @@ jobs: Invoke-WebRequest -UseBasicParsing -Headers $headers -Uri '${{ matrix.url }}' -OutFile '${{ matrix.name }}.zip' - name: Upload release artifacts - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: releaseId: ${{ needs.createrelease.outputs.releaseId }} with: @@ -301,7 +301,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: '${{ needs.createRelease.outputs.commitish }}' @@ -352,7 +352,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/CreateTestApp.yaml b/Templates/Per Tenant Extension/.github/workflows/CreateTestApp.yaml index 26a0c711a..d4c846834 100644 --- a/Templates/Per Tenant Extension/.github/workflows/CreateTestApp.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/CreateTestApp.yaml @@ -56,7 +56,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/Current.yaml b/Templates/Per Tenant Extension/.github/workflows/Current.yaml index 08994ede3..3387be334 100644 --- a/Templates/Per Tenant Extension/.github/workflows/Current.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/Current.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/DeployReferenceDocumentation.yaml b/Templates/Per Tenant Extension/.github/workflows/DeployReferenceDocumentation.yaml index a78c7407c..711b71881 100644 --- a/Templates/Per Tenant Extension/.github/workflows/DeployReferenceDocumentation.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/DeployReferenceDocumentation.yaml @@ -26,7 +26,7 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -52,7 +52,7 @@ jobs: - name: Setup Pages if: steps.DetermineDeploymentEnvironments.outputs.deployALDocArtifact == 1 - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Build Reference Documentation uses: microsoft/AL-Go-Actions/BuildReferenceDocumentation@main @@ -61,11 +61,11 @@ jobs: artifacts: 'latest' - name: Upload pages artifact - uses: actions/upload-pages-artifact@v2 + uses: actions/upload-pages-artifact@v3 with: path: ".aldoc/_site/" - name: Deploy to GitHub Pages if: steps.DetermineDeploymentEnvironments.outputs.deployALDocArtifact == 1 id: deployment - uses: actions/deploy-pages@v2 + uses: actions/deploy-pages@v4 diff --git a/Templates/Per Tenant Extension/.github/workflows/IncrementVersionNumber.yaml b/Templates/Per Tenant Extension/.github/workflows/IncrementVersionNumber.yaml index 5e4a8b41f..67b3fcc35 100644 --- a/Templates/Per Tenant Extension/.github/workflows/IncrementVersionNumber.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/IncrementVersionNumber.yaml @@ -44,7 +44,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/NextMajor.yaml b/Templates/Per Tenant Extension/.github/workflows/NextMajor.yaml index ccad75801..837ac38a0 100644 --- a/Templates/Per Tenant Extension/.github/workflows/NextMajor.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/NextMajor.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/NextMinor.yaml b/Templates/Per Tenant Extension/.github/workflows/NextMinor.yaml index a29c4dcae..706b96eca 100644 --- a/Templates/Per Tenant Extension/.github/workflows/NextMinor.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/NextMinor.yaml @@ -34,7 +34,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -91,7 +91,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/PublishToEnvironment.yaml b/Templates/Per Tenant Extension/.github/workflows/PublishToEnvironment.yaml index 165552267..f0ba1616c 100644 --- a/Templates/Per Tenant Extension/.github/workflows/PublishToEnvironment.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/PublishToEnvironment.yaml @@ -40,7 +40,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init @@ -128,7 +128,7 @@ jobs: deviceCode: ${{ needs.Initialization.outputs.deviceCode }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: EnvName id: envName @@ -168,7 +168,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Finalize the workflow id: PostProcess diff --git a/Templates/Per Tenant Extension/.github/workflows/PullRequestHandler.yaml b/Templates/Per Tenant Extension/.github/workflows/PullRequestHandler.yaml index 0200d1aaa..abe6f5bcb 100644 --- a/Templates/Per Tenant Extension/.github/workflows/PullRequestHandler.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/PullRequestHandler.yaml @@ -49,7 +49,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true ref: refs/pull/${{ github.event.number }}/merge diff --git a/Templates/Per Tenant Extension/.github/workflows/Troubleshooting.yaml b/Templates/Per Tenant Extension/.github/workflows/Troubleshooting.yaml index bb54a9a8b..add82ca51 100644 --- a/Templates/Per Tenant Extension/.github/workflows/Troubleshooting.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/Troubleshooting.yaml @@ -25,7 +25,7 @@ jobs: runs-on: [ windows-latest ] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true diff --git a/Templates/Per Tenant Extension/.github/workflows/UpdateGitHubGoSystemFiles.yaml b/Templates/Per Tenant Extension/.github/workflows/UpdateGitHubGoSystemFiles.yaml index 8f06f93b0..bf064b34e 100644 --- a/Templates/Per Tenant Extension/.github/workflows/UpdateGitHubGoSystemFiles.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/UpdateGitHubGoSystemFiles.yaml @@ -38,7 +38,7 @@ jobs: shell: powershell - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize the workflow id: init diff --git a/Templates/Per Tenant Extension/.github/workflows/_BuildALGoProject.yaml b/Templates/Per Tenant Extension/.github/workflows/_BuildALGoProject.yaml index c9e7c4737..347f81f1a 100644 --- a/Templates/Per Tenant Extension/.github/workflows/_BuildALGoProject.yaml +++ b/Templates/Per Tenant Extension/.github/workflows/_BuildALGoProject.yaml @@ -86,7 +86,7 @@ jobs: name: ${{ inputs.projectName }} (${{ inputs.buildMode }}) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ inputs.checkoutRef }} lfs: true @@ -117,7 +117,7 @@ jobs: - name: Cache Business Central Artifacts if: env.useCompilerFolder == 'True' && inputs.useArtifactCache && env.artifactCacheKey - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .artifactcache key: ${{ env.artifactCacheKey }} @@ -170,7 +170,7 @@ jobs: - name: Upload thisbuild artifacts - apps if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildAppsArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/Apps/' @@ -179,7 +179,7 @@ jobs: - name: Upload thisbuild artifacts - dependencies if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildDependenciesArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/Dependencies/' @@ -188,7 +188,7 @@ jobs: - name: Upload thisbuild artifacts - test apps if: inputs.publishThisBuildArtifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.calculateArtifactsNames.outputs.ThisBuildTestAppsArtifactsName }} path: '${{ inputs.project }}/.buildartifacts/TestApps/' @@ -196,7 +196,7 @@ jobs: retention-days: 1 - name: Publish artifacts - apps - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts with: name: ${{ steps.calculateArtifactsNames.outputs.AppsArtifactsName }} @@ -204,7 +204,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - dependencies - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts && env.generateDependencyArtifact == 'True' with: name: ${{ steps.calculateArtifactsNames.outputs.DependenciesArtifactsName }} @@ -212,7 +212,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - test apps - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: inputs.publishArtifacts with: name: ${{ steps.calculateArtifactsNames.outputs.TestAppsArtifactsName }} @@ -220,7 +220,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - build output - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/BuildOutput.txt',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.BuildOutputArtifactsName }} @@ -228,7 +228,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - container event log - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (failure()) && (hashFiles(format('{0}/ContainerEventLog.evtx',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.ContainerEventLogArtifactsName }} @@ -236,7 +236,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/TestResults.xml',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.TestResultsArtifactsName }} @@ -244,7 +244,7 @@ jobs: if-no-files-found: ignore - name: Publish artifacts - bcpt test results - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: (success() || failure()) && (hashFiles(format('{0}/bcptTestResults.json',inputs.project)) != '') with: name: ${{ steps.calculateArtifactsNames.outputs.BcptTestResultsArtifactsName }} diff --git a/Tests/CheckForUpdates.Action.Test.ps1 b/Tests/CheckForUpdates.Action.Test.ps1 index c22caa1d4..c55876657 100644 --- a/Tests/CheckForUpdates.Action.Test.ps1 +++ b/Tests/CheckForUpdates.Action.Test.ps1 @@ -49,7 +49,7 @@ Describe "CheckForUpdates Action Tests" { $yaml.Find('permissionos:', [ref] $start, [ref] $count) | Should -Not -be $true # Check checkout step - ($yaml.Get('jobs:/Initialization:/steps:/- name: Checkout').content -join '') | Should -be "- name: Checkout uses: actions/checkout@v3 with: lfs: true" + ($yaml.Get('jobs:/Initialization:/steps:/- name: Checkout').content -join '') | Should -be "- name: Checkout uses: actions/checkout@v4 with: lfs: true" # Get Shell line in read Settings step ($yaml.Get('jobs:/Initialization:/steps:/- name: Read settings/with:/shell:').content -join '') | Should -be "shell: powershell" diff --git a/Tests/YamlSnippet.txt b/Tests/YamlSnippet.txt index d56930d90..9df445fbf 100644 --- a/Tests/YamlSnippet.txt +++ b/Tests/YamlSnippet.txt @@ -36,7 +36,7 @@ jobs: telemetryScopeJson: ${{ steps.init.outputs.telemetryScopeJson }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: lfs: true @@ -60,7 +60,7 @@ jobs: if: github.event_name != 'workflow_run' steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Read settings uses: microsoft/AL-Go-Actions/ReadSettings@main From 3d8caaec58a10af9f39403befd7250f196af2e29 Mon Sep 17 00:00:00 2001 From: Freddy Kristiansen Date: Fri, 26 Jan 2024 14:15:23 +0100 Subject: [PATCH 3/5] fix SelfHostedGitHubRunner.md (#897) Fixes #895 Co-authored-by: freddydk --- Scenarios/SelfHostedGitHubRunner.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scenarios/SelfHostedGitHubRunner.md b/Scenarios/SelfHostedGitHubRunner.md index 0018e4c3d..ff1dde62a 100644 --- a/Scenarios/SelfHostedGitHubRunner.md +++ b/Scenarios/SelfHostedGitHubRunner.md @@ -37,7 +37,7 @@ GitHub runners can be registered for an organization (accessible for all reposit ## Allow your repository access to your runners 1. On the list of Runners on GitHub, choose the runner group **Default** and allow public repositories if your repository is public. ![public](https://github.com/microsoft/AL-Go/assets/10775043/9bdd01ab-ac67-44bf-bfd1-af5c5ec91364) -1. Now navigate to your project settings file (.AL-Go/settings.json) and set **gitHubRunner** to **self-hosted**. +1. Now navigate to your repo settings file (.github/AL-Go-Settings.json) and set **gitHubRunner** to **self-hosted**. - Note that you can use other tags than **self-hosted** to identify special runners for GitHub jobs, or you can set gitHubRunner to "self-hosted, Windows" to ensure that a Windows version is selected if you have self-hosted linux runners as well. 1. Save and inspect your workflows performance increase on the second run. 1. Inspect that one of the runners pick up the workflow. From 2fe598c158c2b265bd7fcefaca6b85079a30a783 Mon Sep 17 00:00:00 2001 From: Freddy Kristiansen Date: Fri, 26 Jan 2024 14:17:08 +0100 Subject: [PATCH 4/5] improve doc (#899) Fixes #878 Co-authored-by: freddydk --- Scenarios/UpdateAlGoSystemFiles.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Scenarios/UpdateAlGoSystemFiles.md b/Scenarios/UpdateAlGoSystemFiles.md index 77dbca415..c08a06048 100644 --- a/Scenarios/UpdateAlGoSystemFiles.md +++ b/Scenarios/UpdateAlGoSystemFiles.md @@ -10,6 +10,7 @@ 1. To update the AL-Go system files using the Update AL-Go System Files workflow, you need to provide a secret called GHTOKENWORKFLOW containing a Personal Access Token with permissions to modify workflows 1. In a browser, navigate to [New personal access token](https://github.com/settings/tokens/new) and create a new **personal access token**. Name it, set the expiration date and check the **workflow option** in the list of **scopes**. ![newPAT](https://github.com/microsoft/AL-Go/assets/10775043/1ab9978a-37e8-423a-8f8e-5c0203f7ae00) +1. Note that the above applies to **classic** tokens only. If you are creating a **Fine-grained** token, you need to specify which repositories to include and assign **Read and Write** permissions to **Contents**, **Pull Requests** and **Workflows**. 1. Generate the token and **copy it to the clipboard**. You won’t be able to see the token again. 1. On github.com, open **Settings** in your project and select **Secrets**. Choose the New repository secret button and create a secret called GHTOKENWORKFLOW and paste the personal access token in the value field and choose **Add secret**. ![PAT](https://github.com/microsoft/AL-Go/assets/10775043/7dcccca3-ec43-47ba-bffb-795332c890ad) From 5000d6cab2bbfc0b2aae59a07ee863d6aaa61154 Mon Sep 17 00:00:00 2001 From: Freddy Kristiansen Date: Fri, 26 Jan 2024 14:49:28 +0100 Subject: [PATCH 5/5] Give better error message if GitHub CLI or GIT isn't installed (#898) Fixes #870 --------- Co-authored-by: freddydk --- Actions/AL-Go-Helper.ps1 | 2 +- ...ReferenceDocumentation.HelperFunctions.ps1 | 2 +- Actions/Github-Helper.psm1 | 24 +++++++++++++++---- RELEASENOTES.md | 1 + 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Actions/AL-Go-Helper.ps1 b/Actions/AL-Go-Helper.ps1 index 6b4fc4dc1..2c4d596de 100644 --- a/Actions/AL-Go-Helper.ps1 +++ b/Actions/AL-Go-Helper.ps1 @@ -2261,7 +2261,7 @@ function RetryCommand { catch { $retryCount++ if ($retryCount -eq $MaxRetries) { - throw $_ + throw } else { Write-Host "Retrying after $RetryDelaySeconds seconds..." diff --git a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 index 2b398d95f..b88a25129 100644 --- a/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 +++ b/Actions/BuildReferenceDocumentation/BuildReferenceDocumentation.HelperFunctions.ps1 @@ -24,7 +24,7 @@ & /usr/bin/env sudo pwsh -command "& chmod +x $ENV:aldocPath" } Write-Host "Installing/Updating docfx" - CmdDo -command dotnet -arguments @("tool","update","-g docfx") + CmdDo -command dotnet -arguments @("tool","update","-g docfx") -messageIfCmdNotFound "dotnet not found. Please install it from https://dotnet.microsoft.com/download" } return $ENV:aldocPath } diff --git a/Actions/Github-Helper.psm1 b/Actions/Github-Helper.psm1 index a3209c85a..633dff752 100644 --- a/Actions/Github-Helper.psm1 +++ b/Actions/Github-Helper.psm1 @@ -237,7 +237,8 @@ function CmdDo { [string] $arguments = "", [switch] $silent, [switch] $returnValue, - [string] $inputStr = "" + [string] $inputStr = "", + [string] $messageIfCmdNotFound = "" ) $oldNoColor = "$env:NO_COLOR" @@ -282,14 +283,27 @@ function CmdDo { Write-Host $message } if ($returnValue) { - $message.Replace("`r","").Split("`n") + $message.Replace("`r", "").Split("`n") } } else { - $message += "`n`nExitCode: "+$p.ExitCode + "`nCommandline: $command $arguments" + $message += "`n`nExitCode: " + $p.ExitCode + "`nCommandline: $command $arguments" throw $message } } + catch [System.ComponentModel.Win32Exception] { + if ($_.Exception.NativeErrorCode -eq 2) { + if ($messageIfCmdNotFound) { + throw $messageIfCmdNotFound + } + else { + throw "Command $command not found, you might need to install that command." + } + } + else { + throw + } + } finally { try { [Console]::OutputEncoding = $oldEncoding } catch {} $env:NO_COLOR = $oldNoColor @@ -319,7 +333,7 @@ function invoke-gh { $arguments += "$parameter " } } - cmdDo -command gh -arguments $arguments -silent:$silent -returnValue:$returnValue -inputStr $inputStr + cmdDo -command gh -arguments $arguments -silent:$silent -returnValue:$returnValue -inputStr $inputStr -messageIfCmdNotFound "Github CLI not found. Please install it from https://cli.github.com/" } } @@ -343,7 +357,7 @@ function invoke-git { $arguments += "$parameter " } } - cmdDo -command git -arguments $arguments -silent:$silent -returnValue:$returnValue -inputStr $inputStr + cmdDo -command git -arguments $arguments -silent:$silent -returnValue:$returnValue -inputStr $inputStr -messageIfCmdNotFound "Git not found. Please install it from https://git-scm.com/downloads" } } diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a7412b2a4..232e65cf7 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -7,6 +7,7 @@ Note that when using the preview version of AL-Go for GitHub, we recommend you U ### Issues - Support release branches that start with releases/ +- Issue 870 Improve Error Handling when CLI is missing ### Build modes AL-Go ships with Default, Translated and Clean mode out of the box. Now you can also define custom build modes in addition to the ones shipped with AL-Go. This allows you to define your own build modes, which can be used to build your apps in different ways. By default, a custom build mode will build the apps similarly to the Default mode but this behavior can be overridden in e.g. script overrides in your repository.