Repository navigation
ci(e2e): pull the current backend images on every run - #549
Conversation
The stack tracks `${PLACEOS_TAG:-latest}`, but on the persistent runner
`latest` was whatever had been pulled when the machine was set up, so
the nightly tested a backend from July while releases moved on.
`up.sh --pull` fetches the current images before starting; a failed
pull warns and runs with what is present, and the recorded backend
inputs show which images ran.
|
Deployment failed for project frontend-templates with the following error: Learn More: https://vercel.com/placeos?upgradeToPro=build-rate-limit |
|
The change does what it says for the normal case. I found two medium issues and four low issues in the failure paths and the docs. 1. One failed image cancels all other pulls (medium)
Without This also occurs when Fix: add dc pull --quiet --ignore-pull-failures2. Secrets are made with the old
|
… farm The e2e stack had no core, so nothing in it could run a driver and the specs that bind module state (the home availability panel, room check-in) could only be guarded. core is now part of the stack, started after init has created the tables it subscribes to, with its binaries coming from the PlaceOS build farm the way every deployment's do. The seed creates a repository row and driver rows for Place::Bookings and the demo calendar (PlaceOS/drivers#639), pinned to a commit so the farm builds each CPU architecture once, and waits until core holds the binaries before bring-up returns. Helpers for logic modules and module state go with it, for the specs that attach the drivers to rooms. The runner needs build.placeos.run and the drivers S3 bucket reachable.
…65 sandbox tenant The tenant row carried placeholder credentials, so every calendar-backed route (the concierge day view, the staff directory, the rooms and attendance reports) died at Microsoft and their specs could only be guarded. With E2E_O365_TENANT, E2E_O365_CLIENT_ID and E2E_O365_CLIENT_SECRET set, the seed writes app-only credentials to the row, updating one left over from a placeholder run, and creates a local admin whose address is a mailbox in the tenant so staff-api can create events on its behalf. Without them nothing changes and the specs that need the tenant skip. CI takes the values from the repository variables and secret of the same names; they belong to the sandbox app "PlaceOS Bookings Visualiser".
- Move the drivers repository row to the configured uri and branch. - Replace a room's module from an earlier driver instead of adding a second one. - Retry /compiled on network errors, and ignore build output left by an earlier attempt. - Re-check the search-backed driver listing before creating a row. - Log a warning when drivers do not load, so a build farm outage does not fail every spec. - Share the listing helpers through e2e/support/api.ts and type the rows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
… step Review round on #549. - `docker compose pull --ignore-pull-failures`: one image that cannot be pulled no longer cancels the others, so the stack cannot end up half updated because of one timeout or one rate-limit response. The warning branch goes with it; compose prints each failure itself. - The pull now runs before `generate-secrets`, so the secrets come from the init image the run is about to use. The env files are touched first because compose will not load the project without them. - `--pull-only` pulls and stops. CI runs it as its own step with a 20 minute limit and `continue-on-error`, then brings the stack up without a pull, so a stalled registry costs at most that step. The pull is no longer quiet, so the log shows which image is slow. - `docker image prune -f` moves out of `up.sh` into the workflow's reclaim step; on a developer machine the script now touches only its own project. - postgres pinned to `18.6-alpine`, the version the runner already has, so the pull cannot move an infrastructure image. - README: the two new options and a Docker Hub row in the CI table; the runner doc names the step.
|
Thanks, all six are in as 61b960d.
Checked locally: |
# Conflicts: # .github/workflows/e2e-advisory.yml # e2e/README.md # e2e/stack/SELF_HOSTED_RUNNER.md
# Conflicts: # e2e/stack/SELF_HOSTED_RUNNER.md
- The seed names the tenant row after what it holds, and specs read it with calendarBacked(), so the test step needs no O365 secret. - The O365 vars move from the job env to the bring-up step only. - ensureTenant always writes the row back, so a reused stack goes back to placeholders. - ensureUser upserts users for staff and calendar roles and updates the password and sys_admin of an existing user. - calendar.env.ts loads e2e/.env itself and is the one source for the calendar user. - Fix the directory route in the docs and list the new vars in .env.example. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ci(e2e): run core in the stack and load pinned drivers from the build farm
ci(e2e): back the stack's calendar and directory with the Microsoft 365 sandbox tenant
#549 moved the Microsoft 365 variables to the bring-up step and added `calendarBacked(api)`, which reads the tenant row the seed wrote. The test step no longer sees the variables, so a skip keyed on them would skip the calendar rows on a stack that is backed. The concierge fixtures gain a worker fixture, `conciergeCalendarBacked`, answered once per worker with the admin token, and the calendar identity's state and token fixtures key off it. The three tenant-only groups skip from a `beforeEach` on the same fixture.
What was wrong
The e2e stack tracks
${PLACEOS_TAG:-latest}, butdocker compose upnever re-pulls a tag that is already present. On the persistent self-hosted runner that meantlatestwas whatever had been pulled the day the machine was set up: the nightly was testing the July release while 2.2608 and 2.2609 shipped, and the "Backend inputs" summary was the only sign.Change
e2e/stack/up.sh --pullpulls the current images before starting the stack, prunes dangling layers after a successful pull, and on a failed pull warns and runs with the images already present (the recorded backend inputs show which ones ran).up.sh --pull.Verified
Locally,
up.sh --pullpulled and started the stack. On the runner, the push of this branch ran the advisory job (https://github.com/PlaceOS/user-interfaces/actions/runs/37578866715): the pull step fetched new layers for every PlaceOS image, which is the release channel's currentplaceos-2.2609.6, bring-up took about nine minutes longer for that one run, and the suite passed (14 of 14 on this develop-based branch).