Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
cacbd76
Initial commit
psjamesp Jun 19, 2025
3a1fc4c
Refactor build process and update documentation
HeyItsGilbert Jul 14, 2025
223cc90
chore: ✨ Update GitHub Actions workflow and spell-check configuration
HeyItsGilbert Jul 14, 2025
1d99740
chore: ✨ Update permissions and action versions in workflow
HeyItsGilbert Jul 14, 2025
d44479a
chore: ✨ Update permissions in workflow
HeyItsGilbert Jul 14, 2025
88eadb7
Merge pull request #434 from PowerShellOrg/FixBuild
psjamesp Jul 14, 2025
9b9fe53
test: ✨ Add tests from Stucco
HeyItsGilbert Jul 14, 2025
1cfca44
chore: ✨ Update project files and configurations
HeyItsGilbert Jul 14, 2025
2bf5b5f
chore(tests): ✨ Add build script execution in BeforeDiscovery
HeyItsGilbert Jul 14, 2025
f3f3184
Merge pull request #435 from PowerShellOrg/FixHelp
psjamesp Jul 15, 2025
890bbd0
feat: ✨ Rename `Get-PlasterManifestPathForCulture` function
HeyItsGilbert Jul 15, 2025
89d3e62
feat: ✨ Add `Initialize-PredefinedVariables` function and correspondi…
HeyItsGilbert Jul 15, 2025
33a80ad
feat: ✨ Enhance documentation for `Invoke-PlasterOperation` and `Writ…
HeyItsGilbert Jul 15, 2025
1867c28
feat: ✨ Add `Resolve-ModuleVersionString` function and corresponding …
HeyItsGilbert Jul 15, 2025
e944909
feat: ✨ Add `Get-ModuleExtension` function to retrieve module extensions
HeyItsGilbert Jul 15, 2025
05c01a5
Refactor + Tests for Get-ModuleExtension
HeyItsGilbert Jul 15, 2025
cca71cb
test: 🧪 Update tests for `Initialize-PredefinedVariables`
HeyItsGilbert Jul 15, 2025
6b70d04
Merge pull request #436 from PowerShellOrg/AddTests
psjamesp Jul 15, 2025
c810135
test: 🧪 Update mock implementation in `Get-ModuleExtension` tests
HeyItsGilbert Jul 15, 2025
0fc522e
Migrate private functions out of Invoke-Plaster
HeyItsGilbert Jul 16, 2025
280dde2
Update publish.yaml
HeyItsGilbert Jul 16, 2025
3aa32ca
Ensure paramblock usage
HeyItsGilbert Jul 16, 2025
437ca04
Migrate Private Functions out of Invoke-Plaster (#438)
psjamesp Jul 16, 2025
399fe46
Jsonv1
psjamesp Jul 3, 2025
a7a54f4
fixed empty paramter and content issues
psjamesp Jul 4, 2025
17da0ba
Updated json support
psjamesp Jul 9, 2025
694a9c5
More updates
psjamesp Jul 9, 2025
a4c9880
Add validation functions for Plaster manifest content and parameters
HeyItsGilbert Jul 17, 2025
82f1d5e
fix(tests): 🐛 Update JSON test script and fix path handling
HeyItsGilbert Jul 17, 2025
6e761be
fix(tests): 🐛 Update path handling in test for JSON modification
HeyItsGilbert Jul 17, 2025
1fc47c7
fix(debug): 🐛 Refactor debug harness for improved module loading
HeyItsGilbert Jul 17, 2025
011a1a0
Updated Examples
psjamesp Jul 20, 2025
def3711
update readme
psjamesp Jul 20, 2025
cf653cb
update readme (#441)
psjamesp Aug 4, 2025
36a3a01
fix(json): 🐛 Improve error handling for file and template actions
HeyItsGilbert Feb 11, 2026
016e9c9
chore(release): update CHANGELOG to follow Keep a Changelog format
HeyItsGilbert Feb 11, 2026
15c6539
chore(release): 🔖 update module version to 2.0.0-beta1
HeyItsGilbert Feb 11, 2026
857433f
chore(workflow): 🔧 update branch formatting and module version
HeyItsGilbert Feb 11, 2026
3161c6c
chore(workflow): ⚡ update module specification in publish workflow
HeyItsGilbert Feb 11, 2026
13ae966
chore(workflow): 🔧 update ModuleFast-action version in publish workflow
HeyItsGilbert Feb 11, 2026
e685685
chore(workflow): 🔧 refactor version comparison logic in publish workflow
HeyItsGilbert Feb 11, 2026
00a42e0
chore(release): 🔖 update module version to 2.0.0 alpha
HeyItsGilbert Feb 11, 2026
a01a711
Replace null-coalescing operators with PS5.1-compatible syntax (#443)
Copilot Feb 12, 2026
9632778
chore(release): 🔖 update prerelease version to alpha1
HeyItsGilbert Feb 12, 2026
5651d87
Fixed conditional attribute evaluation for test
tstager Apr 1, 2026
86d0a29
chore(logo): update logo so 2.0 is clearer
jakehildreth Apr 11, 2026
5ecb406
V2 (#448)
psjamesp Apr 12, 2026
3d78fca
Fixed conditional attribute evaluation for test (#445)
psjamesp Apr 12, 2026
20c9cc2
Refactor build.ps1 for improved parameter handling
HeyItsGilbert Apr 13, 2026
41c07d1
Add Bootstrap option to publish task in workflow
HeyItsGilbert Apr 13, 2026
86d8c43
Remove placeholder internal nuget repo from Bootstrap
HeyItsGilbert Apr 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 27 additions & 16 deletions .github/workflows/PesterReports.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# spell-checker:ignore potatoqualitee psdepend psmodulecache
name: PesterReports
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
checks: write
pull-requests: write

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Expand All @@ -21,40 +23,49 @@ jobs:
os: [ubuntu-latest, windows-latest, macOS-latest]
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v2
# Setup Build Helpers
- name: SetupBuildHelpers
- uses: actions/checkout@v4
- name: Install and cache PSDepend
id: psdepend
uses: potatoqualitee/psmodulecache@v6.2.1
with:
modules-to-cache: PSDepend:0.3.8
- name: Determine modules to cache
shell: pwsh
id: modules-to-cache
run: |
Install-Module BuildHelpers -Scope CurrentUser -Force | Out-Null
Install-Module PowerShellBuild -Scope CurrentUser -Force | Out-Null
Install-Module PSScriptAnalyzer -Scope CurrentUser -Force | Out-Null
Install-Module platyPS -Scope CurrentUser -Force | Out-Null
$dependencies = Get-Dependency
$f = $dependencies | ?{ $_.DependencyType -eq 'PSGalleryModule' } | %{ "{0}:{1}" -F $_.DependencyName, $_.Version}
Write-Output "::set-output name=ModulesToCache::$($f -join ', ')"
- name: Install and cache PowerShell modules
id: psmodulecache
uses: potatoqualitee/psmodulecache@v6.2.1
with:
modules-to-cache: ${{ steps.modules-to-cache.outputs.ModulesToCache }}
shell: pwsh
- name: Test
shell: pwsh
run: |
./build.ps1 -Task Test
run: ./build.ps1 -Task Test
- name: Upload Unit Test Results
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4.6.2
with:
name: Unit Test Results (OS ${{ matrix.os }})
path: ./tests/Out/testResults.xml
path: ./tests/out/testResults.xml

publish-test-results:
name: "Publish Unit Tests Results"
needs: test
runs-on: ubuntu-latest
# the test job might be skipped, we don't need to run this job then
if: success() || failure()
if: (!cancelled())

steps:
- name: Download Artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4.3.0
with:
path: artifacts

- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1
uses: EnricoMi/publish-unit-test-result-action@v2.20.0
with:
files: artifacts/**/*.xml
30 changes: 10 additions & 20 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -1,34 +1,24 @@
name: Publish Module
on:
pull_request:
branches: [ master ]
# Only on workflow dispatch, so that we can control when to publish.
workflow_dispatch:
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Install and cache PowerShell modules
id: psmodulecache
uses: potatoqualitee/psmodulecache@v5.1
- name: ⚡ ModuleFast with Specification
uses: JustinGrote/ModuleFast-action@v0.0.1
with:
modules-to-cache: BuildHelpers, PowerShellBuild, psake, PSScriptAnalyzer, platyPS
- shell: pwsh
# Give an id to the step, so we can reference it later
id: check_if_versions_bumped
run: |
[version]$GalleryVersion = Get-NextNugetPackageVersion -Name Plaster -ErrorAction Stop
[version]$GithubVersion = Get-MetaData -Path ./Plaster/Plaster.psd1 -PropertyName ModuleVersion -ErrorAction Stop
$bumped = $GithubVersion -ge $GalleryVersion

# Set the output named "version_bumped"
Write-Host "::set-output name=version_bumped::$bumped"

# Only publish (from master) if versions
specification: |
BuildHelpers
PowerShellBuild
psake
PSScriptAnalyzer
platyPS
- name: Build and publish
if: steps.check_if_versions_bumped.outputs.version_bumped == 'True'
env:
PSGALLERY_API_KEY: ${{ secrets.GALLERY_KEY }}
shell: pwsh
run: |
./build.ps1 -Task Publish
./build.ps1 -Task Publish -Bootstrap
5 changes: 5 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"MD024": {
"siblings_only": true
}
}
12 changes: 9 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@
//-------- Files configuration --------
// When enabled, will trim trailing whitespace when you save a file.
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"editor.insertSpaces": true,
"editor.tabSize": 4,
// -------- Search configuration --------
// Exclude the Output folder from search results.
"search.exclude": {
"Release": true
"Output/**": true
},
//-------- PowerShell Configuration --------
// Use a custom PowerShell Script Analyzer settings file for this workspace.
// Relative paths for this setting are always relative to the workspace root dir.
"powershell.scriptAnalysis.settingsPath": "ScriptAnalyzerSettings.psd1",
//----------Code Formatting ----------------
"powershell.codeFormatting.preset": "OTBS",
"editor.formatOnSave": true
}
"editor.formatOnSave": true,
"powershell.scriptAnalysis.enable": true
}
49 changes: 33 additions & 16 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,60 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",

// Start PowerShell
"windows": {
"options": {
"shell": {
"executable": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"args": [ "-NoProfile", "-ExecutionPolicy", "Bypass", "-Command" ]
"executable": "pwsh.exe",
"args": [
"-NoProfile",
"-ExecutionPolicy",
"Bypass",
"-Command"
]
}
}
},
"linux": {
"options": {
"shell": {
"executable": "/usr/bin/pwsh",
"args": [ "-NoProfile", "-Command" ]
"args": [
"-NoProfile",
"-Command"
]
}
}
},
"osx": {
"options": {
"shell": {
"executable": "/usr/local/bin/pwsh",
"args": [ "-NoProfile", "-Command" ]
"args": [
"-NoProfile",
"-Command"
]
}
}
},

// Associate with test task runner
"tasks": [
{
"label": "Bootstrap",
"type": "shell",
"command": "./build.ps1 -Task Init -Bootstrap",
"problemMatcher": []
},
{
"label": "Clean",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList Clean",
"command": "./build.ps1 -Task Clean",
"problemMatcher": []
},
{
"label": "Build",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList Build",
"command": "./build.ps1 -Task Build",
"group": {
"kind": "build",
"isDefault": true
Expand All @@ -50,36 +65,38 @@
{
"label": "BuildHelp",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList BuildHelp",
"command": "./build.ps1 -Task BuildHelp",
"problemMatcher": []
},
{
"label": "Analyze",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList Analyze",
"command": "./build.ps1 -Task Analyze",
"problemMatcher": []
},
{
"label": "Install",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList Install",
"command": "./build.ps1 -Task Install",
"problemMatcher": []
},
{
"label": "Publish",
"type": "shell",
"command": "Invoke-psake build.psake.ps1 -taskList Publish",
"command": "./build.ps1 -Task Publish",
"problemMatcher": []
},
{
"label": "Test",
"type": "shell",
"command": "Invoke-Pester -PesterOption @{IncludeVSCodeMarker=$true}",
"command": "./build.ps1 -Task Test",
"group": {
"kind": "test",
"isDefault": true
},
"problemMatcher": [ "$pester" ]
"problemMatcher": [
"$pester"
]
}
]
}
]
}
Loading
Loading