Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CI to build Linux binaries #5

Draft
wants to merge 6 commits into
base: master4
Choose a base branch
from

Conversation

cassidyjames
Copy link

@cassidyjames cassidyjames commented Dec 3, 2024

This adds CI to publish Linux builds. How it works:

  • Export ROTA for Linux from source using the Godot Engine CLI
  • Upload that export to the CI run as a build artifact (which has a maximum lifetime of 90 days)
  • On GitHub releases, attach that build artifact to the release (which has a permanent URL)

Building a Flatpak requires the exported .pck file be accessible to flatpak-builder, e.g. at a well-known URL, hence why we use releases instead of the build artifact directly—we want that URL to remain accessible to support reproducible builds. My personal goal is to get ROTA onto Flathub. :)

A few notes:

  1. I intended to use the godot-ci GitHub Action for CI, but it doesn't currently support Godot 3.6 (see: Godot 3.6 Support? abarichello/godot-ci#155). So for now, I'm using docker.io/smks/godot-ci which is a container image forked from the former and just updated for 3.6.

  2. I changed the default project setting of borderless back to false to default to having window controls on Linux; this is the more expected behavior and recommended by Flathub's Quality Guidelines, though I could revert that and just patch it for the Flatpak itself if preferred.

  3. I think this CI could be expanded to also build artifacts of the Windows and HTML5 versions of the game, if that's of interest. I know it's not really necessary since the game is deployed to Itch.io which handles that, too, but I figured I'd mention it.

This was referenced Dec 3, 2024
Point people upstream
@cassidyjames

This comment was marked as resolved.

@cassidyjames cassidyjames marked this pull request as draft December 3, 2024 23:45
This adds CI to publish Linux builds. How it works:

- Export ROTA from source using Godot Engine
- Upload that export as a build artifact
- On GitHub releases, attach that build artifact to the release

Eventually this could be expanded to build a Flatpak, a prerequisite to
getting it onto Flathub.

I intended to use the [godot-ci GitHub
Action](https://github.com/marketplace/actions/godot-ci) for CI, but it
doesn't currently support Godot 3.6 (see: abarichello/godot-ci#155). So
for now, I'm using
[docker.io/smks/godot-ci](https://hub.docker.com/r/smks/godot-ci) which
is a container image forked from the former and just updated for 3.6.
Borderless is unexpected on Linux, and explicitly discouraged by the
[Flathub Quality Guidelines][1]. This can still be toggled off from the
in-game options if players prefer.

[1]:
https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/quality-guidelines/#include-window-shadow-and-rounded-corners
@cassidyjames
Copy link
Author

Okay, this is ready for review, now. :) I can work on a Flatpak manifest in a different branch, but this would already make it much easier to get a Flatpak built as-is.

@cassidyjames cassidyjames marked this pull request as ready for review December 4, 2024 03:06
@cassidyjames cassidyjames mentioned this pull request Dec 4, 2024
@cassidyjames cassidyjames marked this pull request as draft December 4, 2024 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants