Set up a CI runner and prove the workflow runs #20

Open
opened 2026-08-19 23:58:49 +00:00 by dusan · 0 comments
Owner

Context

.forgejo/workflows/ci.yml has two jobs:

  • check — installs the toolchain in a fedora:44 container, runs
    build-aux/ci.sh (fmt, clippy with -D warnings, build, tests, release build),
    then meson setup/compile/test/install;
  • package — tags only: builds the distribution tarball and the rpm with
    build-aux/terminalko.spec, uploading both as artifacts.

Neither has ever run. The repository has no runner configured, so the file is
untested YAML. The steps themselves are known to work: they are the same commands
used locally, and the rpm they build has been built by hand.

Work

  1. Register a runner for the repository (forgejo-runner), with the Docker
    backend so the fedora:44 container in the workflow works. On this Forgejo
    instance that is a settings page plus a token, and a runner somewhere that can
    reach it.
  2. Push a branch and confirm check passes. Expect to fix a few things that only
    show up in a container: no display (already accounted for — the smoke test is
    deliberately not in CI), no podman/docker/toolbox (the discovery tests are
    written to tolerate absent runtimes, and a_resize_reaches_a_terminal_nested_in_another
    skips without systemd-run — verify both actually skip rather than fail), and
    dnf install time, which is most of the run.
  3. Tag something and confirm package produces artifacts.
  4. Consider caching: ~/.cargo and target between runs, or the run will be
    dominated by rebuilding gtk4-rs every time.

Acceptance criteria

  • A green check run on a branch, linked from this issue.
  • A package run on a tag producing the tarball, the rpm and the source rpm.
  • Any test that cannot run in a container skips with a message rather than
    failing, and the skip is visible in the log.
  • README.md mentions where CI runs, so the next person knows it is real.

Notes

  • The smoke test (build-aux/smoke.sh) needs a display and is intentionally out of
    CI. If a runner with a compositor ever exists, adding it is worthwhile: it is the
    test that catches template and dialog mistakes.
  • https://forgejo.org/docs/latest/admin/actions/
## Context `.forgejo/workflows/ci.yml` has two jobs: * **check** — installs the toolchain in a `fedora:44` container, runs `build-aux/ci.sh` (fmt, clippy with `-D warnings`, build, tests, release build), then `meson setup/compile/test/install`; * **package** — tags only: builds the distribution tarball and the rpm with `build-aux/terminalko.spec`, uploading both as artifacts. Neither has ever run. The repository has **no runner configured**, so the file is untested YAML. The steps themselves are known to work: they are the same commands used locally, and the rpm they build has been built by hand. ## Work 1. Register a runner for the repository (`forgejo-runner`), with the Docker backend so the `fedora:44` container in the workflow works. On this Forgejo instance that is a settings page plus a token, and a runner somewhere that can reach it. 2. Push a branch and confirm **check** passes. Expect to fix a few things that only show up in a container: no display (already accounted for — the smoke test is deliberately not in CI), no `podman`/`docker`/`toolbox` (the discovery tests are written to tolerate absent runtimes, and `a_resize_reaches_a_terminal_nested_in_another` skips without `systemd-run` — verify both actually skip rather than fail), and `dnf install` time, which is most of the run. 3. Tag something and confirm **package** produces artifacts. 4. Consider caching: `~/.cargo` and `target` between runs, or the run will be dominated by rebuilding gtk4-rs every time. ## Acceptance criteria - A green **check** run on a branch, linked from this issue. - A **package** run on a tag producing the tarball, the rpm and the source rpm. - Any test that cannot run in a container skips with a message rather than failing, and the skip is visible in the log. - `README.md` mentions where CI runs, so the next person knows it is real. ## Notes - The smoke test (`build-aux/smoke.sh`) needs a display and is intentionally out of CI. If a runner with a compositor ever exists, adding it is worthwhile: it is the test that catches template and dialog mistakes. - <https://forgejo.org/docs/latest/admin/actions/>
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dusan/terminalko#20
No description provided.