Drop CI; run the full suite from the pre-push hook !4

merged merged by cmc on 2026-09-04 05:00 UTC · krz/ambient-companions:chore/drop-ci into main

3 files changed, +34 −35

.gitbay/ci.yml deleted −16
@@ -1,16 +0,0 @@
1# gitbay CI. One build per push; every step runs with `sh -c` and the first
2# failure stops the job.
3#
4# The runner is Linux and unprivileged, so the macos-collector Swift tests
5# cannot run here. They run from .githooks/pre-push on the Mac doing the push
6# (git config core.hooksPath .githooks); see README "Build & test".
7jobs:
8 test:
9 steps:
10 # The differential secret-typing tests (the privacy ship-gate) drive a
11 # real interactive zsh under zsh/zpty. Check for it up front so a missing
12 # zsh fails with a clear message instead of deep inside cargo test, and
13 # is never silently skipped.
14 - zsh -c 'zmodload zsh/zpty' || { echo "runner needs zsh with the zsh/zpty module (apt-get install zsh)" >&2; exit 1; }
15 - cargo test --locked
16 - cargo clippy --all-targets --locked -- -D warnings
.githooks/pre-push +27 −10
@@ -1,21 +1,38 @@
11#!/bin/sh
2# Run the macos-collector Swift tests before every push.
2# Run the full test suite before every push. There is no CI for this repo; this
3# hook is the only gate, so it runs everything and a failure aborts the push.
34#
4# gitbay's runner is Linux, so the Swift side of the Swift/Rust wire-contract
5# test cannot run in CI. This hook is where it gates: a failing swift test
6# aborts the push. Wired up once per clone with:
5# Wired up once per clone with:
76#
87# git config core.hooksPath .githooks
98set -eu
109
10root=$(git rev-parse --show-toplevel)
11cd "$root"
12
13# The differential secret-typing tests (the privacy ship-gate) drive a real
14# interactive zsh under zsh/zpty. Check for it up front so a missing zsh fails
15# with a clear message instead of deep inside cargo test, and is never silently
16# skipped.
17echo "pre-push: zsh/zpty preflight" >&2
18zsh -c 'zmodload zsh/zpty' || {
19 echo "pre-push: needs zsh with the zsh/zpty module" >&2
20 exit 1
21}
22
23echo "pre-push: cargo test" >&2
24cargo test --locked
25
26echo "pre-push: cargo clippy" >&2
27cargo clippy --all-targets --locked -- -D warnings
28
29# macos-collector is a Swift package; its tests only run on macOS.
1130case "$(uname -s)" in
12Darwin) ;;
31Darwin)
32 echo "pre-push: swift test (macos-collector)" >&2
33 swift test --package-path "$root/macos-collector"
34 ;;
1335*)
1436 echo "pre-push: not macOS, skipping swift test" >&2
15 exit 0
1637 ;;
1738esac
18
19root=$(git rev-parse --show-toplevel)
20echo "pre-push: swift test (macos-collector)" >&2
21swift test --package-path "$root/macos-collector"
README.md +7 −9
@@ -58,7 +58,7 @@ And it is tested (`crates/signal-schema/tests/privacy_invariant.rs`):
5858- `wire_format_has_no_content_field` — the `Signal` type declares no
5959 content-carrying field beyond the audited `tag`.
6060- `forbidden_symbol_scan` — the tree contains none of the banned keylogger APIs
61 or shell line-buffer references (the static CI gate).
61 or shell line-buffer references (the static gate).
6262- `differential_secret_typing`**active (the ship gate).** It drives the real
6363 hook (`shell-hooks/signald-hooks.zsh`) through a real interactive zsh under a
6464 real pseudo-terminal (zsh's own `zsh/zpty` — no extra dependency), *typing a
@@ -228,15 +228,13 @@ swift test # the Swift↔Rust wire-contract test
228228swift run macos-collector --once # one real IOKit read (no root)
229229```
230230
231### CI
231### Pre-push checks
232232
233`.gitbay/ci.yml` runs `cargo test --locked` and
234`cargo clippy --all-targets --locked -- -D warnings` on every push. The
235differential secret-typing tests need `zsh` with the `zsh/zpty` module on the
236runner; the job checks for it first and fails rather than skipping the gate.
237
238The runner is Linux, so the Swift tests run from `.githooks/pre-push` on the
239Mac doing the push. Enable it once per clone:
233There is no CI. `.githooks/pre-push` is the gate: it runs `cargo test
234--locked`, `cargo clippy --all-targets --locked -- -D warnings`, and the
235`macos-collector` Swift tests, and a failure aborts the push. The differential
236secret-typing tests need `zsh` with the `zsh/zpty` module; the hook checks for
237it first and fails rather than skipping the gate. Enable it once per clone:
240238
241239```sh
242240git config core.hooksPath .githooks