Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 13 additions & 48 deletions .github/workflows/branch-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: 🏗 Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: 📦 Install Dependencies
Expand All @@ -42,55 +42,20 @@ jobs:
- name: 🧹 Dedupe
run: pnpm dedupe --check

# Typecheck/lint/format used to run serially in one job (~sum of all
# three). Splitting into a matrix trades that for parallel wall-clock =
# setup + slowest task: each job pays its own ~40s setup (checkout, pnpm,
# node, turbo cache restore), but with turbo cache hits the tasks
# themselves are fast, so 3 parallel setups + max(task) beats 1 setup +
# sum(tasks) once the tasks aren't trivially fast.
# Lint, format and typecheck come from GSTJ/magic — the same job every repo
# on the shared tooling runs, so a change to the stack is made in one place.
# It replaces a three-way matrix that paid its own ~40s setup per task; the
# reusable job installs once and runs all three, which is the better trade
# now that oxlint and oxfmt finish in under a second.
checkup:
name: ${{ matrix.emoji }} ${{ matrix.label }}
name: 👮 Checkup
needs: dedupe
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- task: typecheck
label: Typecheck
emoji: 🧪
- task: lint
label: Lint
emoji: 🧹
- task: format
label: Format
emoji: 💅
steps:
- name: 🏗 Setup Repo
uses: actions/checkout@v7

- name: 🏗 Setup PNPM
uses: pnpm/action-setup@v6.0.9

- name: 🏗 Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
cache: pnpm

- name: 📦 Install Dependencies
run: pnpm install --frozen-lockfile

- name: 🏗 Setup Turborepo Cache
uses: rharkor/caching-for-turbo@v2.5.0

- name: ${{ matrix.emoji }} ${{ matrix.label }}
run: pnpm run ${{ matrix.task }}
uses: GSTJ/magic/.github/workflows/ci.yml@main

# Kept out of the checkup matrix: only this job needs a database, and
# sharing the matrix would spin up Postgres for typecheck/lint/format too.
# No turbo cache step either — `test` is `cache: false` in turbo.json, so
# there would be nothing to restore.
# Kept out of the shared checkup job: only this one needs a database, and
# folding it in would spin up Postgres for typecheck/lint/format too. No
# turbo cache step either — `test` is `cache: false` in turbo.json, so there
# would be nothing to restore.
test:
name: 🔬 Test
needs: dedupe
Expand Down Expand Up @@ -124,7 +89,7 @@ jobs:
- name: 🏗 Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: 📦 Install Dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: 🏗 Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x

- name: "📦 Cache Node Modules"
uses: actions/cache@v6
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/e2e-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -1053,7 +1053,7 @@ jobs:
if: steps.preflight.outputs.skip != 'true'
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -1395,7 +1395,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release-mobile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -404,7 +404,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -552,7 +552,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down Expand Up @@ -596,7 +596,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v7
with:
node-version: 20.x
node-version: 22.x
cache: pnpm

- name: Install dependencies
Expand Down
2 changes: 0 additions & 2 deletions .npmrc

This file was deleted.

2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.16
22.23
3 changes: 0 additions & 3 deletions .oxfmtrc.json

This file was deleted.

113 changes: 0 additions & 113 deletions .oxlintrc.json

This file was deleted.

2 changes: 1 addition & 1 deletion apps/mobile/.maestro/20-account-creation-journey.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ tags:
#
# 2. Sign in via utils/login-fresh.yaml — the API's APPLE_MAGIC_EMAIL_REGEX
# bypass (^maestro-fresh.*@pegada\.app$ — see
# packages/api/src/services/AuthenticationService.ts → isFreshMagicEmail)
# packages/api/src/services/authentication-service.ts → isFreshMagicEmail)
# hard-purges the matching user + cascading Dog/Image/Match/Interest/
# Message rows BEFORE upserting, so the auth router always lands on
# CreateProfile regardless of any prior run's state. Two back-to-back
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/.maestro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ The iOS simulator can't talk to the real App Store. Without a StoreKit
configuration in the active Xcode scheme, `Purchases.getOfferings()` resolves
with `current: null` — the upgrade wall then renders empty plan rows and a
CTA stuck in loading. To avoid that, the repo ships `apps/mobile/Pegada.storekit`
(checked in — product IDs are not secrets) and `plugins/withStoreKitConfiguration.js`
(checked in — product IDs are not secrets) and `plugins/with-store-kit-configuration.js`
wires it into the generated scheme on every `expo prebuild`.

Belt-and-suspenders: the mobile payment service also has a JS-side fallback
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/.maestro/checks/23b-lang-theme.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# language = pt-BR (StorageKeys.Language; read by i18n detector
# in apps/mobile/src/i18n.ts)
# theme = dark (StorageKeys.Theme; read by ThemeProvider in
# apps/mobile/src/contexts/ThemeProvider.tsx)
# apps/mobile/src/contexts/theme-provider.tsx)
#
# This proves end-to-end persistence: the seed values survive the cold
# launch and the app's storage layer reads + applies them on mount. A
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/.maestro/utils/login-fresh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ tags:
- util
---
# Reusable subflow: sign-in as a FRESH test user via the API's
# APPLE_MAGIC_EMAIL_REGEX bypass (see packages/api/src/services/AuthenticationService.ts).
# APPLE_MAGIC_EMAIL_REGEX bypass (see packages/api/src/services/authentication-service.ts).
#
# How it differs from login.yaml:
# - login.yaml uses the single APPLE_MAGIC_EMAIL (test@pegada.app). That
Expand Down
Loading
Loading