Files
omarchy-pkgs/systemd/omarchy-auto-release-rc.service
T
Ryan Hughes 2cea400cd1 Add bin/omarchy-release: the interactive release front door
A release train has three human moments, each one command: start (release
branch on basecamp/omarchy + notes staging PR + edge→rc advance for
minor/major), rc (pin both PKGBUILDs to the branch head as X.Y.ZrcN on the
pkgs rc branch, trigger the rc channel build, wait for publish, optional RC
ISO), and ship (final pins → promote rc→stable → tag → pins to master → GitHub
release from the staging PR body → final ISO → website bump, each step
skip-if-done so a crashed run resumes).

Bare omarchy-release is the shepherd: it derives the train state from observed
reality (remote branches, rc-branch pins, published channel dbs, tags — no
state files) and offers the correct next step. Versions are inferred from
branch names (v4-0-2 ⇒ 4.0.2rcN ⇒ v4.0.2). ship refuses to promote a commit
no RC was cut from. pick is a multi-select over merged quattro PRs,
cherry-picking merge commits. doctor pre-flights every credential and
connection. self-test wired into CI.

bin/omarchy-pkgs stays as the pin engine, driven with its db URL pointed at
the rc channel and pins committed to the standing rc branch (rebuilt as
master + pins per cut and force-pushed; the server rc worktree follows with
reset --hard).
2026-08-27 01:10:33 -04:00

21 lines
856 B
Desktop File

[Unit]
Description=Auto-release omarchy-pkgs for rc mirror
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
# The rc channel builds from the rc branch worktree, but publishes into the
# primary checkout's channel tree via OMARCHY_REPO_ROOT. The rc branch is
# rebuilt (master + pin commits) each release train and force-pushed, so this
# worktree follows with a hard reset rather than a fast-forward pull.
ExecStartPre=/usr/bin/git -C /root/omarchy-pkgs-rc fetch origin rc
ExecStartPre=/usr/bin/git -C /root/omarchy-pkgs-rc reset --hard origin/rc
ExecStart=/bin/bash -c 'source /root/.omarchy/build-credentials && /root/omarchy-pkgs-rc/bin/auto-release rc'
Environment=OMARCHY_STATE_DIR=/root/.state
Environment=OMARCHY_REPO_ROOT=/root/omarchy-pkgs/pkgs.omarchy.org
TimeoutStartSec=7200
[Install]
WantedBy=multi-user.target