This commit is contained in:
2026-08-31 22:20:17 +02:00
parent eefada36e9
commit eeac39e7b1
40 changed files with 3203 additions and 449 deletions
+8
View File
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
"$ROOT/tests/verify.sh"
(cd "$ROOT/backend" && go test -race ./...)
"$ROOT/backend/integration-test.sh"
"$ROOT/tests/package-verify.sh"
echo 'Citizen Launcher full verification: OK'
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
VERSION="$(tr -d '[:space:]' < "$ROOT/VERSION")"
rm -rf "$ROOT/dist"
mkdir -p "$ROOT/dist"
"$ROOT/packaging/build-deb.sh"
"$ROOT/packaging/build-tarball.sh"
DEB="$ROOT/dist/citizen-launcher_${VERSION}_amd64.deb"
TAR="$ROOT/dist/citizen-launcher-${VERSION}-linux-amd64.tar.gz"
[[ -s "$DEB" && -s "$TAR" ]]
[[ "$(dpkg-deb -f "$DEB" Package)" == "citizen-launcher" ]]
[[ "$(dpkg-deb -f "$DEB" Version)" == "$VERSION" ]]
[[ "$(dpkg-deb -f "$DEB" Architecture)" == "amd64" ]]
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
dpkg-deb -x "$DEB" "$TMP/root"
[[ "$("$TMP/root/usr/bin/citizen-launcher" --version)" == "$VERSION" ]]
for f in \
usr/lib/systemd/system/citizen-launcher-self-update.service \
usr/lib/systemd/system/citizen-launcher-self-update.timer \
usr/lib/sysctl.d/90-citizen-launcher.conf \
etc/security/limits.d/90-citizen-launcher.conf \
etc/xdg/autostart/citizen-launcher-migrate.desktop \
usr/share/applications/io.github.citizenlauncher.CitizenLauncher.desktop \
usr/share/metainfo/io.github.citizenlauncher.CitizenLauncher.metainfo.xml; do
[[ -f "$TMP/root/$f" ]] || { echo "Missing DEB payload: $f" >&2; exit 1; }
done
mkdir -p "$TMP/tar"
tar -xzf "$TAR" -C "$TMP/tar"
[[ "$("$TMP/tar/citizen-launcher" --version)" == "$VERSION" ]]
grep -q '^Exec=/usr/bin/citizen-launcher gui$' "$TMP/root/usr/share/applications/io.github.citizenlauncher.CitizenLauncher.desktop"
grep -q '^ExecStart=/usr/bin/citizen-launcher self-update apply --system --quiet$' "$TMP/root/usr/lib/systemd/system/citizen-launcher-self-update.service"
echo 'Citizen Launcher package verification: OK'
+10 -3
View File
@@ -1,10 +1,17 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
for f in build.sh install.sh install-omarchy.sh uninstall.sh packaging/build-deb.sh packaging/build-tarball.sh integrations/omarchy/citizenctl; do bash -n "$ROOT/$f"; done
(cd "$ROOT/backend" && gofmt -w cmd/citizen-launcher/*.go && go test ./... && go vet ./... && ./build.sh)
for f in build.sh install.sh install-omarchy.sh uninstall.sh packaging/build-deb.sh packaging/build-tarball.sh backend/integration-test.sh integrations/omarchy/citizenctl; do
bash -n "$ROOT/$f"
done
UNFORMATTED="$(cd "$ROOT/backend" && gofmt -l cmd/citizen-launcher/*.go)"
if [[ -n "$UNFORMATTED" ]]; then
echo "Go source is not gofmt-clean:" >&2
echo "$UNFORMATTED" >&2
exit 1
fi
(cd "$ROOT/backend" && go test ./... && go vet ./... && ./build.sh)
"$ROOT/backend/bin/citizen-launcher" --version | grep -qx "$(tr -d '[:space:]' < "$ROOT/VERSION")"
"$ROOT/backend/bin/citizen-launcher" platform --json | grep -q '"id"'
# Ensure GUI assets are embedded by looking for a distinctive string in binary.
grep -a -q 'FLIGHT READY' "$ROOT/backend/bin/citizen-launcher"
echo 'Citizen Launcher verification: OK'