Skip to content

Feature

Multi-platform build matrix

A matrix build compiles the cross-product of toolchain versions and platforms in one command, then records every artifact with a checksum and a per-combination report.

simulated

Versions × platforms, validated first

Matrix mode builds the cross-product of toolchain versions and target platforms, defined by CLI flags or a matrix profile in phelix.yaml. Versions accept any major.minor or major.minor.patch release, duplicates are normalized, and every combination is validated before the first build starts.

Include and exclude rules refine the base product: an include can add a combination the base does not contain and attach metadata such as a release tag, while an exclude drops every combination matching its constrained values.

  • Targets: linux amd64/arm64/armv7/armv6, macOS amd64/arm64, Windows amd64
  • Native binaries, or Docker images built per combination
  • Dry run prints the exact plan without building
  • Resume an interrupted run instead of starting over
phelix · matrix
phelix build api --matrix --go-versions 1.25,1.27 --platforms linux/amd64,linux/arm64
4 combinations · concurrency 3
go1.27 linux/amd64 · 14.8 MB
go1.27 linux/arm64 · 14.3 MB

simulated

Built for long runs

Matrix runs are journaled, so a run that is interrupted can be resumed by id or by the most recent run, and only the missing combinations execute. Concurrency is configurable, and failed combinations can be retried automatically for transient failures.

Each combination produces its own build report, and the run ends with a verified release manifest listing every artifact and its SHA-256 checksum.

Docker images too

phelix dockerize runs the same matrix expansion for container builds, tagging each combination separately and optionally assembling a multi-arch manifest list per toolchain version with Docker Buildx.

Partial pushes are possible when some combinations fail, so a single broken target does not block the images that built correctly.

Frequently asked questions

Short answers; the docs go deeper.

Can Phelix cross-compile Go for ARM64 and ARMv7?

Yes. Matrix mode targets linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6, darwin/amd64, darwin/arm64, and windows/amd64, and validates every combination before building.

Can an interrupted matrix build be resumed?

Yes. Matrix runs are journaled; phelix build --resume continues the most recent run, and --resume=mx_<id> continues a specific one, executing only the remaining combinations.

Does a matrix build always start an application?

No. Matrix builds never start an instance, so no port is required. They produce artifacts and reports rather than a serving process.

One binary between git push and production.

Install the CLI, verify the host, and follow the quick start to build your first application.

Read the docs