@@ -32,10 +32,11 @@ jobs:
3232 NUGET_API_KEY : ${{ secrets.NUGET_API_KEY }}
3333 PSGALLERY_API_KEY : ${{ secrets.PSGALLERY_API_KEY }}
3434
35- - uses : actions/upload-artifact@v4
35+ - name : Upload Built Modules
36+ uses : actions/upload-artifact@v4
3637 with :
37- name : ModuleBuilder
38- path : Modules/ModuleBuilder
38+ name : OutputModules
39+ path : Modules
3940
4041 - uses : actions/upload-artifact@v4
4142 with :
@@ -62,33 +63,40 @@ jobs:
6263 matrix :
6364 os : [windows-latest, ubuntu-latest, macos-latest]
6465 steps :
65- - name : Download Build Output
66+ - name : Download build.requires.psd1
6667 uses : actions/download-artifact@v4
6768 with :
68- name : ModuleBuilder
69- path : Modules/ModuleBuilder # /home/runner/work/ModuleBuilder/ModuleBuilder/Modules/ModuleBuilder
69+ name : build.requires.psd1
7070 - name : Download Pester Tests
7171 uses : actions/download-artifact@v4
7272 with :
7373 name : PesterTests
7474 path : PesterTests
75- - name : Download build.requires.psd1
75+ - name : Download Build Output
7676 uses : actions/download-artifact@v4
7777 with :
78- name : build.requires.psd1
79- - name : ⚡ Install PowerShell Modules
80- uses : JustinGrote/ModuleFast-action@v0.0.1
81- - name : Put Build output in PATH
82- shell : pwsh
83- run : | # PowerShell
84- Convert-Path Modules -OutVariable BuiltModules
85- Add-Content -Path $env:GITHUB_PATH -Value $BuiltModules -Encoding utf8
86- # Uninstall the "installed" copy of ModuleBuilder
87- Get-Module -Name ModuleBuilder -List | Where ModuleBase -notmatch ([regex]::escape($pwd)) | Split-Path | Remove-Item -Recurse -Force
88- - name : Put Build output in PATH
78+ name : Modules
79+ path : Modules # /home/runner/work/ModuleBuilder/ModuleBuilder/Modules
80+ - name : Install Output Modules
8981 shell : pwsh
9082 run : | # PowerShell
91- $Env:PATH -split ([IO.Path]::PathSeparator) | Out-Host
83+ $ModuleDestination = if ($IsWindows) {
84+ Join-Path ([Environment]::GetFolderPath('MyDocuments')) 'PowerShell/Modules'
85+ } else {
86+ Join-Path $HOME '.local/share/powershell/Modules'
87+ }
88+
89+ Get-ChildItem -Directory Modules -OutVariable Modules
90+ | Move-Item -Destination $ModuleDestination -Force
91+
92+ Write-Host "Installing $($Modules -join ', ') to $ModuleDestination"
93+ $Env:PSModulePath -split ([IO.Path]::PathSeparator) | Out-Host
94+
95+ @(Get-Content build.requires.psd1)
96+ | Where { $_ -notmatch "ModuleBuilder"}
97+ | Set-Content build.requires.psd1
98+ - name : ⚡ Install Required Modules
99+ uses : JustinGrote/ModuleFast-action@v0.0.1
92100 - name : Invoke Pester Tests
93101 id : pester
94102 uses : zyborg/pester-tests-report@v1
0 commit comments