Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: PSModule/Test-PSModule
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1fd648f
Choose a base ref
...
head repository: PSModule/Test-PSModule
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: d6bc94d
Choose a head ref
  • 1 commit
  • 104 files changed
  • 1 contributor

Commits on Apr 17, 2025

  1. 🌟 [Major]: Support parallel workflows and split in concerns (#98)

    ## Description
    
    This PR introduces a major update to the `Test-PSModule` GitHub Action,
    enabling flexible, parallelizable testing workflows — a key requirement
    for `Process-PSModule` v4.
    
    The action now supports isolated, configuration-driven test runs that
    can be executed in parallel using GitHub matrix jobs. This enables
    `Process-PSModule` to split testing across stages and environments
    (e.g., OS matrix, linting vs runtime tests), significantly improving
    modularity and execution time. Separate actions are created to collect
    and evaluate results from tests run in matrices.
    
    ### Changes
    
    - Replaces the previous `TestType` with `Settings` that defines which
    test preset to execute:
      - `SourceCode`: Lint source code using PSModule rules.
      - `Module`: Validate module using PSModule rules.
    - Move common PSModule functions to
    [Install-PSModuleHelpers](https://github.com/PSModule/Install-PSModuleHelpers).
    - Parallel Execution Support. Designed for matrix-based execution, e.g.:
      - Run linter and style tests in parallel.
      - Run Pester tests across Windows/macOS/Linux runners.
    - Delegates analysis and testing to
    -
    [Invoke-ScriptAnalyzer](https://github.com/PSModule/Invoke-ScriptAnalyzer)
    for static code analysis.
    - [Invoke-Pester](https://github.com/PSModule/Invoke-Pester) for test
    execution and coverage .
    These bring better portability, customization, and feature alignment
    with the broader PSModule ecosystem.
    - JSON Artifacts for Downstream Evaluation
    - Emits json structured outputs from Pesters test results and code
    coverage, so that the data from a matrix job can be evaluated in a later
    job using
    [Get-PesterTestResults](https://github.com/PSModule/Get-PesterTestResults)
    and
    [Get-PesterCodeCoverage](https://github.com/PSModule/Get-PesterCodeCoverage)
    - Clean Outputs for Chaining
    - Exposes a bigger set of data as outputs for downstream steps to
    consume.
    - Custom Analyzer Rule Support
    - Automatically picks up repo-level `PSScriptAnalyzerSettings.psd1` when
    running `SourceCode`.
    
    
    ## Type of change
    
    <!-- Use the check-boxes [x] on the options that are relevant. -->
    
    - [ ] 📖 [Docs]
    - [ ] 🪲 [Fix]
    - [ ] 🩹 [Patch]
    - [ ] ⚠️ [Security fix]
    - [ ] 🚀 [Feature]
    - [x] 🌟 [Breaking change]
    
    ## Checklist
    
    <!-- Use the check-boxes [x] on the options that are relevant. -->
    
    - [x] I have performed a self-review of my own code
    - [x] I have commented my code, particularly in hard-to-understand areas
    MariusStorhaug authored Apr 17, 2025
    Configuration menu
    Copy the full SHA
    d6bc94d View commit details
    Browse the repository at this point in the history
Loading