Rebrand to Grace Solutions; add README, about_ help, Gitea CI/CD, track Module bin #1
@@ -20,10 +20,48 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
dotnet-version: '8.0.x'
|
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
|
shell: pwsh
|
||||||
run: |
|
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
|
- name: Verify PowerShell Gallery API key is configured
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
@@ -39,6 +77,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
|
PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }}
|
||||||
run: |
|
run: |
|
||||||
|
$ErrorActionPreference = 'Stop'
|
||||||
$moduleDir = Join-Path $PWD 'Module/PSInfisicalAPI'
|
$moduleDir = Join-Path $PWD 'Module/PSInfisicalAPI'
|
||||||
Write-Host "Publishing module from: $moduleDir"
|
Write-Host "Publishing module from: $moduleDir"
|
||||||
Publish-Module `
|
Publish-Module `
|
||||||
|
|||||||
+52
-4
@@ -6,11 +6,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 2026.06.02.1724
|
||||||
|
|
||||||
|
- Build produced from commit 5801b4774af5.
|
||||||
|
|
||||||
|
## Unreleased (carried forward)
|
||||||
|
|
||||||
## 2026.06.02.1648
|
## 2026.06.02.1648
|
||||||
|
|
||||||
- Build produced from commit 430e3a00c921.
|
- 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
|
## 2026.06.02.1638
|
||||||
|
|
||||||
@@ -18,11 +30,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 2026.06.02.1724
|
||||||
|
|
||||||
|
- Build produced from commit 5801b4774af5.
|
||||||
|
|
||||||
|
## Unreleased (carried forward)
|
||||||
|
|
||||||
## 2026.06.02.1648
|
## 2026.06.02.1648
|
||||||
|
|
||||||
- Build produced from commit 430e3a00c921.
|
- 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
|
## 2026.06.02.1611
|
||||||
|
|
||||||
@@ -30,11 +54,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 2026.06.02.1724
|
||||||
|
|
||||||
|
- Build produced from commit 5801b4774af5.
|
||||||
|
|
||||||
|
## Unreleased (carried forward)
|
||||||
|
|
||||||
## 2026.06.02.1648
|
## 2026.06.02.1648
|
||||||
|
|
||||||
- Build produced from commit 430e3a00c921.
|
- 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
|
## 2026.06.02.1638
|
||||||
|
|
||||||
@@ -42,11 +78,23 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 2026.06.02.1724
|
||||||
|
|
||||||
|
- Build produced from commit 5801b4774af5.
|
||||||
|
|
||||||
|
## Unreleased (carried forward)
|
||||||
|
|
||||||
## 2026.06.02.1648
|
## 2026.06.02.1648
|
||||||
|
|
||||||
- Build produced from commit 430e3a00c921.
|
- 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
|
### Added
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
@{
|
@{
|
||||||
RootModule = 'PSInfisicalAPI.psm1'
|
RootModule = 'PSInfisicalAPI.psm1'
|
||||||
ModuleVersion = '2026.06.02.1648'
|
ModuleVersion = '2026.06.02.1724'
|
||||||
GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51'
|
GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51'
|
||||||
Author = 'Grace Solutions'
|
Author = 'Grace Solutions'
|
||||||
CompanyName = 'Grace Solutions'
|
CompanyName = 'Grace Solutions'
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html'
|
LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html'
|
||||||
ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI'
|
ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI'
|
||||||
ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.'
|
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 {
|
function Test-ModuleImports {
|
||||||
param([System.IO.DirectoryInfo]$ModuleDirectory)
|
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 = @"
|
$script = @"
|
||||||
`$ErrorActionPreference = 'Stop'
|
`$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
|
Import-Module -Name '$($ModuleDirectory.FullName)' -Force
|
||||||
|
|
||||||
`$cmds = @('Connect-Infisical','Disconnect-Infisical','Get-InfisicalSecrets','Get-InfisicalSecret','ConvertTo-InfisicalSecretDictionary','Export-InfisicalSecrets')
|
`$cmds = @('Connect-Infisical','Disconnect-Infisical','Get-InfisicalSecrets','Get-InfisicalSecret','ConvertTo-InfisicalSecretDictionary','Export-InfisicalSecrets')
|
||||||
foreach (`$c in `$cmds) {
|
foreach (`$c in `$cmds) {
|
||||||
if (-not (Get-Command -Name `$c -Module PSInfisicalAPI -ErrorAction SilentlyContinue)) {
|
if (-not (Get-Command -Name `$c -Module PSInfisicalAPI -ErrorAction SilentlyContinue)) {
|
||||||
throw "Cmdlet not found: `$c"
|
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
|
Update-Changelog -Version $buildVersion -CommitHash $commitHash
|
||||||
|
|
||||||
try {
|
|
||||||
Test-ModuleImports -ModuleDirectory $ModuleRoot
|
Test-ModuleImports -ModuleDirectory $ModuleRoot
|
||||||
} catch {
|
|
||||||
Write-Warning "Module import validation reported: $($_.Exception.Message)"
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($CreateRelease.IsPresent) {
|
if ($CreateRelease.IsPresent) {
|
||||||
$releaseDir = [System.IO.DirectoryInfo][System.IO.Path]::Combine($ReleasesDir.FullName, $buildVersion)
|
$releaseDir = [System.IO.DirectoryInfo][System.IO.Path]::Combine($ReleasesDir.FullName, $buildVersion)
|
||||||
|
|||||||
Reference in New Issue
Block a user