Engine downloads with “bundled FPC” for all platforms, castle-build-ci to easily use CI with our engine, Woodpecker (Codeberg) CI examples and impressions

Posted on

Open source, integrations with Jenkins, Docker, GitHub Actions, GitLab CI, Codeberg CI / Woodpecker CI

We have a number of news related to using CI (continuous integration) / CD (continuous delivery) with our engine. The idea of CI / CD is that you let some automatic process to be performed on your code, usually each time you make a commit / push to the repository. There are a number of useful things you can do this way (e.g. compile, auto-test, generate docs, release for many platforms) and a number of ways to go about it. If you don’t use CI yet, we really encourage it!

We have a few pages documenting how to use various CI with our engine and in this post, we present some latest additions to our capabilities:

  1. We have extended our castle-fpc repository releases. They provide FPC, for all platforms, in a recommended version to be used together with our engine. They are built using a nice cross-platform script. They are used by other scripts (castle-build-ci, engine building), so this is the basis for other improvements mentioned below.

  2. As a direct gain from the previous point, our downloads now include FPC “bundled” with the Castle Game Engine for absolutely all platforms, including Raspberry Pi and Pine64 (Linux / Arm and Linux / Aarch64) and macs. The goal is to allow installing and building your first application work as out-of-the-box as possible, on all systems, and even for people new to Pascal.

  3. Stay tuned: This is also a first step toward making building for web easier. Our castle-fpc repository includes alternative “unstable” FPC and we want to add there downloadable cross-compilers for the web. We want to allow downloading such “FPC unstable + web tools” from the engine editor GUI easily in the future. The end goal: allow you to build for web while skipping the complicated “4.1. Installing Prerequisites” section from the web docs.

  4. Stay tuned: This is also a first step toward a few macOS improvements… which we actually already did but are now in the “testing” phase 🙂 Stay tuned for a future post about mac improvements, probably next weekend.

  5. You can use new castle-build-ci scripts in your CI (or just your regular system!) to setup FPC, Lazarus and CGE easily. This is an alternative to getting FPC and CGE some other way, e.g. by our Docker image. We use it in our own CI runs, the repo https://github.com/castle-engine/castle-build-ci contains docs (README.md) and example usage. We have tested them with GitHub Actions and GitLab CI.

  6. castle-lazarus (previously cge-lazarus) repository has been extended as well: we provide now Lazarus useful on all our platforms, making our builds easier (e.g. to have good Lazarus on macs and Raspberry Pi).

  7. Lazarus used to build our engine (in the downloads) has been upgraded to the latest Lazarus 4.4.

  8. Last but not least, we got access to Codeberg CI, using Woodpecker CI underneath.

  9. New and updated documentation:

  10. If you’re a devoted fan, you may notice some new icons in the Open source and friendly to continuous integration section on the main page and in features 🙂

Thank you for reading and stay tuned for more posts with practical gains from these “infrastructure” upgrades.

Start the discussion at Castle Game Engine Forum