Skip to content

fix(ci): build/prod updates with each PlaceOS release, and stops stalling on e2e timeouts - #343

Merged
MrYuion merged 2 commits into
developfrom
feat/placeos-aligned-releases
Nov 13, 2026
Merged

MrYuion merged 2 commits into
developfrom
feat/placeos-aligned-releases

Conversation

@MrYuion

@MrYuion MrYuion commented Nov 13, 2026

Copy link
Copy Markdown
Collaborator

PlaceOS installs load backoffice from build/prod, but build/prod has not changed since 2026-07-08. The release/2026-08-20 and release/2026-10-08 builds ran e2e on every browser, hit the 25-minute timeout, and skipped the deploy. The PlaceOS changelogs for 2.2610 and 2.2611 also list backoffice changes that installs do not have, because PlaceOS records the develop commit that its interfaces/backoffice submodule pins.

Now each PlaceOS release ships the backoffice commit that it pins:

  1. PlaceOS/PlaceOS sends a placeos-release event after a release. That change is in a separate PR in PlaceOS/PlaceOS.
  2. The new RELEASE workflow looks up the commit that the version pins, and tags it v<version> (for example v2.2611.6). The version info shows the tag.
  3. It runs lint, the unit tests and the Chromium e2e tests, makes a production build, and publishes it to build/prod.
  4. It pushes the tag and commits CHANGELOG.md to develop. A rollback does not overwrite a newer changelog.

You can also run RELEASE by hand with a version, to retry or to roll back.

Other changes:

  • BUILD now builds only develop to build/dev. The build steps are in build-app.yml, which both workflows use.
  • CI e2e runs Chromium only, with a 10-minute timeout. Firefox and WebKit still run locally.
  • Removed update-changelog.yml. It never committed: git diff --quiet does not see an untracked CHANGELOG.md.
  • Removed the release/** and rc/** triggers. The rc path used a staging configuration that project.json does not have.
  • New docs/releases.md explains the process.

Tested locally: for 2.2611.6, the lookup finds 484102f, which is the pinned commit. The lookup rejects bad and unknown versions. The tag shows as v2.2611.6 in src/env/version.ts, and git-cliff writes a ## [2.2611.6] heading. actionlint reports no new issues.

After merge: run RELEASE with 2.2611.6 to bring build/prod up to date.

Created with Claude Opus 5.5 in Claude Code.

🤖 Generated with Claude Code

build/prod had not updated since July. The release/* branches ran e2e on
every browser, which timed out at 25 minutes and skipped the deploy. The
PlaceOS changelog listed backoffice changes that installs did not have.

PlaceOS/PlaceOS now sends a placeos-release event after each release.
RELEASE tags the backoffice commit that the version pins, tests it, and
publishes it to build/prod. CI e2e runs Chromium only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread .github/workflows/build-app.yml Fixed
…mmits

CodeQL found that a RELEASE run could check out any commit and write to
the develop cache through the Nx cache step. The Nx cache step is removed,
and RELEASE stops when the pinned commit is not on develop. The workflows
also set explicit token permissions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MrYuion
MrYuion merged commit 6465c69 into develop Nov 13, 2026
5 checks passed
@MrYuion
MrYuion deleted the feat/placeos-aligned-releases branch November 13, 2026 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants