Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
642e81c
ci(ci): move mutation to a release gate on main
systemfsoftware-maker Oct 5, 2026
4924650
ci(ci): run the release gate on github-hosted runners
systemfsoftware-maker Oct 6, 2026
2948df3
fix(ci): refuse a mutation shard whose mutate globs match no files
systemfsoftware-maker Oct 6, 2026
78d23d0
ci(ci): pass the release gate with a notice when there are no decisio…
systemfsoftware-maker Oct 6, 2026
445caba
deps(deps): move to effect 4 stable at exact pins
systemfsoftware-maker Oct 5, 2026
2c50fc8
build(repo): move lint, test and mutation settings to the root
systemfsoftware-maker Oct 5, 2026
330df81
build(repo): declare the effect/http unstable-api opt-in once at the …
systemfsoftware-maker Oct 5, 2026
0f0e072
feat(repo): serve the starter site from one worker
systemfsoftware-maker Oct 6, 2026
94943b0
ci(ci): run the e2e journeys against pnpm dev on linux and macos
systemfsoftware-maker Oct 6, 2026
9c2cf14
ci(ci): pin the shared release tooling to main, as main does
systemfsoftware-maker Oct 7, 2026
4e03afd
chore(repo): merge lake1/release-gate into lake1/effect4-pins
systemfsoftware-maker Oct 7, 2026
d2df28a
chore(repo): merge lake1/effect4-pins into lake1/shared-configs
systemfsoftware-maker Oct 7, 2026
57771ea
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
da12fe2
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
6b3c059
ci(ci): run the release gate only on pushes to main
systemfsoftware-maker Oct 7, 2026
3f3a504
chore(repo): refuse to run the journeys when port 1337 is already taken
systemfsoftware-maker Oct 7, 2026
0bf9f2f
chore(repo): merge lake1/release-gate into lake1/effect4-pins
systemfsoftware-maker Oct 7, 2026
0c6d6d4
chore(repo): merge lake1/effect4-pins into lake1/shared-configs
systemfsoftware-maker Oct 7, 2026
8592598
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
26d34e4
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
95bbb06
chore(repo): merge main into lake1/release-gate
systemfsoftware-maker Oct 7, 2026
42bcefb
chore(repo): merge lake1/release-gate into lake1/effect4-pins
systemfsoftware-maker Oct 7, 2026
7b82915
chore(repo): merge lake1/effect4-pins into lake1/shared-configs
systemfsoftware-maker Oct 7, 2026
cd73a2b
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
98f813e
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
29d1b80
build(repo): drop darwin from the flake and the toolchain
systemfsoftware-maker Oct 7, 2026
9bb82c7
ci(ci): run the journeys on linux only
systemfsoftware-maker Oct 7, 2026
bf35eae
chore(repo): merge lake1/release-gate into lake1/effect4-pins
systemfsoftware-maker Oct 7, 2026
c60d671
chore(repo): merge lake1/effect4-pins into lake1/shared-configs
systemfsoftware-maker Oct 7, 2026
4c03d51
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
71841ad
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
7767212
chore(repo): drop the journeys busy-port guard
systemfsoftware-maker Oct 7, 2026
4e8a46c
build(repo): show which tests ran in the turbo test logs
systemfsoftware-maker Oct 7, 2026
b23a8e2
chore(repo): merge main into lake1/release-gate
systemfsoftware-maker Oct 7, 2026
7793d48
chore(repo): merge lake1/release-gate into lake1/effect4-pins
systemfsoftware-maker Oct 7, 2026
06da6d7
deps(deps): move @effect/tsgo to 0.50.0
systemfsoftware-maker Oct 7, 2026
63786d6
chore(repo): merge lake1/effect4-pins into lake1/shared-configs
systemfsoftware-maker Oct 7, 2026
a919416
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
b223966
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
72a10ef
chore(repo): merge main (#35/#36 squashed) into shared-configs
systemfsoftware-maker Oct 7, 2026
b3108ee
chore(repo): merge lake1/shared-configs into lake1/site
systemfsoftware-maker Oct 7, 2026
06bf2ac
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
ca40e7f
chore(repo): merge main (#37 squashed) into site
systemfsoftware-maker Oct 7, 2026
cf82071
chore(repo): merge lake1/site into lake1/stack-ci
systemfsoftware-maker Oct 7, 2026
958410c
chore(repo): merge main (#41 squashed) into stack-ci
systemfsoftware-maker Oct 7, 2026
a1aee1d
build(repo): name the changesets versioning strategy, move @effect/ts…
systemfsoftware-maker Oct 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,28 @@ jobs:
turbo-${{ runner.os }}-
- name: Gate
run: ${{ matrix.gate }}

journeys:
name: journeys
runs-on: ubuntu-latest
timeout-minutes: 30
env:
CI: "true"
steps:
- uses: actions/checkout@v7
- uses: cachix/install-nix-action@v31
- uses: pnpm/setup@v2
with:
runtime: node@24
cache: true
- run: pnpm install --frozen-lockfile
- name: Journeys against pnpm dev
run: pnpm journeys
- if: always()
uses: actions/upload-artifact@v6
with:
name: journeys
path: |
apps/site-e2e/artifacts/
.journeys/dev.log
if-no-files-found: ignore
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ apps/site/.wrangler/
apps/site/src/routeTree.gen.ts
apps/site/.tanstack/
apps/site-e2e/artifacts/
.journeys/
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Starter template for TypeScript / Effect libraries and tools.
| `START-2` | Typechecking succeeds workspace-wide with no errors | `pnpm typecheck` |
| `START-3` | All test suites pass | `pnpm test` |
| `START-4` | Full CI validation passes before completion | `pnpm check:ci` |
| `START-5` | The e2e journeys pass against `pnpm dev` | `pnpm journeys` |

Workspace roots: `packages/` holds libraries, `apps/` holds publishable
applications — both are workspace globs in `pnpm-workspace.yaml`. Turbo declares
Expand Down
1 change: 1 addition & 0 deletions apps/site/alchemy.run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { siteWorker } from './site-worker.ts'
export const Site = Cloudflare.Website.Vite('Site', {
main: siteWorker.main,
compatibility: { date: siteWorker.compatibilityDate, flags: [...siteWorker.compatibilityFlags] },
dev: { port: 1337, strictPort: true },
})

export default Alchemy.Stack(
Expand Down
24 changes: 24 additions & 0 deletions bin/journeys
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Start the app with pnpm dev, run the e2e journeys against it, then stop it.
# A red run prints the tail of the dev server's log.
set -uo pipefail
# Job control gives pnpm dev its own process group, so one SIGINT reaches
# alchemy dev and lets it stop its local sidecar instead of orphaning it.
set -m

cd "$(dirname "${BASH_SOURCE[0]}")/.." || exit 1

readonly site=http://localhost:1337
readonly log=.journeys/dev.log
mkdir -p .journeys

pnpm dev >"$log" 2>&1 &
readonly dev=$!

status=0
curl -sS -o /dev/null --retry 90 --retry-delay 2 --retry-all-errors --max-time 5 "$site/" || status=1
[ "$status" = 0 ] && { SITE_URL=$site pnpm --filter @endgame/site-e2e journeys || status=1; }
[ "$status" = 0 ] || { echo "--- last 60 lines of pnpm dev ---"; tail -n 60 "$log"; }
kill -INT -- "-$dev" 2>/dev/null
wait "$dev" 2>/dev/null
exit "$status"
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
"typecheck": "turbo --concurrency=${TURBO_CONCURRENCY:-50%} --continue typecheck typecheck:node",
"typecheck:node": "tsc -p tsconfig.node.json --noEmit",
"test:scripts": "nix develop --command deno test --config=scripts/deno.json --allow-read --allow-write --allow-import=jsr.io scripts/",
"dev": "pnpm --filter @endgame/site dev"
"dev": "pnpm --filter @endgame/site dev",
"journeys": "./bin/journeys"
},
"type": "module"
}
68 changes: 34 additions & 34 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ catalog:
"@commitlint/cli": 21.2.3
"@commitlint/config-conventional": 21.2.3
"@commitlint/types": 21.2.3
"@effect/tsgo": 0.50.0
"@effect/tsgo": 0.51.0
"@rolldown/plugin-babel": 0.2.4
"@systemfsoftware/effect-gherkin-spec": 7.0.1
"@systemfsoftware/oxlint-config-recommended": 4.0.0
Expand Down
4 changes: 2 additions & 2 deletions release.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"branch": "changeset-release/main",
"versioning": {
// Each workspace package owns its version in its own package.json; the
// release delegates to `pnpm version -r`, as the deleted local tooling did.
"strategy": "pnpm",
// changesets libraries bump each package from the pending intents.
"strategy": "changesets",
},
// Turbo's task graph decides which packages a change touches, so an intent is
// required for exactly the publishable packages a PR actually affects.
Expand Down
2 changes: 1 addition & 1 deletion turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@
"!**/AGENTS.md",
"!**/CHANGELOG.md"
],
"outputLogs": "errors-only",
"outputLogs": "new-only",
"dependsOn": [
"^build",
"build"
Expand Down
Loading