Strengthen import validation (manifest + help) and harden Gitea workflow
This commit is contained in:
@@ -20,10 +20,48 @@ jobs:
|
||||
with:
|
||||
dotnet-version: '8.0.x'
|
||||
|
||||
- name: Build and test module
|
||||
- name: Install PowerShell 7 (if not present)
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if command -v pwsh >/dev/null 2>&1; then
|
||||
echo "pwsh already installed: $(pwsh --version)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends wget ca-certificates apt-transport-https gnupg
|
||||
|
||||
source /etc/os-release
|
||||
wget -q "https://packages.microsoft.com/config/ubuntu/${VERSION_ID}/packages-microsoft-prod.deb" -O /tmp/ms-prod.deb
|
||||
sudo dpkg -i /tmp/ms-prod.deb
|
||||
rm -f /tmp/ms-prod.deb
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y powershell
|
||||
pwsh --version
|
||||
|
||||
- name: Bootstrap PowerShellGet / NuGet provider
|
||||
shell: pwsh
|
||||
run: |
|
||||
./build.ps1 -RunTests
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
|
||||
if (-not (Get-PackageProvider -Name NuGet -ListAvailable -ErrorAction SilentlyContinue)) {
|
||||
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser | Out-Null
|
||||
}
|
||||
Get-PackageProvider -Name NuGet | Format-Table Name,Version
|
||||
|
||||
- name: Build and test module
|
||||
shell: pwsh
|
||||
run: ./build.ps1 -RunTests
|
||||
|
||||
- name: Validate module manifest
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$manifestPath = Join-Path $PWD 'Module/PSInfisicalAPI/PSInfisicalAPI.psd1'
|
||||
$manifest = Test-ModuleManifest -Path $manifestPath
|
||||
Write-Host "Manifest OK: $($manifest.Name) $($manifest.Version)"
|
||||
|
||||
- name: Verify PowerShell Gallery API key is configured
|
||||
shell: pwsh
|
||||
@@ -39,6 +77,7 @@ jobs:
|
||||
env:
|
||||
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
|
||||
run: |
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$moduleDir = Join-Path $PWD 'Module/PSInfisicalAPI'
|
||||
Write-Host "Publishing module from: $moduleDir"
|
||||
Publish-Module `
|
||||
|
||||
+52
-4
@@ -6,11 +6,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
|
||||
## 2026.06.02.1648
|
||||
|
||||
- Build produced from commit 430e3a00c921.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward) (carried forward)
|
||||
|
||||
## 2026.06.02.1638
|
||||
|
||||
@@ -18,11 +30,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
|
||||
## 2026.06.02.1648
|
||||
|
||||
- Build produced from commit 430e3a00c921.
|
||||
|
||||
## Unreleased (carried forward) (carried forward)
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward) (carried forward) (carried forward)
|
||||
|
||||
## 2026.06.02.1611
|
||||
|
||||
@@ -30,11 +54,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
|
||||
## 2026.06.02.1648
|
||||
|
||||
- Build produced from commit 430e3a00c921.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward) (carried forward)
|
||||
|
||||
## 2026.06.02.1638
|
||||
|
||||
@@ -42,11 +78,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward)
|
||||
|
||||
## 2026.06.02.1648
|
||||
|
||||
- Build produced from commit 430e3a00c921.
|
||||
|
||||
## Unreleased (carried forward) (carried forward) (carried forward)
|
||||
## Unreleased
|
||||
|
||||
## 2026.06.02.1724
|
||||
|
||||
- Build produced from commit 5801b4774af5.
|
||||
|
||||
## Unreleased (carried forward) (carried forward) (carried forward) (carried forward)
|
||||
|
||||
### Added
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@{
|
||||
RootModule = 'PSInfisicalAPI.psm1'
|
||||
ModuleVersion = '2026.06.02.1648'
|
||||
ModuleVersion = '2026.06.02.1724'
|
||||
GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51'
|
||||
Author = 'Grace Solutions'
|
||||
CompanyName = 'Grace Solutions'
|
||||
@@ -27,7 +27,7 @@
|
||||
LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html'
|
||||
ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI'
|
||||
ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.'
|
||||
CommitHash = '430e3a00c921'
|
||||
CommitHash = '5801b4774af5'
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -149,15 +149,33 @@ function Invoke-DotNet {
|
||||
|
||||
function Test-ModuleImports {
|
||||
param([System.IO.DirectoryInfo]$ModuleDirectory)
|
||||
Write-Step "Validating module import"
|
||||
Write-Step "Validating module import, manifest, and help"
|
||||
$manifestPath = [System.IO.Path]::Combine($ModuleDirectory.FullName, 'PSInfisicalAPI.psd1')
|
||||
$script = @"
|
||||
`$ErrorActionPreference = 'Stop'
|
||||
|
||||
`$manifest = Test-ModuleManifest -Path '$manifestPath'
|
||||
if (`$null -eq `$manifest) {
|
||||
throw "Test-ModuleManifest returned no result for '$manifestPath'."
|
||||
}
|
||||
|
||||
Import-Module -Name '$($ModuleDirectory.FullName)' -Force
|
||||
|
||||
`$cmds = @('Connect-Infisical','Disconnect-Infisical','Get-InfisicalSecrets','Get-InfisicalSecret','ConvertTo-InfisicalSecretDictionary','Export-InfisicalSecrets')
|
||||
foreach (`$c in `$cmds) {
|
||||
if (-not (Get-Command -Name `$c -Module PSInfisicalAPI -ErrorAction SilentlyContinue)) {
|
||||
throw "Cmdlet not found: `$c"
|
||||
}
|
||||
|
||||
`$help = Get-Help -Name `$c -ErrorAction SilentlyContinue
|
||||
if (`$null -eq `$help) {
|
||||
throw "Get-Help returned nothing for cmdlet: `$c"
|
||||
}
|
||||
}
|
||||
|
||||
`$about = Get-Help -Name 'about_PSInfisicalAPI' -ErrorAction SilentlyContinue
|
||||
if (`$null -eq `$about -or [string]::IsNullOrWhiteSpace((`$about | Out-String))) {
|
||||
throw "Get-Help 'about_PSInfisicalAPI' returned no content. Ensure en-US/about_PSInfisicalAPI.help.txt is present."
|
||||
}
|
||||
"@
|
||||
|
||||
@@ -252,11 +270,7 @@ Write-Manifest -Path $manifestPath -ModuleVersion $buildVersion -CommitHash $com
|
||||
|
||||
Update-Changelog -Version $buildVersion -CommitHash $commitHash
|
||||
|
||||
try {
|
||||
Test-ModuleImports -ModuleDirectory $ModuleRoot
|
||||
} catch {
|
||||
Write-Warning "Module import validation reported: $($_.Exception.Message)"
|
||||
}
|
||||
|
||||
if ($CreateRelease.IsPresent) {
|
||||
$releaseDir = [System.IO.DirectoryInfo][System.IO.Path]::Combine($ReleasesDir.FullName, $buildVersion)
|
||||
|
||||
Reference in New Issue
Block a user