Skip to content

Build the Flatpak in CI and publish it to the Frostyard remote - #1

Merged
bketelsen merged 1 commit into
mainfrom
ci/flatpak
Oct 5, 2026
Merged

bketelsen merged 1 commit into
mainfrom
ci/flatpak

Conversation

@bketelsen

@bketelsen bketelsen commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds .github/workflows/flatpak.yml:

  • Every push and pull request: builds io.github.frostyard.Igloo.json in ghcr.io/flathub-infra/flatpak-github-actions:gnome-51, runs the meson tests inside the build (run-tests: true), and uploads the bundle as the igloo-flatpak artifact. Dependencies such as VTE are cached by the manifest's hash.
  • Pushes to main: also export the build with flatpak build-bundle --oci and push it to ghcr.io/frostyard/igloo as latest and sha-COMMIT.

frostyard/flatpak-index serves those images as an OCI remote from GitHub Pages, the approach tuna-os uses. It reads the images anonymously, so this repository needs no secrets. The optional FLATPAK_INDEX_DISPATCH_TOKEN secret (a fine-grained token with Actions write on frostyard/flatpak-index) refreshes the remote right after publishing; without it, the remote's hourly run picks up new images.

The README gains an Install section for the remote and for a pull request's bundle.

After merging

  • The first push to main creates the igloo package. If GitHub creates it as private, make it public once in its package settings; the remote skips private images.

  • Then install with:

    flatpak remote-add --if-not-exists frostyard https://frostyard.github.io/flatpak-index/frostyard.flatpakrepo
    flatpak install frostyard io.github.frostyard.Igloo

Testing

  • actionlint passes.
  • Rehearsed the build job locally with the same manifest change the action makes (run-tests on the last module): all five meson tests pass inside the build, and flatpak build-bundle --oci produces an image whose labels carry the ref, metadata, AppStream data and 64/128 px icons.
  • The index builder in frostyard/flatpak-index produced, from GHCR, the same entry tuna-os's index has for tuna-os/mariner, and flatpak remote-ls listed it from a local copy of the generated site.
  • This PR's own run is the first real CI build.

🤖 Generated with Claude Code

Every push and pull request builds io.github.frostyard.Igloo.json in the
GNOME 51 flatpak-github-actions container, runs the meson tests inside
the build, and keeps the bundle as the igloo-flatpak artifact.

Pushes to main also export the build with `flatpak build-bundle --oci`
and push it to ghcr.io/frostyard/igloo as latest and sha-COMMIT. The
Frostyard remote (frostyard/flatpak-index) reads that image into its
catalogue; with the optional FLATPAK_INDEX_DISPATCH_TOKEN secret the
workflow refreshes it right away instead of at its next hourly run.

The README explains installing from the remote and trying a pull
request's bundle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bketelsen
bketelsen merged commit cf315cb into main Oct 5, 2026
2 checks passed
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.

1 participant