Hi, I recently updated my Lazarus build environment and published it as ready-to-use Docker images:
https://github.com/attid/lazarus-build-station To make the workflow easier to understand, I also created a small example project:
https://github.com/attid/lazarus-build-station-example The idea is simple: if you have a Lazarus/FPC project that is already written in a cross-platform way, you can fork the example repository, replace the demo application with your own project, push it to GitHub,
create a release tag, and let GitHub Actions build binaries for multiple targets automatically.
For example:
git tag v1.0.1
git push origin v1.0.1
That will trigger the release workflow and build packages for 4 targets:
- Linux x86_64
- Linux i386
- Windows x86_64
- Windows i386
The example repository is intentionally small, so the whole pipeline is easy to inspect and adapt. It also shows how to build a Lazarus GUI application with an external visual package included in the
repository.
Local builds on Linux are also straightforward:
just make
This runs the same containerized build flow locally. In theory the local workflow should also work on Windows, but I have not been able to test that myself yet.
Maybe this is useful for anyone who wants a simple starting point for cross-platform Lazarus builds with Docker and GitHub Actions. If there is interest, I can also document more project layouts or packaging
variants.