Skip to content

Settings#

The workflow is configured using a settings file in the module repository. The file can be a JSON, YAML, or PSD1 file. By default, it will look for .github/PSModule.yml.

The settings listed on this page are the user-facing configuration contract in .github/PSModule.yml. During the Plan phase, Process-PSModule enriches this input into an internal runtime Settings object that downstream workflows consume. Internal runtime paths in workflow docs (for example, Settings.Publish.Module.Resolution.*) describe that enriched inter-workflow contract, not a different authoring format for repository settings files. See Pipeline stages for that contract.

Simple, Standard, and Advanced test profiles are repository conventions, not settings. .github/PSModule.yml has no layout or suite-matrix selector; Process-PSModule discovers the files under tests/ recursively and computes its internal Settings.Test.Module.Suites matrix from them.

Test discovery and change triggering are separate. The default ImportantFilePatterns match only ^src/ and ^README\.md$, so a test-only change does not enter the important-change build, test, and publish path. Repositories that need test or automation changes to exercise that path must add ^tests/ and any relevant settings or workflow paths while retaining every default they still need.

For worked examples, see Configuring the pipeline.

Available settings#

Name Type Description Default
Name String Name of the module to publish. Defaults to the repository name. null
ImportantFilePatterns Array Regular expression patterns that identify important files. Changes matching these patterns trigger build, test, and publish stages. When set, fully replaces the defaults. ['^src/', '^README\.md$']
Test.Skip Boolean Skip all tests false
Test.Linux.Skip Boolean Skip tests on Linux false
Test.MacOS.Skip Boolean Skip tests on macOS false
Test.Windows.Skip Boolean Skip tests on Windows false
Test.SourceCode.Skip Boolean Skip source code tests false
Test.SourceCode.Linux.Skip Boolean Skip source code tests on Linux false
Test.SourceCode.MacOS.Skip Boolean Skip source code tests on macOS false
Test.SourceCode.Windows.Skip Boolean Skip source code tests on Windows false
Test.PSModule.Skip Boolean Skip PSModule framework tests false
Test.PSModule.Linux.Skip Boolean Skip PSModule framework tests on Linux false
Test.PSModule.MacOS.Skip Boolean Skip PSModule framework tests on macOS false
Test.PSModule.Windows.Skip Boolean Skip PSModule framework tests on Windows false
Test.Module.Skip Boolean Skip module tests false
Test.Module.Linux.Skip Boolean Skip module tests on Linux false
Test.Module.MacOS.Skip Boolean Skip module tests on macOS false
Test.Module.Windows.Skip Boolean Skip module tests on Windows false
Test.TestResults.Skip Boolean Skip test result processing false
Test.CodeCoverage.Skip Boolean Skip code coverage tests false
Test.CodeCoverage.PercentTarget Integer Target code coverage percentage 0
Test.CodeCoverage.StepSummaryMode String Step summary mode for code coverage reports 'Missed, Files'
Build.Skip Boolean Skip all build tasks false
Build.Module.Skip Boolean Skip module build false
Build.Docs.Skip Boolean Skip documentation build false
Build.Docs.ShowSummaryOnSuccess Boolean Show super-linter summary on success for documentation linting false
Build.Site.Skip Boolean Skip site build false
Publish.Module.Skip Boolean Skip module publishing false
Publish.Module.AutoCleanup Boolean Automatically clean up old prerelease tags when merging to main or when a PR is abandoned true
Publish.Module.AutoPatching Boolean Automatically patch module version true
Publish.Module.IncrementalPrerelease Boolean Use incremental prerelease versioning true
Publish.Module.DatePrereleaseFormat String Format for date-based prerelease (uses .NET DateTime format strings) ''
Publish.Module.VersionPrefix String Prefix for version tags 'v'
Publish.Module.MajorLabels String Labels indicating a major version bump 'major, breaking'
Publish.Module.MinorLabels String Labels indicating a minor version bump 'minor, feature'
Publish.Module.PatchLabels String Labels indicating a patch version bump 'patch, fix'
Publish.Module.IgnoreLabels String Labels indicating no release 'NoRelease'
Publish.Module.UsePRTitleAsReleaseName Boolean Use the PR title as the GitHub release name instead of version string false
Publish.Module.UsePRBodyAsReleaseNotes Boolean Use the PR body as the release notes content true
Publish.Module.UsePRTitleAsNotesHeading Boolean Prepend PR title as H1 heading with PR number link before the body true
Linter.Skip Boolean Skip repository linting false
Linter.ShowSummaryOnSuccess Boolean Show super-linter summary on success for repository linting false
Linter.env Object Environment variables for super-linter configuration {}

Defaults#

`PSModule.yml` with all defaults
Name: null

ImportantFilePatterns:
  - '^src/'
  - '^README\.md$'

Build:
  Skip: false
  Module:
    Skip: false
  Docs:
    Skip: false
    ShowSummaryOnSuccess: false
  Site:
    Skip: false

Test:
  Skip: false
  Linux:
    Skip: false
  MacOS:
    Skip: false
  Windows:
    Skip: false
  SourceCode:
    Skip: false
    Linux:
      Skip: false
    MacOS:
      Skip: false
    Windows:
      Skip: false
  PSModule:
    Skip: false
    Linux:
      Skip: false
    MacOS:
      Skip: false
    Windows:
      Skip: false
  Module:
    Skip: false
    Linux:
      Skip: false
    MacOS:
      Skip: false
    Windows:
      Skip: false
  TestResults:
    Skip: false
  CodeCoverage:
    Skip: false
    PercentTarget: 0
    StepSummaryMode: 'Missed, Files'

Publish:
  Module:
    Skip: false
    AutoCleanup: true
    AutoPatching: true
    IncrementalPrerelease: true
    DatePrereleaseFormat: ''
    VersionPrefix: 'v'
    MajorLabels: 'major, breaking'
    MinorLabels: 'minor, feature'
    PatchLabels: 'patch, fix'
    IgnoreLabels: 'NoRelease'
    UsePRTitleAsReleaseName: false
    UsePRBodyAsReleaseNotes: true
    UsePRTitleAsNotesHeading: true

Linter:
  Skip: false
  ShowSummaryOnSuccess: false
  env: {}