-
Notifications
You must be signed in to change notification settings - Fork 0
🌟[Major] Introducing Get-PSModuleSettings GitHub Action #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR introduces a new GitHub Action called Get-PSModuleSettings that replaces the previous template action. The action loads PowerShell module workflow settings from configuration files (JSON, YAML, or PSD1 formats), processes test suite configurations, computes job run conditions, and outputs structured settings for use in CI pipelines.
Key changes include:
- Complete rewrite of the main script logic to handle settings file parsing and test suite generation
- New action definition with settings-focused inputs/outputs replacing the template greeting action
- Addition of test configuration file and validation workflow steps
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/main.ps1 | Complete rewrite from template to settings processing logic with test suite generation and job condition calculation |
| action.yml | Renamed from Template-Action to Get-PSModuleSettings with new inputs (SettingsPath) and outputs (Settings JSON) |
| tests/PSModule.yml | New test configuration file with module test settings including skip flags and linter environment variables |
| tests/README.md | Removed placeholder content |
| .github/workflows/Action-Test.yml | Updated to test the new action with settings validation steps for outputs |
| .github/workflows/Linter.yml | Added linter validation exclusions for biome, zizmor, and jscpd |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 8 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…Directory functions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…est item retrieval
…r test item retrieval
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| TestModule = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.PSModule) | ||
| BeforeAllModuleLocal = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module) | ||
| TestModuleLocal = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module) | ||
| AfterAllModuleLocal = $true # Always runs if Test-ModuleLocal was not skipped |
Copilot
AI
Jan 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment states "Always runs if Test-ModuleLocal was not skipped" but the condition is simply $true without checking whether Test-ModuleLocal actually ran. This means AfterAllModuleLocal will always be set to true, even when TestModuleLocal is false (which happens when Module test suite is null). Consider changing this to match the TestModuleLocal condition: $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module) to ensure cleanup only runs when the tests actually execute.
| AfterAllModuleLocal = $true # Always runs if Test-ModuleLocal was not skipped | |
| AfterAllModuleLocal = $isNotAbandonedPR -and ($null -ne $settings.TestSuites.Module) # Always runs if Test-ModuleLocal was not skipped |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This release introduces a new GitHub Action,
Get-PSModuleSettings, which replaces the previous template action in PSModule/Process-PSModule. The action is designed to load and process PowerShell module workflow settings from configuration files, compute job run conditions, and output structured settings and test suite information for use in CI pipelines.How It Works
The
Get-PSModuleSettingsaction:Configuration Format Support
The action supports three configuration formats:
Test Suite Generation
The action automatically discovers and categorizes tests into three types:
Test discovery supports:
*.Configuration.ps1- Test configuration files*.Container.ps1- Test container files*.Tests.ps1- Standard Pester test filesJob Run Conditions
The action calculates intelligent run conditions for each workflow job based on: