Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
32 changes: 15 additions & 17 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,22 @@
"permissions": {
"allow": [
"mcp__nx-mcp__nx_workspace",
"Bash(yarn nx type-check:*)",
"Bash(yarn nx build:*)",
"Bash(yarn nx test:*)",
"Bash(yarn nx:*)",
"Bash(npx nx test:*)",
"Bash(npx nx show:*)",
"Bash(yarn db:generate:*)",
"Bash(yarn build:*)",
"Bash(yarn test:*)",
"Bash(yarn build:api:*)",
"Bash(npx tsc:*)",
"Bash(yarn prettier:*)",
"Bash(npx prettier:*)",
"Bash(npx nx run landing:build)",
"Bash(npx nx:*)",
"Bash(yarn build:ci)",
"Bash(pnpm nx type-check:*)",
"Bash(pnpm nx build:*)",
"Bash(pnpm nx test:*)",
"Bash(pnpm nx:*)",
"Bash(pnpm nx show:*)",
"Bash(pnpm db:generate:*)",
"Bash(pnpm build:*)",
"Bash(pnpm test:*)",
"Bash(pnpm build:api:*)",
"Bash(pnpm tsc:*)",
"Bash(pnpm prettier:*)",
"Bash(pnpm nx run landing:build)",
"Bash(pnpm build:ci)",
"Bash(gh api:*)",
"Bash(yarn tsc:*)"
"Bash(pnpm why *)",
"Bash(pnpm config *)"
],
"deny": [],
"ask": []
Expand Down
4 changes: 2 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
!/scripts

# Include specific files
!/yarn.lock
!/pnpm-lock.yaml
!/pnpm-workspace.yaml
!/.eslintrc.json
!/.gitignore
!/babel.config.json
Expand All @@ -33,4 +34,3 @@
**/*.log
**/.DS_Store
**/Thumbs.db

44 changes: 26 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,32 +83,36 @@ jobs:
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v5

- uses: pnpm/action-setup@v6
with:
version: 11.x.x

- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "yarn"
node-version: "24"
cache: "pnpm"

- name: install dependencies
run: yarn install --frozen-lockfile
run: pnpm install --frozen-lockfile

- name: Run database migration
run: yarn db:migrate
run: pnpm db:migrate

- name: Test all projects
if: github.event_name == 'push'
run: yarn test:all
run: pnpm test:all

- name: Test affected projects
if: github.event_name == 'pull_request'
run: yarn test:affected
run: pnpm test:affected

- name: Build
if: github.event_name == 'push'
run: yarn build:ci
run: pnpm build:ci

- name: Build affected
if: github.event_name == 'pull_request'
run: yarn build:affected
run: pnpm build:affected

- name: Uploading artifacts
if: github.event_name == 'push'
Expand Down Expand Up @@ -156,13 +160,17 @@ jobs:
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v5

- uses: pnpm/action-setup@v6
with:
version: 11.x.x

- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "yarn"
node-version: "24"
cache: "pnpm"

- name: install dependencies
run: yarn install --frozen-lockfile
run: pnpm install --frozen-lockfile

# Gate the slow E2E work on "is api or jetstream actually affected by this change?"
# For push-to-main we always run (full-regression safety net). The job itself still
Expand All @@ -175,7 +183,7 @@ jobs:
echo "::notice::Running E2E — push event always runs the full suite"
exit 0
fi
affected=$(npx nx show projects --affected --type=app)
affected=$(pnpm nx show projects --affected --type=app)
echo "Affected apps:"
echo "$affected"
if echo "$affected" | grep -qE '^(api|jetstream)$'; then
Expand All @@ -188,23 +196,23 @@ jobs:

- name: Build
if: steps.guard.outputs.should_run == 'true'
run: yarn build:ci
run: pnpm build:ci

- name: Install Playwright dependencies
if: steps.guard.outputs.should_run == 'true'
run: npx playwright install --with-deps
run: pnpm playwright install --with-deps

- name: Generate database
if: steps.guard.outputs.should_run == 'true'
run: yarn db:generate
run: pnpm db:generate

- name: Run database migration
if: steps.guard.outputs.should_run == 'true'
run: yarn db:migrate
run: pnpm db:migrate

- name: Seed DB
if: steps.guard.outputs.should_run == 'true'
run: yarn db:seed
run: pnpm db:seed
env:
POSTGRES_HOST: localhost
PGHOST: localhost
Expand All @@ -215,7 +223,7 @@ jobs:

- name: Run E2E tests
if: steps.guard.outputs.should_run == 'true'
run: yarn playwright:test:with-server
run: pnpm playwright:test:with-server

- name: Upload test results
# Upload even on failure, but only when the suite actually ran.
Expand Down
18 changes: 12 additions & 6 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,21 @@ jobs:
- uses: actions/checkout@v6
name: Checkout

- uses: pnpm/action-setup@v6
with:
version: 11.x.x

- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "yarn"
node-version: "24"
cache: "pnpm"

- name: Install dependencies
working-directory: apps/docs
run: yarn install --frozen-lockfile
# `--filter docs...` limits the install to apps/docs + transitive deps.
# `--ignore-scripts` skips the root `prisma generate` postinstall (which
# needs JETSTREAM_POSTGRES_DBURI and is irrelevant to a docs build) and
# the auto-injected `node` runtime download from `devEngines.runtime`.
run: pnpm install --frozen-lockfile --filter docs... --ignore-scripts

- name: Build docs
working-directory: apps/docs
run: yarn build
run: pnpm --dir apps/docs build
Comment thread
paustint marked this conversation as resolved.
28 changes: 16 additions & 12 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
required: true
default: "patch"
type: choice
options: [ patch, minor, major ]
options: [patch, minor, major]

release_web:
description: "True to release core web application"
Expand Down Expand Up @@ -113,33 +113,37 @@ jobs:
# so release-it can push as the App (which is on the ruleset bypass list).
persist-credentials: false

- uses: pnpm/action-setup@v4
with:
version: 11.x.x

- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "yarn"
node-version: "24"
cache: "pnpm"

- name: Install dependencies
run: yarn install --frozen-lockfile
run: pnpm install --frozen-lockfile

- name: Run database migration
run: yarn db:migrate
run: pnpm db:migrate

- name: Run tests
run: yarn test:all
run: pnpm test:all

# ENSURE BUILD SUCCEEDS BEFORE CREATING ANY RELEASES
- name: Build Web
if: ${{ inputs.release_web }}
run: yarn build
run: pnpm build

- name: Build Web Extension
if: ${{ inputs.release_web_extension }}
run: npx nx run-many --output-style=static --target=build --parallel=3
run: pnpm nx run-many --output-style=static --target=build --parallel=3
--projects=jetstream-web-extension --configuration=production

- name: Build Desktop
if: ${{ inputs.release_desktop }}
run: npx nx run-many --output-style=static --target=build --parallel=3
run: pnpm nx run-many --output-style=static --target=build --parallel=3
--projects=jetstream-desktop,jetstream-desktop-client
--configuration=production

Expand Down Expand Up @@ -182,7 +186,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
BUMP: ${{ inputs.bump }}
run: npx release-it "$BUMP" --ci -VV --config .release-it.json
run: pnpm release-it "$BUMP" --ci -VV --config .release-it.json

- name: Debug dirty working dir
if: failure() && steps.release_web.outcome == 'failure'
Expand Down Expand Up @@ -212,7 +216,7 @@ jobs:
GOOGLE_WEB_EXT_PUBLISH_CLIENT_ID: ${{ secrets.GOOGLE_WEB_EXT_PUBLISH_CLIENT_ID }}
GOOGLE_WEB_EXT_PUBLISH_CLIENT_SECRET: ${{ secrets.GOOGLE_WEB_EXT_PUBLISH_CLIENT_SECRET }}
GOOGLE_WEB_EXT_PUBLISH_REFRESH_TOKEN: ${{ secrets.GOOGLE_WEB_EXT_PUBLISH_REFRESH_TOKEN }}
run: npx release-it "$BUMP" --ci -VV --config .release-it-web-ext.json
run: pnpm release-it "$BUMP" --ci -VV --config .release-it-web-ext.json

- name: Upload web extension zips
if: ${{ inputs.release_web_extension }}
Expand All @@ -230,7 +234,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
BUMP: ${{ inputs.bump }}
run: npx release-it "$BUMP" --ci -VV --config .release-it-desktop.json
run: pnpm release-it "$BUMP" --ci -VV --config .release-it-desktop.json

# CAPTURE VERSIONS FOR SUMMARY
- name: Capture web version
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

# dependencies
/node_modules
**/node_modules
.pnpm-store

# IDEs and editors
/.idea
Expand All @@ -35,6 +37,7 @@
/libpeerconnection.log
npm-debug.log
yarn-error.log
pnpm-debug.log*
testem.log
/typings

Expand Down Expand Up @@ -86,3 +89,5 @@ certificates
.sfdx/
**/.sf/
**/.sfdx/

.nx/self-healing
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1 +1 @@
npx --no -- commitlint --edit $1
pnpm dlx commitlint --edit $1
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@
/.nx/cache
/.nx/workspace-data
**/monaco/vs/

.nx/self-healing
2 changes: 1 addition & 1 deletion .release-it-desktop.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
},
"hooks": {
"before:init": "if [ \"$CI\" != \"true\" ]; then echo 'Local releases are disabled; run releases via CI only.'; exit 1; fi",
"after:bump": ["npx prettier --write apps/jetstream-desktop/package.json"],
"after:bump": ["pnpm prettier --write apps/jetstream-desktop/package.json"],
"after:release": "echo Successfully released ${name} v${version}."
}
}
8 changes: 4 additions & 4 deletions .release-it-web-ext.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
"hooks": {
"before:init": "if [ \"$CI\" != \"true\" ]; then echo 'Local releases are disabled; run releases via CI only.'; exit 1; fi",
"after:bump": [
"npx prettier --write apps/jetstream-web-extension/src/manifest.json",
"yarn build:web-extension",
"version=v${version} yarn build:web-extension:zip",
"version=v${version} yarn build:web-extension:upload --accept-all"
"pnpm prettier --write apps/jetstream-web-extension/src/manifest.json",
"pnpm build:web-extension",
"version=v${version} pnpm build:web-extension:zip",
"version=v${version} pnpm build:web-extension:upload --accept-all"
],
"after:release": "echo Successfully released ${name} v${version}."
}
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ If you are asked to create a migration file, always use the prisma cli and never
After updating the DB schema, generate types.

```bash
yarn db:generate # Regenerate Prisma client after schema changes
pnpm db:generate # Regenerate Prisma client after schema changes
```

<!-- nx configuration start-->
Expand Down
Loading
Loading