Skip to content

Bootstrap the GitHub Actions console runtime #1

@coisa

Description

@coisa

Problem

Fast Forward shared workflows currently rely on many repository-local composite actions and script files. That works, but it spreads automation behavior across YAML, shell, JavaScript, and PHP snippets, and forces reusable workflows to manage an action-source checkout separately from the consumer repository checkout.

We want a small Composer-installable Symfony Console application that centralizes the Fast Forward GitHub Actions runtime behavior behind testable commands. Reusable workflows should eventually be thin YAML orchestration that installs this package globally and calls deterministic CLI commands.

Scope

Bootstrap fast-forward/github-actions as a PHP 8.3 Symfony Console application that can be installed globally by GitHub workflows and used even when a consumer package does not require fast-forward/dev-tools directly.

The initial package should:

  • expose a Composer binary for workflow usage;
  • depend on fast-forward/dev-tools so global installation brings the Fast Forward tooling surface along;
  • avoid running dev-tools:sync or any workflow synchronization during local setup by documenting and validating composer install --no-scripts;
  • provide a small but production-shaped command architecture instead of loose scripts;
  • include at least a couple of simple commands that demonstrate the migration path from composite actions to CLI commands;
  • include PHPUnit coverage for command behavior and GitHub output handling;
  • include README, changelog, docs, and agent guidance sufficient for future command extraction work;
  • intentionally avoid adding synchronized GitHub workflow wrappers in this first PR.

Acceptance Criteria

  • composer.json defines fast-forward/github-actions, PHP ^8.3, a Composer bin, PSR-4 autoloading, and the package metadata used across Fast Forward repositories.
  • The application boots through Symfony Console and exposes a stable binary suitable for GitHub Actions steps.
  • Runtime dependencies are chosen to keep command implementations focused and maintainable; fast-forward/dev-tools is available through the package install.
  • The first commands are deterministic, tested, and useful as migration examples for existing actions.
  • Commands that need to communicate with GitHub Actions support writing outputs to GITHUB_OUTPUT and summaries to GITHUB_STEP_SUMMARY where appropriate.
  • Local setup and verification use Composer with --no-scripts so this repository does not sync workflows while the workflow externalization is still in progress.
  • No .github/workflows files are introduced in this first package bootstrap.
  • Documentation explains how reusable workflows are expected to install and call the CLI, including the future relationship with php-fast-forward/.github.

Non-goals

  • Do not migrate every existing composite action in this first issue.
  • Do not change consumer workflow wrappers yet.
  • Do not add release workflows to this repository yet.
  • Do not rely on direct commits to protected default branches.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions