Skip to content

Add FrankenPHP binary build workflow#3

Merged
munezaclovis merged 1 commit intomainfrom
worktree-frankenphp-build-action
Feb 28, 2026
Merged

Add FrankenPHP binary build workflow#3
munezaclovis merged 1 commit intomainfrom
worktree-frankenphp-build-action

Conversation

@munezaclovis
Copy link
Copy Markdown
Contributor

Summary

  • Adds a GitHub Actions workflow to build static FrankenPHP binaries with multiple PHP versions (8.2, 8.3, 8.4, 8.5)
  • FrankenPHP only ships one PHP version per binary; multi-version matrix is Docker-only upstream, so we build our own
  • Binaries are built on macOS ARM64 (macos-14) using FrankenPHP's build-static.sh
  • Creates GitHub Releases with named binaries (frankenphp-mac-arm64-phpX.Y) for pv install to download

How it works

  1. resolve-version — fetches latest FrankenPHP release tag (or uses manual input)
  2. build — matrix job: checks out dunglas/frankenphp, installs Go, runs build-static.sh with PHP_VERSION for each PHP version
  3. release — collects all artifacts and creates/updates a GitHub release

Triggers

  • workflow_dispatch — manual with optional frankenphp_ref input
  • schedule — weekly (Monday midnight UTC)

Test plan

  • Manually dispatch the workflow after merge
  • Verify binaries build successfully for each PHP version
  • Verify GitHub release is created with correct assets

…ions

FrankenPHP only ships one PHP version per binary and does the multi-version
matrix only for Docker images. Since pv doesn't use Docker, we build our own
static binaries for each PHP version (8.2, 8.3, 8.4, 8.5) on macOS ARM64.

The workflow:
- Resolves the latest FrankenPHP release (or accepts a manual ref)
- Builds static binaries using FrankenPHP's build-static.sh
- Creates a GitHub release with all binaries for pv install to download
- Runs weekly and on manual dispatch
@munezaclovis munezaclovis merged commit 3df1967 into main Feb 28, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant