v1.1.3
Citizen Launcher CI / arch-package (push) Failing after 22s
Citizen Launcher CI / rpm-package (push) Failing after 29s
Citizen Launcher CI / verify (push) Successful in 2m50s

This commit is contained in:
2026-09-01 20:17:04 +02:00
parent 5aadfd3427
commit 7bc0c63743
23 changed files with 332 additions and 126 deletions
+1
View File
@@ -3,6 +3,7 @@ set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
bash "$ROOT/tests/verify.sh"
bash "$ROOT/tests/mode-independence.sh"
bash "$ROOT/tests/rpm-ci-footprint.sh"
(cd "$ROOT/backend" && go test -race ./...)
bash "$ROOT/backend/integration-test.sh"
bash "$ROOT/tests/gitea-release-helper.sh"
+21 -10
View File
@@ -25,7 +25,7 @@ class H(http.server.BaseHTTPRequestHandler):
return r
def do_GET(self):
path=urllib.parse.urlparse(self.path).path
if path.endswith('/releases/tags/v1.1.2'):
if path.endswith('/releases/tags/v1.1.3'):
if release is None: self.send_error(404); return
self.sendj(200,self.rel()); return
if path.startswith('/download/'):
@@ -78,12 +78,23 @@ export GITEA_API_URL="http://127.0.0.1:${PORT}/api/v1"
export GITEA_REPOSITORY="owner/repo"
export GITEA_TOKEN="test-token"
echo first > "$TMP/citizen-launcher_1.1.2_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" ensure v1.1.2 'Citizen Launcher 1.1.2' "$ROOT/RELEASE_NOTES.md" deadbeef
bash "$ROOT/scripts/gitea-release.sh" ensure v1.1.2 'Citizen Launcher 1.1.2' "$ROOT/RELEASE_NOTES.md" deadbeef
bash "$ROOT/scripts/gitea-release.sh" upload v1.1.2 "$TMP/citizen-launcher_1.1.2_amd64.deb"
echo replacement > "$TMP/citizen-launcher_1.1.2_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" upload v1.1.2 "$TMP/citizen-launcher_1.1.2_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" download-assets v1.1.2 "$TMP/download"
cmp "$TMP/citizen-launcher_1.1.2_amd64.deb" "$TMP/download/citizen-launcher_1.1.2_amd64.deb"
echo 'Gitea release helper verification: OK'
echo first > "$TMP/citizen-launcher_1.1.3_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" ensure v1.1.3 'Citizen Launcher 1.1.3' "$ROOT/RELEASE_NOTES.md" deadbeef
bash "$ROOT/scripts/gitea-release.sh" ensure v1.1.3 'Citizen Launcher 1.1.3' "$ROOT/RELEASE_NOTES.md" deadbeef
bash "$ROOT/scripts/gitea-release.sh" upload v1.1.3 "$TMP/citizen-launcher_1.1.3_amd64.deb"
echo replacement > "$TMP/citizen-launcher_1.1.3_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" upload v1.1.3 "$TMP/citizen-launcher_1.1.3_amd64.deb"
bash "$ROOT/scripts/gitea-release.sh" download-assets v1.1.3 "$TMP/download"
cmp "$TMP/citizen-launcher_1.1.3_amd64.deb" "$TMP/download/citizen-launcher_1.1.3_amd64.deb"
# Fedora RPM jobs intentionally avoid Python to keep the container footprint low.
# Exercise the jq backend against the same mock Gitea API.
command -v jq >/dev/null 2>&1 || { echo 'jq required for Gitea helper jq test' >&2; exit 1; }
export CITIZEN_JSON_BACKEND=jq
echo jq-backend > "$TMP/citizen-launcher-1.1.3-1.linux.x86_64.rpm"
bash "$ROOT/scripts/gitea-release.sh" ensure v1.1.3 'Citizen Launcher 1.1.3' "$ROOT/RELEASE_NOTES.md" deadbeef
bash "$ROOT/scripts/gitea-release.sh" upload v1.1.3 "$TMP/citizen-launcher-1.1.3-1.linux.x86_64.rpm"
bash "$ROOT/scripts/gitea-release.sh" download-assets v1.1.3 "$TMP/download-jq"
cmp "$TMP/citizen-launcher-1.1.3-1.linux.x86_64.rpm" "$TMP/download-jq/citizen-launcher-1.1.3-1.linux.x86_64.rpm"
echo 'Gitea release helper verification: OK (python + jq)'
+1 -1
View File
@@ -9,7 +9,7 @@ root = Path(sys.argv[1])
check = [
root/'build.sh', root/'install-omarchy.sh', root/'INSTALLIEREN.sh',
root/'tests/full-verify.sh', root/'tests/verify.sh', root/'tests/package-verify.sh',
root/'tests/gitea-release-helper.sh', root/'packaging/build-all.sh',
root/'tests/gitea-release-helper.sh', root/'tests/rpm-ci-footprint.sh', root/'packaging/build-all.sh',
root/'.gitea/workflows/ci.yml', root/'.gitea/workflows/release.yml',
]
for p in check:
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
python3 - "$ROOT" <<'PY'
from pathlib import Path
import re, sys, yaml
root = Path(sys.argv[1])
checks = [
(root/'.gitea/workflows/ci.yml', 'rpm-package'),
(root/'.gitea/workflows/release.yml', 'rpm'),
]
for path, job_name in checks:
data = yaml.safe_load(path.read_text())
job = data['jobs'][job_name]
runs = '\n'.join(str(step.get('run','')) for step in job.get('steps',[]))
flat = re.sub(r'\\\n\s*', ' ', runs)
flat = re.sub(r'\s+', ' ', flat)
required = [
'system_cachedir=',
'install_weak_deps=False',
'tsflags=nodocs',
'install git-core',
'install golang-bin',
'remove golang-bin',
'install rpm-build',
]
for needle in required:
if needle not in flat:
raise SystemExit(f'{path.name}:{job_name} missing low-disk guard: {needle}')
forbidden = ['systemd-rpm-macros', 'install git golang', 'install golang rpm-build', 'install python3']
for needle in forbidden:
if needle in flat:
raise SystemExit(f'{path.name}:{job_name} reintroduced heavy dependency set: {needle}')
if flat.index('install golang-bin') > flat.index('remove golang-bin') or flat.index('remove golang-bin') > flat.index('install rpm-build'):
raise SystemExit(f'{path.name}:{job_name} no longer stages Go before rpmbuild')
print('RPM CI low-disk dependency policy: OK')
PY
+1 -1
View File
@@ -5,7 +5,7 @@ for f in \
"$ROOT/install.sh" "$ROOT/uninstall.sh" "$ROOT/install-omarchy.sh" "$ROOT/INSTALLIEREN.sh" \
"$ROOT/build.sh" "$ROOT/packaging/build-deb.sh" "$ROOT/packaging/build-rpm.sh" \
"$ROOT/packaging/build-arch.sh" "$ROOT/packaging/build-tarball.sh" "$ROOT/packaging/build-all.sh" \
"$ROOT/scripts/gitea-release.sh" "$ROOT/tests/gitea-release-helper.sh" "$ROOT/tests/mode-independence.sh"; do
"$ROOT/scripts/gitea-release.sh" "$ROOT/tests/gitea-release-helper.sh" "$ROOT/tests/mode-independence.sh" "$ROOT/tests/rpm-ci-footprint.sh"; do
bash -n "$f"
done
(cd "$ROOT/backend" && gofmt -w cmd/citizen-launcher && go test ./... && go vet ./...)