diff --git a/.github/actions/Build-PSModule/action.yml b/.github/actions/Build-PSModule/action.yml index ba3459da..54840096 100644 --- a/.github/actions/Build-PSModule/action.yml +++ b/.github/actions/Build-PSModule/action.yml @@ -9,7 +9,7 @@ inputs: OutputFolder: description: Path to the folder where the built module is outputted. required: false - default: 'outputs/module' + default: '.PSModule/module' Version: description: Module version to stamp into the manifest. required: true diff --git a/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleManifest.ps1 b/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleManifest.ps1 index 8e37790f..8ea8d93a 100644 --- a/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleManifest.ps1 +++ b/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleManifest.ps1 @@ -28,7 +28,7 @@ [Parameter(Mandatory)] [string] $ModuleName, - # Folder where the built modules are outputted. 'outputs/modules/MyModule' + # Folder where the built module is outputted. '.PSModule/module/MyModule' [Parameter(Mandatory)] [System.IO.DirectoryInfo] $ModuleOutputFolder, diff --git a/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleRootModule.ps1 b/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleRootModule.ps1 index 619a5d95..7a70ee93 100644 --- a/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleRootModule.ps1 +++ b/.github/actions/Build-PSModule/src/helpers/Build/Build-PSModuleRootModule.ps1 @@ -43,7 +43,7 @@ [Parameter(Mandatory)] [string] $ModuleName, - # Folder where the built modules are outputted. 'outputs/modules/MyModule' + # Folder where the built module is outputted. '.PSModule/module/MyModule' [Parameter(Mandatory)] [System.IO.DirectoryInfo] $ModuleOutputFolder ) diff --git a/.github/actions/Build-ZensicalSite/README.md b/.github/actions/Build-ZensicalSite/README.md index f4eb2bb9..21c225ae 100644 --- a/.github/actions/Build-ZensicalSite/README.md +++ b/.github/actions/Build-ZensicalSite/README.md @@ -1,6 +1,6 @@ # Build-ZensicalSite -Builds Zensical documentation site output and normalizes it to `/_site`. +Builds Zensical documentation site output at `/.PSModule/site/_site`. ## Inputs diff --git a/.github/actions/Build-ZensicalSite/src/build-zensical-site.ps1 b/.github/actions/Build-ZensicalSite/src/build-zensical-site.ps1 index 090f1a09..58c19738 100644 --- a/.github/actions/Build-ZensicalSite/src/build-zensical-site.ps1 +++ b/.github/actions/Build-ZensicalSite/src/build-zensical-site.ps1 @@ -6,24 +6,17 @@ param( $ErrorActionPreference = 'Stop' $resolvedWorkingDirectory = Resolve-Path -Path $WorkingDirectory | Select-Object -ExpandProperty Path -$siteWorkingDirectory = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/site' -$outputSitePath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '_site' +$siteWorkingDirectory = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/site' +$outputSitePath = Join-Path -Path $siteWorkingDirectory -ChildPath '_site' Set-Location -Path $siteWorkingDirectory if (-not (Test-Path -Path 'zensical.toml')) { - throw "No documentation config file found in outputs/site. Expected zensical.toml." + throw "No documentation config file found in .PSModule/site. Expected zensical.toml." } zensical build --config-file 'zensical.toml' -if (Test-Path -Path '_site') { - if (Test-Path -Path $outputSitePath) { - Remove-Item -Path $outputSitePath -Recurse -Force - } - Move-Item -Path '_site' -Destination $outputSitePath -Force -} - if (-not (Test-Path -Path $outputSitePath)) { throw "Expected Zensical output at $outputSitePath but it was not created." } diff --git a/.github/actions/Build-ZensicalSite/src/main.ps1 b/.github/actions/Build-ZensicalSite/src/main.ps1 index 080a8dea..365482df 100644 --- a/.github/actions/Build-ZensicalSite/src/main.ps1 +++ b/.github/actions/Build-ZensicalSite/src/main.ps1 @@ -2,11 +2,11 @@ <# .SYNOPSIS - Builds the Zensical site and normalizes output to the expected _site path. + Builds the Zensical site under the framework artifact directory. .DESCRIPTION - Runs zensical build from outputs/site and moves the generated _site directory - to /_site for downstream workflow steps. + Runs zensical build from .PSModule/site. The generated site remains at + /.PSModule/site/_site for downstream workflow steps. .EXAMPLE ./main.ps1 -WorkingDirectory '.' @@ -19,7 +19,7 @@ #> [CmdletBinding()] param( - # Build working directory containing outputs/site and destination _site. + # Build working directory containing the Zensical project and output. [Parameter(Mandatory)] [string]$WorkingDirectory ) @@ -27,24 +27,17 @@ param( $ErrorActionPreference = 'Stop' $resolvedWorkingDirectory = Resolve-Path -Path $WorkingDirectory | Select-Object -ExpandProperty Path -$siteWorkingDirectory = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/site' -$outputSitePath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '_site' +$siteWorkingDirectory = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/site' +$outputSitePath = Join-Path -Path $siteWorkingDirectory -ChildPath '_site' Set-Location -Path $siteWorkingDirectory if (-not (Test-Path -Path 'zensical.toml')) { - throw "No documentation config file found in outputs/site. Expected zensical.toml." + throw "No documentation config file found in .PSModule/site. Expected zensical.toml." } zensical build --config-file 'zensical.toml' -if (Test-Path -Path '_site') { - if (Test-Path -Path $outputSitePath) { - Remove-Item -Path $outputSitePath -Recurse -Force - } - Move-Item -Path '_site' -Destination $outputSitePath -Force -} - if (-not (Test-Path -Path $outputSitePath)) { throw "Expected Zensical output at $outputSitePath but it was not created." } diff --git a/.github/actions/Document-PSModule/src/main.ps1 b/.github/actions/Document-PSModule/src/main.ps1 index d9a1d877..9e58cce5 100644 --- a/.github/actions/Document-PSModule/src/main.ps1 +++ b/.github/actions/Document-PSModule/src/main.ps1 @@ -40,8 +40,8 @@ Get-ChildItem -Path $path -Filter '*.ps1' -Recurse | Resolve-Path -Relative | Fo Write-Host '::group::Loading inputs' $env:GITHUB_REPOSITORY_NAME = $env:GITHUB_REPOSITORY -replace '.+/' $moduleSourceFolderPath = Resolve-Path -Path 'src' | Select-Object -ExpandProperty Path -$modulesOutputFolderPath = Join-Path -Path . -ChildPath 'outputs/module' -$docsOutputFolderPath = Join-Path -Path . -ChildPath 'outputs/docs' +$modulesOutputFolderPath = Join-Path -Path . -ChildPath '.PSModule/module' +$docsOutputFolderPath = Join-Path -Path . -ChildPath '.PSModule/docs' $params = @{ ModuleName = [string]::IsNullOrEmpty($Name) ? $env:GITHUB_REPOSITORY_NAME : $Name diff --git a/.github/actions/Inject-SiteScripts/README.md b/.github/actions/Inject-SiteScripts/README.md index 9c75bdb1..4cfa8017 100644 --- a/.github/actions/Inject-SiteScripts/README.md +++ b/.github/actions/Inject-SiteScripts/README.md @@ -13,6 +13,6 @@ Injects JavaScript snippets from `.github/scripts/site-injectors/*.js` into gene - name: Inject shared site scripts uses: ./_wf/.github/actions/Inject-SiteScripts with: - SitePath: ./_site + SitePath: ./.PSModule/site/_site WorkflowPath: _wf ``` diff --git a/.github/actions/Inject-SiteScripts/src/main.ps1 b/.github/actions/Inject-SiteScripts/src/main.ps1 index 6fcdad0d..8bc4fbe8 100644 --- a/.github/actions/Inject-SiteScripts/src/main.ps1 +++ b/.github/actions/Inject-SiteScripts/src/main.ps1 @@ -9,7 +9,7 @@ repository and injects each script into every HTML file under SitePath, once per file. .EXAMPLE - ./main.ps1 -SitePath './_site' -WorkflowPath '_wf' + ./main.ps1 -SitePath './.PSModule/site/_site' -WorkflowPath '_wf' .INPUTS None. diff --git a/.github/actions/Publish-PSModule/README.md b/.github/actions/Publish-PSModule/README.md index 6b97fed0..99602dfb 100644 --- a/.github/actions/Publish-PSModule/README.md +++ b/.github/actions/Publish-PSModule/README.md @@ -7,7 +7,7 @@ Publishes a pre-versioned PowerShell module artifact to the PowerShell Gallery. | Name | Description | Required | Default | | --- | --- | --- | --- | | `Name` | Name of the module to publish. | No | Repository name | -| `ModulePath` | Path containing the built `/` module directory. | No | `outputs/module` | +| `ModulePath` | Path containing the built `/` module directory. | No | `.PSModule/module` | | `ArtifactName` | Name of the module artifact to download. | No | `module` | | `PSGALLERY_API_KEY` | PowerShell Gallery API key. | Yes | N/A | | `WhatIf` | Logs publishing operations without publishing the module. | No | `false` | @@ -24,7 +24,7 @@ This action does not provide outputs. uses: ./.github/actions/Publish-PSModule with: Name: ExampleModule - ModulePath: outputs/module + ModulePath: .PSModule/module ArtifactName: module PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }} ``` diff --git a/.github/actions/Publish-PSModule/action.yml b/.github/actions/Publish-PSModule/action.yml index b56277af..d21604d1 100644 --- a/.github/actions/Publish-PSModule/action.yml +++ b/.github/actions/Publish-PSModule/action.yml @@ -9,7 +9,7 @@ inputs: ModulePath: description: Path to the folder containing the / module subdirectory from Build-PSModule. required: false - default: outputs/module + default: .PSModule/module PSGALLERY_API_KEY: description: PowerShell Gallery API Key. required: true diff --git a/.github/actions/Publish-PSModule/tests/Publish-PSModule.Recovery.Tests.ps1 b/.github/actions/Publish-PSModule/tests/Publish-PSModule.Recovery.Tests.ps1 index 859e0539..80368687 100644 --- a/.github/actions/Publish-PSModule/tests/Publish-PSModule.Recovery.Tests.ps1 +++ b/.github/actions/Publish-PSModule/tests/Publish-PSModule.Recovery.Tests.ps1 @@ -42,7 +42,7 @@ Describe 'Publish-PSModule recovery' { BeforeEach { $script:moduleName = 'TestModule' $script:workspacePath = Join-Path -Path $TestDrive -ChildPath 'workspace' - $script:modulePath = Join-Path -Path $script:workspacePath -ChildPath "outputs/module/$script:moduleName" + $script:modulePath = Join-Path -Path $script:workspacePath -ChildPath ".PSModule/module/$script:moduleName" $manifestPath = Join-Path -Path $script:modulePath -ChildPath "$script:moduleName.psd1" $eventPath = Join-Path -Path $TestDrive -ChildPath 'event.json' $null = New-Item -Path $script:modulePath -ItemType Directory -Force @@ -68,7 +68,7 @@ Describe 'Publish-PSModule recovery' { $env:GITHUB_REPOSITORY = "PSModule/$script:moduleName" $env:GITHUB_WORKSPACE = $script:workspacePath $env:PSMODULE_PUBLISH_PSMODULE_INPUT_Name = $script:moduleName - $env:PSMODULE_PUBLISH_PSMODULE_INPUT_ModulePath = 'outputs/module' + $env:PSMODULE_PUBLISH_PSMODULE_INPUT_ModulePath = '.PSModule/module' $env:PSMODULE_PUBLISH_PSMODULE_INPUT_PSGALLERY_API_KEY = 'test-key' $env:PSMODULE_PUBLISH_PSMODULE_INPUT_PullRequest = '' $env:PSMODULE_PUBLISH_PSMODULE_INPUT_WhatIf = 'false' diff --git a/.github/actions/Release-PSModule/README.md b/.github/actions/Release-PSModule/README.md index 770d190b..c86c9e30 100644 --- a/.github/actions/Release-PSModule/README.md +++ b/.github/actions/Release-PSModule/README.md @@ -7,7 +7,7 @@ Creates or resumes a GitHub release for a pre-versioned PowerShell module artifa | Name | Description | Required | Default | | --- | --- | --- | --- | | `Name` | Name of the module to release. | No | Repository name | -| `ModulePath` | Path containing the built `/` module directory. | No | `outputs/module` | +| `ModulePath` | Path containing the built `/` module directory. | No | `.PSModule/module` | | `ArtifactName` | Name of the module artifact to download. | No | `module` | | `ReleaseTag` | Full GitHub release tag resolved by `Resolve-PSModuleVersion`. | Yes | N/A | | `WhatIf` | Logs release operations without creating or uploading anything. | No | `false` | @@ -33,7 +33,7 @@ Pass the Plan job's resolved `FullVersion` as `ReleaseTag` so the configured tag uses: ./.github/actions/Release-PSModule with: Name: ExampleModule - ModulePath: outputs/module + ModulePath: .PSModule/module ArtifactName: module ReleaseTag: ${{ fromJson(inputs.Settings).Publish.Module.Resolution.FullVersion }} ``` diff --git a/.github/actions/Release-PSModule/action.yml b/.github/actions/Release-PSModule/action.yml index 377a92d9..33789546 100644 --- a/.github/actions/Release-PSModule/action.yml +++ b/.github/actions/Release-PSModule/action.yml @@ -9,7 +9,7 @@ inputs: ModulePath: description: Path to the folder containing the / module subdirectory from Build-PSModule. required: false - default: outputs/module + default: .PSModule/module ArtifactName: description: Name of the uploaded artifact to download. Must match the name used in the upstream upload-artifact step. required: false diff --git a/.github/actions/Release-PSModule/tests/Release-PSModule.WhatIf.Tests.ps1 b/.github/actions/Release-PSModule/tests/Release-PSModule.WhatIf.Tests.ps1 index d7df20e8..e24aeaee 100644 --- a/.github/actions/Release-PSModule/tests/Release-PSModule.WhatIf.Tests.ps1 +++ b/.github/actions/Release-PSModule/tests/Release-PSModule.WhatIf.Tests.ps1 @@ -47,7 +47,7 @@ Describe 'Release-PSModule WhatIf' { BeforeEach { $script:moduleName = 'TestModule' $script:workspacePath = Join-Path -Path $TestDrive -ChildPath 'workspace' - $script:modulePath = Join-Path -Path $script:workspacePath -ChildPath "outputs/module/$script:moduleName" + $script:modulePath = Join-Path -Path $script:workspacePath -ChildPath ".PSModule/module/$script:moduleName" $manifestPath = Join-Path -Path $script:modulePath -ChildPath "$script:moduleName.psd1" $eventPath = Join-Path -Path $TestDrive -ChildPath 'event.json' $script:githubOutputPath = Join-Path -Path $TestDrive -ChildPath 'github-output' @@ -89,7 +89,7 @@ Describe 'Release-PSModule WhatIf' { $env:GITHUB_WORKSPACE = $script:workspacePath $env:RELEASE_ACTION_GH_CALL_LOG = $script:ghCallLogPath $env:PSMODULE_RELEASE_PSMODULE_INPUT_Name = $script:moduleName - $env:PSMODULE_RELEASE_PSMODULE_INPUT_ModulePath = 'outputs/module' + $env:PSMODULE_RELEASE_PSMODULE_INPUT_ModulePath = '.PSModule/module' $env:PSMODULE_RELEASE_PSMODULE_INPUT_WhatIf = 'true' $env:PSMODULE_RELEASE_PSMODULE_INPUT_UsePRBodyAsReleaseNotes = 'true' $env:PSMODULE_RELEASE_PSMODULE_INPUT_UsePRTitleAsReleaseName = 'false' diff --git a/.github/actions/Structure-Site/README.md b/.github/actions/Structure-Site/README.md index 203f9564..edd61f07 100644 --- a/.github/actions/Structure-Site/README.md +++ b/.github/actions/Structure-Site/README.md @@ -1,6 +1,6 @@ # Structure-Site -Prepares site content and writes a resolved Zensical config file under `outputs/site`. +Prepares site content and writes a resolved Zensical config file under `.PSModule/site`. ## Inputs diff --git a/.github/actions/Structure-Site/src/main.ps1 b/.github/actions/Structure-Site/src/main.ps1 index 44c8d20c..1a227da8 100644 --- a/.github/actions/Structure-Site/src/main.ps1 +++ b/.github/actions/Structure-Site/src/main.ps1 @@ -5,7 +5,7 @@ Structures generated documentation content and writes a resolved site config. .DESCRIPTION - Copies generated docs, README, and assets into outputs/site and resolves zensical.toml + Copies generated docs, README, and assets into .PSModule/site and resolves zensical.toml placeholders and site_dir for build execution. .EXAMPLE @@ -19,7 +19,7 @@ #> [CmdletBinding()] param( - # Build working directory where src/, README.md, and outputs/ exist. + # Build working directory where src/, README.md, and .PSModule/ exist. [Parameter(Mandatory)] [string]$WorkingDirectory, @@ -31,8 +31,8 @@ param( $ErrorActionPreference = 'Stop' $resolvedWorkingDirectory = Resolve-Path -Path $WorkingDirectory | Select-Object -ExpandProperty Path -$siteOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/site' -$docsOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/docs' +$siteOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/site' +$docsOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/docs' $moduleSourcePath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'src' $moduleName = if ([string]::IsNullOrEmpty($Name)) { $env:GITHUB_REPOSITORY_NAME } else { $Name } diff --git a/.github/actions/Structure-Site/src/structure-site.ps1 b/.github/actions/Structure-Site/src/structure-site.ps1 index 68ece30b..6b3c7ff9 100644 --- a/.github/actions/Structure-Site/src/structure-site.ps1 +++ b/.github/actions/Structure-Site/src/structure-site.ps1 @@ -9,8 +9,8 @@ param( $ErrorActionPreference = 'Stop' $resolvedWorkingDirectory = Resolve-Path -Path $WorkingDirectory | Select-Object -ExpandProperty Path -$siteOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/site' -$docsOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'outputs/docs' +$siteOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/site' +$docsOutputPath = Join-Path -Path $resolvedWorkingDirectory -ChildPath '.PSModule/docs' $moduleSourcePath = Join-Path -Path $resolvedWorkingDirectory -ChildPath 'src' $moduleName = if ([string]::IsNullOrEmpty($Name)) { $env:GITHUB_REPOSITORY_NAME } else { $Name } diff --git a/.github/actions/Test-PSModule/action.yml b/.github/actions/Test-PSModule/action.yml index f6321f67..aa7d51c4 100644 --- a/.github/actions/Test-PSModule/action.yml +++ b/.github/actions/Test-PSModule/action.yml @@ -279,7 +279,7 @@ runs: run: ${{ github.action_path }}/src/main.ps1 - name: Invoke-Pester - uses: PSModule/Invoke-Pester@4ff33199141fdf22568990b6107fe3148ae93a1c # v5.1.0 + uses: PSModule/Invoke-Pester@c5494aba3c07d7bfd81bdbbc9f301e8fa4a729fb # v5.1.1 id: test env: LocalTestPath: ${{ steps.paths.outputs.LocalTestPath }} @@ -312,7 +312,7 @@ runs: Filter_FullName: ${{ inputs.Filter_FullName }} CodeCoverage_Enabled: ${{ inputs.CodeCoverage_Enabled }} CodeCoverage_OutputFormat: ${{ inputs.CodeCoverage_OutputFormat }} - CodeCoverage_OutputPath: ${{ inputs.CodeCoverage_OutputPath }} + CodeCoverage_OutputPath: ${{ inputs.CodeCoverage_OutputPath || format('.PSModule/CodeCoverage/PSModuleTest-{0}-{1}-CodeCoverage-Report.xml', inputs.Settings, runner.os) }} CodeCoverage_OutputEncoding: ${{ inputs.CodeCoverage_OutputEncoding }} CodeCoverage_Path: ${{ inputs.CodeCoverage_Path }} CodeCoverage_ExcludeTests: ${{ inputs.CodeCoverage_ExcludeTests }} @@ -322,7 +322,7 @@ runs: CodeCoverage_SingleHitBreakpoints: ${{ inputs.CodeCoverage_SingleHitBreakpoints }} TestResult_Enabled: ${{ inputs.TestResult_Enabled }} TestResult_OutputFormat: ${{ inputs.TestResult_OutputFormat }} - TestResult_OutputPath: ${{ inputs.TestResult_OutputPath }} + TestResult_OutputPath: ${{ inputs.TestResult_OutputPath || format('.PSModule/TestResult/PSModuleTest-{0}-{1}-TestResult-Report.xml', inputs.Settings, runner.os) }} TestResult_OutputEncoding: ${{ inputs.TestResult_OutputEncoding }} TestResult_TestSuiteName: PSModuleTest-${{ inputs.Settings }}-${{ runner.os }} Should_ErrorAction: ${{ inputs.Should_ErrorAction }} diff --git a/.github/actions/Test-PSModule/src/main.ps1 b/.github/actions/Test-PSModule/src/main.ps1 index 1706791f..79fec26b 100644 --- a/.github/actions/Test-PSModule/src/main.ps1 +++ b/.github/actions/Test-PSModule/src/main.ps1 @@ -13,7 +13,7 @@ $testPath = Resolve-Path -Path "$PSScriptRoot/tests/$settings" | Select-Object - $localTestPath = Resolve-Path -Path 'tests' | Select-Object -ExpandProperty Path switch ($settings) { 'Module' { - $modulePath = Resolve-Path -Path "outputs/module/$moduleName" | Select-Object -ExpandProperty Path + $modulePath = Resolve-Path -Path ".PSModule/module/$moduleName" | Select-Object -ExpandProperty Path $codePath = Install-PSModule -Path $modulePath -PassThru } 'SourceCode' { diff --git a/.github/plugin/psmodule/skills/psmodule-pester-migration/SKILL.md b/.github/plugin/psmodule/skills/psmodule-pester-migration/SKILL.md index cd11f56f..436d9f47 100644 --- a/.github/plugin/psmodule/skills/psmodule-pester-migration/SKILL.md +++ b/.github/plugin/psmodule/skills/psmodule-pester-migration/SKILL.md @@ -157,7 +157,7 @@ For every consumer repository, trace and record these surfaces before editing: | Surface | Framework contract to verify | Migration check | | --- | --- | --- | | `PSModule/Invoke-Pester` | Installs/runs Pester and emits per-suite JSON results and coverage artifacts | Pin/verify Pester 6.1.0, map all inputs to v6 configuration, preserve suite names | -| `Test-PSModule` action | Selects `tests/Module` or `tests/SourceCode`, resolves `outputs/module` or `src`, and passes paths to `Invoke-Pester` | Confirm path selection, exclusions, module state, and test extension | +| `Test-PSModule` action | Selects `tests/Module` or `tests/SourceCode`, resolves `.PSModule/module` or `src`, and passes paths to `Invoke-Pester` | Confirm path selection, exclusions, module state, and test extension | | Module-local workflow | Downloads the built module, exposes `TestData`, imports the module, then runs module tests | Tests consume the prepared module; no hidden fallback import | | Source-code workflow | Runs source tests against the checked-out `src` path | Record how source functions/classes are loaded and which fixtures are explicit | | `BeforeAll-ModuleLocal` | Runs exact root `tests/BeforeAll.ps1` once before module-local jobs | Put shared services/data here only when every matrix job needs them | diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index bc173a90..a8d2fe6b 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -33,7 +33,7 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: module - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/module + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module - name: Document module uses: ./_wf/.github/actions/Document-PSModule @@ -45,7 +45,7 @@ jobs: uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: docs - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/docs + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/docs if-no-files-found: error retention-days: 1 @@ -82,7 +82,7 @@ jobs: env: RUN_LOCAL: true DEFAULT_WORKSPACE: ${{ fromJson(inputs.Settings).WorkingDirectory }} - FILTER_REGEX_INCLUDE: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/docs/.*\.(md|markdown)$ + FILTER_REGEX_INCLUDE: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/docs/.*\.(md|markdown)$ ENABLE_GITHUB_ACTIONS_GROUP_TITLE: true GITHUB_TOKEN: ${{ github.token }} VALIDATE_ALL_CODEBASE: true diff --git a/.github/workflows/Build-Site.yml b/.github/workflows/Build-Site.yml index ac7b1f6e..3b334b33 100644 --- a/.github/workflows/Build-Site.yml +++ b/.github/workflows/Build-Site.yml @@ -36,7 +36,7 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: docs - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/docs + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/docs - name: Install Zensical uses: ./_wf/.github/actions/Install-Zensical @@ -55,11 +55,11 @@ jobs: - name: Inject shared site scripts uses: ./_wf/.github/actions/Inject-SiteScripts with: - SitePath: ${{ fromJson(inputs.Settings).WorkingDirectory }}/_site + SitePath: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/site/_site WorkflowPath: _wf - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: name: github-pages - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/_site + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/site/_site retention-days: 1 diff --git a/.github/workflows/Publish-Module.yml b/.github/workflows/Publish-Module.yml index 49f747a3..4042920c 100644 --- a/.github/workflows/Publish-Module.yml +++ b/.github/workflows/Publish-Module.yml @@ -60,7 +60,7 @@ jobs: GH_TOKEN: ${{ steps.App-Token.outputs.token }} with: Name: ${{ fromJson(inputs.Settings).Name }} - ModulePath: outputs/module + ModulePath: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }} PullRequest: ${{ toJson(fromJson(inputs.Settings).Context.PullRequest) }} WhatIf: ${{ github.repository == 'PSModule/Process-PSModule' }} @@ -77,7 +77,7 @@ jobs: GH_TOKEN: ${{ steps.App-Token.outputs.token }} with: Name: ${{ fromJson(inputs.Settings).Name }} - ModulePath: outputs/module + ModulePath: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module ArtifactName: module WhatIf: ${{ github.repository == 'PSModule/Process-PSModule' }} UsePRTitleAsReleaseName: ${{ fromJson(inputs.Settings).Publish.Module.UsePRTitleAsReleaseName }} diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index be16e8a3..1d48d2f6 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -37,7 +37,7 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: module - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/module + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module - name: Test-Module uses: ./_wf/.github/actions/Test-PSModule @@ -67,12 +67,12 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: module - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/module + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module - name: Lint-Module uses: PSModule/Invoke-ScriptAnalyzer@4d633e4df1f1fa575949a328839d33c3a0838765 # v5.0.0 with: - Path: outputs/module + Path: .PSModule/module Debug: ${{ fromJson(inputs.Settings).Debug }} GitHubPrerelease: ${{ fromJson(inputs.Settings).Prerelease }} GitHubVersion: ${{ fromJson(inputs.Settings).Version }} diff --git a/.github/workflows/Test-ModuleLocal.yml b/.github/workflows/Test-ModuleLocal.yml index c5165913..a3945bad 100644 --- a/.github/workflows/Test-ModuleLocal.yml +++ b/.github/workflows/Test-ModuleLocal.yml @@ -47,7 +47,7 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: module - path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/outputs/module + path: ${{ fromJson(inputs.Settings).WorkingDirectory }}/.PSModule/module - name: Install-PSModule uses: ./_wf/.github/actions/Install-PSModule @@ -62,14 +62,14 @@ jobs: shell: pwsh working-directory: ${{ fromJson(inputs.Settings).WorkingDirectory }} run: | - $name = Get-ChildItem "outputs/module" | Select-Object -ExpandProperty Name - $path = Install-PSModule -Path "outputs/module/$name" -PassThru + $name = Get-ChildItem ".PSModule/module" | Select-Object -ExpandProperty Name + $path = Install-PSModule -Path ".PSModule/module/$name" -PassThru Write-Warning $path "name=$name" >> $env:GITHUB_OUTPUT "path=$path" >> $env:GITHUB_OUTPUT - name: Test-ModuleLocal - uses: PSModule/Invoke-Pester@4ff33199141fdf22568990b6107fe3148ae93a1c # v5.1.0 + uses: PSModule/Invoke-Pester@c5494aba3c07d7bfd81bdbbc9f301e8fa4a729fb # v5.1.1 with: Debug: ${{ fromJson(inputs.Settings).Debug }} Verbose: ${{ fromJson(inputs.Settings).Verbose }} @@ -78,9 +78,11 @@ jobs: GitHubPrerelease: ${{ fromJson(inputs.Settings).Prerelease }} TestResult_TestSuiteName: ${{ matrix.TestName }}-${{ matrix.OSName }} TestResult_Enabled: true + TestResult_OutputPath: .PSModule/TestResult/${{ matrix.TestName }}-${{ matrix.OSName }}-TestResult-Report.xml CodeCoverage_Enabled: true Output_Verbosity: Detailed CodeCoverage_OutputFormat: JaCoCo + CodeCoverage_OutputPath: .PSModule/CodeCoverage/${{ matrix.TestName }}-${{ matrix.OSName }}-CodeCoverage-Report.xml CodeCoverage_CoveragePercentTarget: 0 Filter_ExcludeTag: Flaky Path: ${{ matrix.TestPath }} diff --git a/.github/workflows/Workflow-Test-Default.yml b/.github/workflows/Workflow-Test-Default.yml index 2bbae66e..5b3da9fb 100644 --- a/.github/workflows/Workflow-Test-Default.yml +++ b/.github/workflows/Workflow-Test-Default.yml @@ -80,15 +80,15 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: docs - path: tests/srcTestRepo/outputs/docs + path: tests/srcTestRepo/.PSModule/docs - - name: Verify root Functions index is published + - name: Verify generated Functions index shell: pwsh run: | - $path = 'tests/srcTestRepo/outputs/docs/index.md' + $path = 'tests/srcTestRepo/.PSModule/docs/index.md' if (-not (Test-Path -Path $path)) { throw 'Expected root Functions index at ' + - 'tests/srcTestRepo/outputs/docs/index.md.' + 'tests/srcTestRepo/.PSModule/docs/index.md.' } $content = Get-Content -Path $path -Raw diff --git a/.github/workflows/Workflow-Test-WithManifest.yml b/.github/workflows/Workflow-Test-WithManifest.yml index 83829813..898308b4 100644 --- a/.github/workflows/Workflow-Test-WithManifest.yml +++ b/.github/workflows/Workflow-Test-WithManifest.yml @@ -80,15 +80,15 @@ jobs: uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: docs - path: tests/srcWithManifestTestRepo/outputs/docs + path: tests/srcWithManifestTestRepo/.PSModule/docs - - name: Verify root Functions index is published + - name: Verify generated Functions index shell: pwsh run: | - $path = 'tests/srcWithManifestTestRepo/outputs/docs/index.md' + $path = 'tests/srcWithManifestTestRepo/.PSModule/docs/index.md' if (-not (Test-Path -Path $path)) { throw 'Expected root Functions index at ' + - 'tests/srcWithManifestTestRepo/outputs/docs/index.md.' + 'tests/srcWithManifestTestRepo/.PSModule/docs/index.md.' } $content = Get-Content -Path $path -Raw diff --git a/docs/content/guides/skipping-framework-tests.md b/docs/content/guides/skipping-framework-tests.md index 13a6cc03..a69a1265 100644 --- a/docs/content/guides/skipping-framework-tests.md +++ b/docs/content/guides/skipping-framework-tests.md @@ -26,7 +26,7 @@ Every source-code test ID, its meaning, and an example skip comment are listed i [Framework test IDs](../reference/framework-test-ids.md#source-code-tests). [Module tests](../reference/framework-test-ids.md#module-tests) run against the compiled module in the -`outputs/module` directory and typically don't need to be skipped, as they validate the final built module. +`.PSModule/module` directory and typically don't need to be skipped, as they validate the final built module. ## Example Usage diff --git a/docs/content/reference/framework-test-ids.md b/docs/content/reference/framework-test-ids.md index 694f0c65..880c5f3e 100644 --- a/docs/content/reference/framework-test-ids.md +++ b/docs/content/reference/framework-test-ids.md @@ -31,7 +31,7 @@ Run by the [Test source code](pipeline-stages.md#test-source-code) job against f ## Module tests Run by the [Framework test](pipeline-stages.md#framework-test) job against the compiled module in -`outputs/module`. Implemented in +`.PSModule/module`. Implemented in [PSModule - Module tests](https://github.com/PSModule/Process-PSModule/blob/main/.github/actions/Test-PSModule/src/tests/Module/PSModule/PSModule.Tests.ps1). | Name | Description |