Skip to content

Support multiple values in collection action inputs #79

Description

Context and request

Observed behavior: Collection-valued Pester settings receive scalar GitHub Action strings without parsing. Comma-separated and multiline values remain one string, so Pester treats them as one path, tag, line filter, or debug source.

Affected inputs include Run_Path, Run_ExcludePath, Filter_Tag, Filter_ExcludeTag, Filter_Line, Filter_ExcludeLine, Filter_FullName, CodeCoverage_Path, and Debug_WriteDebugMessagesFrom.

Expected behavior: Each collection input accepts one documented serialization format for multiple values and preserves a single value without ambiguity.

Reproduction:

- uses: PSModule/Invoke-Pester@v3
  with:
    Filter_Tag: |
      Unit
      Integration

Pester receives one string containing a newline instead of two tags.

Environment: GitHub composite action with Pester 5.8.0 or 6.1.0.

Regression: Unknown. Single values work; multiple values appear not to have been parsed by the action.

Workaround: Use one value or place native PowerShell arrays in a Pester configuration file.

Acceptance criteria

  • Add action-level regression tests for representative path and filter collections.
  • Define one consistent serialization format for collection inputs.
  • Parse and validate collections before merging the Pester configuration.
  • Preserve backward compatibility for existing single-value callers.
  • Document the multi-value syntax for every affected input.

Technical decisions

Use one shared parser and contract for scalar-to-collection conversion. Do not introduce input-specific delimiter rules unless a value domain makes the shared representation ambiguous.

Implementation plan

  1. Add failing tests for multiline or serialized path and tag collections.
  2. Choose the transport format and define escaping behavior.
  3. Implement a shared parser with strict validation.
  4. Apply it to each collection-valued input and update documentation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    github_actionsPull requests that update GitHub Actions code

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions