2 Commits
Author SHA1 Message Date
clawbot 863a1d549d Deploy main 5e572ce to prod (#198)
check / check (push) Canceled after 0s
main's tree, with next merged on 26 October, as one commit onto prod, on sneak's order.

Model: opus-5-5
Co-authored-by: clawbot <clawbot@noreply.example.org>
2026-10-26 13:10:55 +01:00
sneak 0c36d79131 main into prod: netwatch as one container, ready for upaas (#74)
check / check (push) Canceled after 0s
Reviewed-on: #74
2026-10-25 02:39:56 +01:00
5 changed files with 10 additions and 15 deletions

No files matched your search

+2 -3
View File
@@ -7,6 +7,8 @@ concurrency:
jobs: jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# Free the shared runner from a hung build.
timeout-minutes: 20
steps: steps:
# actions/checkout v4.2.2, 2026-02-22 # actions/checkout v4.2.2, 2026-02-22
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
@@ -15,7 +17,4 @@ jobs:
persist-credentials: false persist-credentials: false
# All history and tags, so git describe finds the version tag. # All history and tags, so git describe finds the version tag.
fetch-depth: 0 fetch-depth: 0
# Free the shared runner from a hung build. The limit is on the
# step because the runner ignores a job's timeout-minutes.
- run: script/cibuild - run: script/cibuild
timeout-minutes: 20
+2 -2
View File
@@ -62,9 +62,9 @@ WORKDIR /app
COPY package.json yarn.lock ./ COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile RUN yarn install --frozen-lockfile
COPY . . COPY . .
RUN NODE_OPTIONS=--test-reporter=dot yarn --silent run test || \ RUN NODE_OPTIONS=--test-reporter=dot timeout 90 yarn --silent run test || \
{ echo "--- Rerunning with every test listed for details ---"; \ { echo "--- Rerunning with every test listed for details ---"; \
NODE_OPTIONS=--test-reporter=spec yarn --silent run test; \ NODE_OPTIONS=--test-reporter=spec timeout 90 yarn --silent run test; \
exit 1; } exit 1; }
# Test phase: the backend's tests with the race detector and coverage, # Test phase: the backend's tests with the race detector and coverage,
-4
View File
@@ -23,10 +23,6 @@ Run `make frontend-viewport-test` in CI as its own step; it is not part of
# Completed Steps # Completed Steps
- 2026-11-10: the CI time limit of 20 minutes is on the step that runs
`script/cibuild` ([#199](https://git.eeqj.de/sneak/netwatch/issues/199)). The
runner ignored it on the job. The `Dockerfile`, `script/frontend-test` and
`script/frontend-viewport-test` no longer wrap commands in `timeout`.
- 2026-10-26: `README.md`, `TODO.md` and `test/viewport/README.md` are rewritten - 2026-10-26: `README.md`, `TODO.md` and `test/viewport/README.md` are rewritten
sentence by sentence ([#189](https://git.eeqj.de/sneak/netwatch/issues/189)). sentence by sentence ([#189](https://git.eeqj.de/sneak/netwatch/issues/189)).
Each sentence reads on the first pass: one idea, under about 30 words, the Each sentence reads on the first pass: one idea, under about 30 words, the
+3 -3
View File
@@ -15,13 +15,13 @@ ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
main() { main() {
cd "$ROOT" cd "$ROOT"
NODE_OPTIONS=--test-reporter=dot \ NODE_OPTIONS=--test-reporter=dot \
"$ROOT/script/yarn" --silent run test || { timeout 90 "$ROOT/script/yarn" --silent run test || {
echo "--- Rerunning with every test listed for details ---" echo "--- Rerunning with every test listed for details ---"
NODE_OPTIONS=--test-reporter=spec \ NODE_OPTIONS=--test-reporter=spec \
"$ROOT/script/yarn" --silent run test timeout 90 "$ROOT/script/yarn" --silent run test
exit 1 exit 1
} }
"$ROOT/script/yarn" build timeout 30 "$ROOT/script/yarn" build
} }
main "$@" main "$@"
+3 -3
View File
@@ -31,8 +31,8 @@ HARNESS="netwatch-viewport-harness-$RUN_ID"
ARTIFACT_DIR="$ROOT/tmp/viewport" ARTIFACT_DIR="$ROOT/tmp/viewport"
# Every container is named and removed here, including the harness itself: # Every container is named and removed here, including the harness itself:
# a `docker run` client that is killed outright leaves its container # `timeout` below kills the `docker run` client, not the container it
# running, and an unnamed survivor keeps the --internal network in use so # started, and an unnamed survivor keeps the --internal network in use so
# `docker network rm` fails too. This host runs many sessions at once and # `docker network rm` fails too. This host runs many sessions at once and
# neither may be left behind. # neither may be left behind.
cleanup() { cleanup() {
@@ -122,7 +122,7 @@ main() {
-f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \ -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \
"$BROWSER")" "$BROWSER")"
docker run --rm --init --name "$HARNESS" \ timeout 900 docker run --rm --init --name "$HARNESS" \
--network "$NETWORK" \ --network "$NETWORK" \
--user "$(id -u):$(id -g)" \ --user "$(id -u):$(id -g)" \
-v "$ROOT:/app" \ -v "$ROOT:/app" \