mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-06 08:24:46 +00:00
PR runners were rebuilding distribution artifacts and executing the entire CLI source suite on all three E2E shards. Keep packaging coverage after merge, let the local E2E runner own its dependency build, and execute source tests once in an existing required check. Root typecheck already validates plugin examples.
109 lines
3.0 KiB
YAML
109 lines
3.0 KiB
YAML
name: Nix
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "22"
|
|
cache: "npm"
|
|
|
|
- uses: cachix/install-nix-action@v31
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
|
|
- name: Update lockfile + Nix hash if stale
|
|
run: ./scripts/update-nix.sh
|
|
|
|
- name: Build Nix package
|
|
run: nix build .#default -o result
|
|
|
|
- name: Smoke Nix daemon
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
export PASEO_HOME
|
|
PASEO_HOME="$(mktemp -d)"
|
|
export PASEO_LISTEN=127.0.0.1:6767
|
|
|
|
WRAPPER_LOG="$PASEO_HOME/paseo-server-wrapper.log"
|
|
|
|
cleanup() {
|
|
if [[ -n "${DAEMON_PID:-}" ]] && kill -0 "$DAEMON_PID" 2>/dev/null; then
|
|
kill "$DAEMON_PID"
|
|
wait "$DAEMON_PID" || true
|
|
fi
|
|
rm -rf "$PASEO_HOME"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
PASEO_WEB_UI_ENABLED=true ./result/bin/paseo-server --no-relay >"$WRAPPER_LOG" 2>&1 &
|
|
DAEMON_PID=$!
|
|
|
|
deadline=$((SECONDS + 30))
|
|
while (( SECONDS < deadline )); do
|
|
if STATUS_JSON="$(./result/bin/paseo daemon status --json)" \
|
|
&& jq -e '.connectedDaemon == "reachable"' <<<"$STATUS_JSON" >/dev/null; then
|
|
echo "$STATUS_JSON"
|
|
curl --fail --silent --show-error http://127.0.0.1:6767/ >"$PASEO_HOME/web-ui.html"
|
|
[[ -s "$PASEO_HOME/web-ui.html" ]]
|
|
exit 0
|
|
fi
|
|
|
|
if ! kill -0 "$DAEMON_PID" 2>/dev/null; then
|
|
echo "Nix daemon exited before becoming reachable."
|
|
break
|
|
fi
|
|
|
|
sleep 1
|
|
done
|
|
|
|
echo "::group::daemon.log"
|
|
cat "$PASEO_HOME/daemon.log" 2>/dev/null || echo "<missing>"
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::paseo-server stdout/stderr"
|
|
cat "$WRAPPER_LOG" 2>/dev/null || echo "<missing>"
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::paseo daemon status"
|
|
./result/bin/paseo daemon status || true
|
|
echo "::endgroup::"
|
|
|
|
exit 1
|
|
|
|
- name: Build Nix desktop package
|
|
run: nix build .#desktop -o result-desktop
|
|
|
|
build-desktop-darwin:
|
|
runs-on: macos-14
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: cachix/install-nix-action@v31
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
|
|
- name: Build Nix desktop package
|
|
run: nix build .#desktop -o result-desktop
|
|
|
|
- name: Verify macOS application bundle
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
app="result-desktop/Applications/Paseo.app"
|
|
test -x "$app/Contents/MacOS/Paseo"
|
|
test -L result-desktop/bin/paseo-desktop
|
|
test "$(/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' "$app/Contents/Info.plist")" = "sh.paseo.desktop"
|
|
find "$app" -name Info.plist -print0 | xargs -0 -n 1 plutil -lint
|