Skip to content

Port tests from predecessor standalone action repos #2

Description

@valentinajemuovic

Context

The current monorepo optivem/actions consolidates ~45 actions that previously lived as standalone per-action repos on the org (e.g. resolve-docker-images-action, generate-prerelease-version-action, check-release-exists-action, etc.). When consolidated, only a handful of ad-hoc PowerShell scripts came along:

  • generate-prerelease-version/test.ps1
  • find-latest-docker-images/test-local.ps1
  • resolve-docker-images/*.ps1 (5 files)
  • _archived/find-docker-images/test-local.ps1

The other ~40 actions have zero tests, and the repo has no .github/workflows/ — so nothing runs on PRs to actions. Actions are only exercised indirectly when downstream pipelines (shop, gh-optivem) consume them.

Goal

Audit the predecessor standalone repos for test suites, and port anything worth keeping into this monorepo so the actions are covered before we keep refactoring them (see the in-flight audit in .plans/20260420-105039-audit-actions.md).

Predecessor repos to audit

  • check-release-exists-action
  • check-tag-exists-action
  • create-release-action
  • create-tag-action
  • extract-release-version-action
  • find-docker-images-action
  • find-latest-docker-images-action
  • find-latest-prerelease-action
  • generate-prerelease-version-action
  • generate-release-version-action
  • generate-status-version-action
  • poll-until-action
  • publish-docker-image-action
  • resolve-docker-images-action
  • should-run-acceptance-stage-action
  • summarize-commit-stage-action
  • summarize-stage-action
  • summarize-system-stage-action
  • tag-docker-images-action
  • wait-for-docker-compose-action

(Plus any others under the org that map to a current action directory.)

Proposed steps

  1. For each predecessor repo, check whether it has a test suite (bats / jest / pytest / PowerShell / workflow-based self-test).
  2. Decide per-action: port, rewrite, or skip (document reason).
  3. Pick a common test harness for the monorepo (candidates: bats-core for shell actions, a .github/workflows/test.yml running each action against fixtures, or per-action PowerShell suites matching the existing pattern).
  4. Add a CI workflow in this repo so tests run on PRs.

Notes

  • Some actions in the audit plan are marked for deletion/consolidation — skip those or test them only enough to confirm removal is safe.
  • Priority candidates for early test coverage: version/prerelease generation (generate-prerelease-version, compose-prerelease-version, promote-to-rc), cleanup logic (cleanup-prereleases, cleanup-deployments), and anything touching git tags or GitHub releases, since they are hardest to dry-run in production pipelines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions