Do not let both repositories independently evolve Linux patch logic. Develop and verify first, then sync the verified state into the release repository.
-
Verify the development repo first:
cd /home/kkkzbh/code/codex-app/codex-desktop-linux-installer
./scripts/check-dmg-update.sh
./install.sh
./scripts/verify-install.sh /absolute/path/to/staged-installs/codex-app-YYYYMMDD-HHMMSS
Use a fresh staged install. Do not debug by mutating an active runtime directory.
-
Sync only source assets into the release repo:
src=/home/kkkzbh/code/codex-app/codex-desktop-linux-installer
dst=/home/kkkzbh/code/linux-codex-app
rsync -a --delete "$src/scripts/" "$dst/scripts/"
rsync -a --delete "$src/plugins/" "$dst/plugins/"
rsync -a --delete "$src/assets/" "$dst/assets/"
rsync -a "$src/install.sh" "$dst/install.sh"
Preserve release-only files in linux-codex-app: .github/, packaging/,
upstream/, docs/, README.md, package.json, .agents/, and
packaging/rpm/RPM-GPG-KEY-linux-codex-app.
-
Update the pinned upstream manifest when upstream changed.
Add a new upstream/codex-app-YYYYMMDD.json with the current DMG URL metadata,
DMG sha256 and size, source app.asar sha256, Codex App version/build,
Electron version, Codex CLI release/archive/sha256, RPM version/release, target
arch, and Linux patch version.
If a release workflow fails with a DMG size/hash mismatch, treat that as the
expected guardrail. Do not re-run with relaxed checks.
-
Validate the release repo:
cd /home/kkkzbh/code/linux-codex-app
npm run check
git diff --stat
For local RPM debugging on Fedora 44 x86_64:
LINUX_CODEX_APP_REPO_BASEURL='https://kkkzbh.github.io/linux-codex-app/rpm/fedora/$releasever/$basearch' \
./scripts/build-runtime-rpm.sh upstream/codex-app-YYYYMMDD.json
-
Commit and push linux-codex-app:
git status --short
git add <scoped files>
git commit -m "<release sync message>"
git push origin main
-
Run the release workflow:
gh workflow run release-rpm.yml \
--repo kkkzbh/linux-codex-app \
--ref main \
-f manifest=upstream/codex-app-YYYYMMDD.json
gh run watch <run-id> --repo kkkzbh/linux-codex-app --exit-status
-
Verify the published release and repository:
gh release view <tag> --repo kkkzbh/linux-codex-app --json tagName,url,assets
curl -fsSL https://kkkzbh.github.io/linux-codex-app/linux-codex-app.repo
curl -fsSL https://kkkzbh.github.io/linux-codex-app/rpm/fedora/44/x86_64/repodata/repomd.xml | head
Verify repomd.xml.asc with the published key, then run a clean Fedora 44
smoke test:
podman run --rm --network=host fedora:44 bash -lc '
set -euo pipefail
curl -fsSL -o /etc/yum.repos.d/linux-codex-app.repo \
https://kkkzbh.github.io/linux-codex-app/linux-codex-app.repo
dnf -y makecache --repo linux-codex-app
dnf install -y linux-codex-app
linux-codex-app status
linux-codex-app verify
'