Sign inSign up

einherji/openttd-grx-builder

By einherji

Updated 3 months ago

Containerized Build Pipeline for OpenTTD Plugins

Image
Developer tools
0

210

einherji/openttd-grx-builder repository overview

OpenTTD GFX Builder

GitHub: xenon007/openttd-grx-builder

Docker Hub: einherji/openttd-grx-builder

This is a generic containerized build wrapper for OpenTTD plugins and graphics packages.

What it does

  • clones source code from SRC_REPO;
  • runs make inside the container;
  • writes build outputs to the mounted dist directory;
  • stores the full build log in dist/build.log;
  • publishes the image as docker.io/einherji/openttd-grx-builder:latest and the versioned tag docker.io/einherji/openttd-grx-builder:1.0.0-136, then increments the build number for the next release.

How to run a build

  1. Copy .env.example to .env.
  2. Set SRC_REPO.
  3. Run:
docker compose up --build

Example .env:

SRC_REPO=https://github.com/yourname/your-plugin.git

Quick Start

cp .env.example .env
docker compose up --build

Publish checklist: PUBLISH.md

How to run a release

Use the task wrapper:

./task release "Release description in markdown"

It will:

  • push to main;
  • create a GitHub release using the provided description;
  • build and push the Docker image with latest and version tags;
  • bump .version-build by 1 for the next release and commit that bump back to main.

For a quick preview without publishing:

make release-dry-run RELEASE_DESC="Draft release notes"

For multiline markdown, use a file:

./task release-file RELEASE.md

In this mode the release body is read from RELEASE.md.

If you need to commit changes first:

./task commit "Commit message"

Passing make targets

You can pass make targets through command in compose.yaml.

Examples:

services:
  plugin-build:
    command: ["bundle_tar"]

This runs make bundle_tar.

services:
  plugin-build:
    command: ["tar", "bundle_tar"]

This runs make tar bundle_tar.

What goes into dist

  • build.log
  • final archives and md5 files created by make
  • generated/ contents, if present and useful for inspection

Tag summary

Content type

Image

Digest

sha256:19443f010

Size

119.2 MB

Last updated

3 months ago

docker pull einherji/openttd-grx-builder