Skip to content

Commit 6e72724

Browse files
Merge branch 'main' into feat/idempotency-key-donation-recording-148
2 parents 3ace137 + 219be28 commit 6e72724

141 files changed

Lines changed: 16840 additions & 7347 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 0 additions & 63 deletions
This file was deleted.

.github/workflows/a11y-nightly.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Nightly Accessibility Scan
2+
3+
# Runs every day at 06:00 UTC (≈1:00 AM EST). Also runs on manual trigger.
4+
on:
5+
schedule:
6+
- cron: "0 6 * * *"
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
a11y-scan:
14+
name: Axe DevTools AA scan (live pages)
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 25
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
21+
- name: Setup Node.js
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: "20"
25+
cache: npm
26+
cache-dependency-path: frontend/package-lock.json
27+
28+
- name: Install frontend dependencies
29+
working-directory: frontend
30+
run: npm ci
31+
32+
- name: Install Playwright Chromium
33+
working-directory: frontend
34+
run: npx playwright install --with-deps chromium
35+
36+
- name: Build Next.js production bundle
37+
working-directory: frontend
38+
run: npm run build
39+
env:
40+
NEXT_PUBLIC_STELLAR_NETWORK: testnet
41+
NEXT_PUBLIC_HORIZON_URL: https://horizon-testnet.stellar.org
42+
NEXT_PUBLIC_API_URL: http://localhost:4000
43+
44+
- name: Start Next.js server in background
45+
working-directory: frontend
46+
run: |
47+
nohup npm run start > next-start.log 2>&1 &
48+
# Wait up to 60s for the server to respond.
49+
timeout 60 bash -c 'until curl -fs http://localhost:3000 > /dev/null; do sleep 2; done'
50+
echo "Next.js server is up."
51+
52+
- name: Run axe-core scan
53+
working-directory: frontend
54+
run: npm run a11y:scan
55+
56+
- name: Upload a11y report
57+
if: always()
58+
uses: actions/upload-artifact@v4
59+
with:
60+
name: a11y-report
61+
path: frontend/a11y-report.json
62+
if-no-files-found: warn
63+
64+
- name: Upload server log
65+
if: failure()
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: next-start.log
69+
path: frontend/next-start.log
70+
if-no-files-found: ignore

.github/workflows/contracts.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,9 @@ name: Contracts CI
33
on:
44
push:
55
branches: [main, develop]
6-
paths:
7-
- "contracts/**"
8-
- ".github/workflows/contracts.yml"
6+
paths: [contracts/**]
97
pull_request:
10-
paths:
11-
- "contracts/**"
12-
- ".github/workflows/contracts.yml"
8+
paths: [contracts/**]
139
workflow_dispatch:
1410
schedule:
1511
# Nightly deep fuzz run -- 1 000 000 iterations every day at 03:00 UTC

.github/workflows/frontend.yml

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,99 @@ on:
55
branches: [main, develop]
66
pull_request:
77

8+
# Pin every devDependency additively here so floating semver never lands a
9+
# different jest-axe on a system where we cannot pin via overrides.
10+
# Comments by hand: nexus of jest+axe versions that play together.
11+
# See frontend/scripts/axe-scan.README.md for context.
12+
813
jobs:
14+
frontend-lint:
15+
name: Frontend Lint
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v4
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: "20"
24+
cache: npm
25+
cache-dependency-path: frontend/package-lock.json
26+
- name: Install frontend dependencies
27+
working-directory: frontend
28+
# --legacy-peer-deps tolerates jest-axe@8 asserting peer jest@^29
29+
# while we actually use jest@^30. Pinning the exact version in
30+
# package.json + overrides keeps CI deterministic.
31+
run: npm ci --legacy-peer-deps
32+
- name: Lint
33+
working-directory: frontend
34+
run: npm run lint
35+
36+
frontend-typecheck:
37+
name: Frontend TypeScript
38+
runs-on: ubuntu-latest
39+
steps:
40+
- name: Checkout code
41+
uses: actions/checkout@v4
42+
- name: Setup Node.js
43+
uses: actions/setup-node@v4
44+
with:
45+
node-version: "20"
46+
cache: npm
47+
cache-dependency-path: frontend/package-lock.json
48+
- name: Install frontend dependencies
49+
working-directory: frontend
50+
run: npm ci --legacy-peer-deps
51+
- name: TypeScript type-check
52+
working-directory: frontend
53+
run: npm run type-check
54+
55+
frontend-tests-smoke:
56+
name: Frontend jest smoke (jest-axe resolves)
57+
runs-on: ubuntu-latest
58+
steps:
59+
- name: Checkout code
60+
uses: actions/checkout@v4
61+
- name: Setup Node.js
62+
uses: actions/setup-node@v4
63+
with:
64+
node-version: "20"
65+
cache: npm
66+
cache-dependency-path: frontend/package-lock.json
67+
- name: Install frontend dependencies
68+
working-directory: frontend
69+
run: npm ci --legacy-peer-deps
70+
- name: Verify jest-axe + axe-core resolve
71+
working-directory: frontend
72+
run: npm run test:smoke:install
73+
- name: Run Tabs + MonthlyGivingSetup jest smoke
74+
working-directory: frontend
75+
run: npm run test:smoke
76+
77+
frontend-tests:
78+
name: Frontend Unit + Accessibility Tests
79+
runs-on: ubuntu-latest
80+
needs: [frontend-tests-smoke]
81+
steps:
82+
- name: Checkout code
83+
uses: actions/checkout@v4
84+
- name: Setup Node.js
85+
uses: actions/setup-node@v4
86+
with:
87+
node-version: "20"
88+
cache: npm
89+
cache-dependency-path: frontend/package-lock.json
90+
- name: Install frontend dependencies
91+
working-directory: frontend
92+
run: npm ci --legacy-peer-deps
93+
- name: Run jest (unit + a11y)
94+
working-directory: frontend
95+
run: npm test -- --ci --colors=false
96+
997
frontend-build:
1098
name: Frontend Build
1199
runs-on: ubuntu-latest
12-
100+
needs: [frontend-lint, frontend-typecheck, frontend-tests]
13101
steps:
14102
- name: Checkout code
15103
uses: actions/checkout@v4
@@ -23,7 +111,7 @@ jobs:
23111

24112
- name: Install frontend dependencies
25113
working-directory: frontend
26-
run: npm ci
114+
run: npm ci --legacy-peer-deps
27115

28116
- name: Build frontend
29117
working-directory: frontend

0 commit comments

Comments
 (0)