Skip to content

Action folders follow the entry script and README conventions #442

Description

Context and request

Observed behavior: the composite actions under .github/actions/ do not follow the organization's action-folder conventions consistently.

Entry script naming — the GitHub Actions standard says the entry script is named main.<ext>. Thirteen of fifteen actions comply; two do not:

Action Entry script
Publish-PSModule src/publish.ps1
Cleanup-PSModulePrereleases src/cleanup.ps1

Action READMEs — the same standard says each action keeps a README describing its inputs, outputs, and behavior. Eight of fifteen have none: Build-PSModule, Cleanup-PSModulePrereleases, Document-PSModule, Expose-TestData, Get-PSModuleSettings, Publish-PSModule, Resolve-PSModuleVersion, Test-PSModule.

Expected behavior: every action's entry point is src/main.ps1, and every action folder carries a README so the action's contract is readable without opening action.yml and the script.

Reproduction: compare .github/actions/*/src/ and .github/actions/*/README.md against the standard.

Environment: Process-PSModule, current main.

Regression: no. These are consistency gaps, not behavior defects.

Workaround: none needed — nothing is broken, the folders are just harder to navigate than they should be.

Acceptance criteria:

  • Publish-PSModule and Cleanup-PSModulePrereleases invoke src/main.ps1, with action.yml updated to match and the action test suite still green.
  • Each of the eight actions without a README gains one covering purpose, inputs, outputs, and the environment variables the script reads.
  • No behavior change in any action.

Technical decisions

Both actions run their script through run: ${{ github.action_path }}/src/<script>.ps1, so the rename is a file move plus one line in action.yml. Nothing else references the file names — the helper modules are imported through $PSScriptRoot, and the reusable workflows address the action folder, not the script.

Found during the standards and framework alignment pass on #440, which fixed the release tag prefix and deliberately stayed inside the tag-derivation path.

Implementation plan

Rename the two entry scripts and update their action.yml files, run Test-Actions and the workflow self-tests to confirm the publish and cleanup paths still execute, then add the eight missing READMEs following the shape of the existing ones (Install-PSModule, Get-PesterTestResults).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions