Shared Docker image and reusable GitHub Actions for compiling Eloquage path packages as TypePHP extensions (mode: ext). This repository is build infrastructure, not a Composer runtime dependency.
The image contains PHP 8.5 CLI, tpc, and libphpx.so. It does not build PHP Embed or libphp.so.
Pull the published image and check the compiler:
docker pull ghcr.io/eloquage/typephp-builder:latest
docker run --rm ghcr.io/eloquage/typephp-builder:latest tpc.php --helpBuild the image from this repository instead:
docker build -t eloquage-typephp-builder .
docker run --rm eloquage-typephp-builder tpc.php --helpThe publish workflow tags the image with the pinned TypePHP source commit and latest. Set TYPEPHP_REF in .github/workflows/publish-typephp-builder.yml to update that source revision.
Call the reusable workflow from your package repository. It compiles the extension, loads it into PHP, then runs Pest:
name: Native CI
on:
push:
tags: ['v*']
jobs:
native:
uses: eloquage/typephp-builder/.github/workflows/native-ci.yml@v1The caller needs a project.yml.example describing an extension build and a Pest suite. The workflow compiles the extension, loads it into PHP, and runs Pest when the caller pushes a v* release tag.
This repository does not compile itself with tpc; it has no project.yml.example or public PHP API. Do not add swoole/typephp to consuming packages' Composer requirements.
