Skip to content

PSModule/PSMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

PSMA — PSModule Actions

A single GitHub Action, backed by a single internal PowerShell library, that provides all of the PSModule framework's action logic behind one control script dispatched by a Mode.

This replaces the fleet of one-capability action repositories (Build-PSModule, Test-PSModule, Publish-PSModule, Resolve-PSModuleVersion, Get-PSModuleSettings, Document-PSModule, Get-PesterCodeCoverage, Get-PesterTestResults, Install-PSModuleHelpers) with one repository that shares a single lifecycle and one reusable library.

How it works

action.yml            single composite action; input `Mode` + parameters
└─ src/main.ps1       control script: imports the library, switches on Mode
   └─ src/PSMA/       the single internal library, reused by every mode
      ├─ functions/public/    one function per mode (Build, Test, Publish, …)
      └─ functions/private/   shared helpers reused across all modes

The library is loaded once and reused across every call, so version, build, test, and publish logic live in one place instead of being duplicated per action.

Usage

Callers (the PSModule reusable workflows) invoke a single action and pick the task with Mode:

- uses: PSModule/PSMA@<sha> # vX.Y.Z
  with:
    Mode: Build
    Name: MyModule
    Version: 1.2.3

Modes

Mode Library function Ports logic from
Settings Get-PSMASettings Get-PSModuleSettings
Version Resolve-PSMAVersion Resolve-PSModuleVersion
Build Build-PSMAModule Build-PSModule
Test Test-PSMAModule Test-PSModule
CodeCoverage Get-PSMACodeCoverage Get-PesterCodeCoverage
TestResults Get-PSMATestResult Get-PesterTestResults
Document Build-PSMADocumentation Document-PSModule
Publish Publish-PSMAModule Publish-PSModule

Status: foundational scaffold. The library structure, dispatcher, action interface, tests, and CI are in place; each mode function is a working skeleton with a PORT FROM: marker where the real logic from the existing action is moved in. The shared bootstrap (Initialize-PSMA) replaces Install-PSModuleHelpers.

This GitHub Action is a part of the PSModule framework.

About

PSModule Actions - one library-backed action dispatched by Mode

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors