Skip to content

Commit 27568d1

Browse files
authored
Refactor and modularize web inbox, notifications, and SDK components (#26)
Refactor for improved type safety, and functionality. Enhancing type safety, maintainability, and CI reliability. The most significant changes are the refactoring of Convex usage to use local wrapper hooks, updates to type safety guidelines and documentation, and enhancements to the CI workflow to better summarize and gate check results.
1 parent 80a56a8 commit 27568d1

1,020 files changed

Lines changed: 78251 additions & 40920 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/workflows/ci.yml

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,32 +32,94 @@ jobs:
3232
run: pnpm install --frozen-lockfile
3333

3434
- name: Lint
35+
id: lint
36+
continue-on-error: true
3537
run: pnpm lint
3638

3739
- name: Typecheck
40+
id: typecheck
41+
continue-on-error: true
3842
run: pnpm typecheck
3943

4044
- name: Convex raw auth guard
45+
id: convex_auth_guard
46+
continue-on-error: true
4147
run: pnpm security:convex-auth-guard
4248

4349
- name: Convex validator any guard
50+
id: convex_any_guard
51+
continue-on-error: true
4452
run: pnpm security:convex-any-args-gate
4553

4654
- name: Secret scan gate
55+
id: secret_scan
56+
continue-on-error: true
4757
run: pnpm security:secret-scan
4858

4959
- name: Security headers policy check
60+
id: headers_check
61+
continue-on-error: true
5062
run: pnpm security:headers-check
5163

5264
- name: Convex backend tests
53-
run: pnpm --filter @opencom/convex test
65+
id: convex_tests
66+
continue-on-error: true
67+
run: pnpm test:convex
5468

5569
- name: Web production build
70+
id: web_build
71+
continue-on-error: true
5672
run: pnpm --filter @opencom/web build
5773

5874
- name: Dependency audit gate
75+
id: dependency_audit
76+
continue-on-error: true
5977
run: node scripts/ci-audit-gate.js
6078

79+
- name: Summarize check results
80+
if: always()
81+
run: |
82+
failures=0
83+
84+
report_blocking() {
85+
name="$1"
86+
outcome="$2"
87+
if [ "$outcome" = "success" ]; then
88+
echo "::notice::$name passed"
89+
elif [ "$outcome" = "skipped" ]; then
90+
echo "::warning::$name skipped"
91+
else
92+
echo "::error::$name failed"
93+
failures=1
94+
fi
95+
}
96+
97+
report_warning() {
98+
name="$1"
99+
outcome="$2"
100+
if [ "$outcome" = "success" ]; then
101+
echo "::notice::$name passed"
102+
elif [ "$outcome" = "skipped" ]; then
103+
echo "::warning::$name skipped"
104+
else
105+
echo "::warning::$name failed (warning only)"
106+
fi
107+
}
108+
109+
report_blocking "Lint" "${{ steps.lint.outcome }}"
110+
report_blocking "Typecheck" "${{ steps.typecheck.outcome }}"
111+
report_blocking "Convex raw auth guard" "${{ steps.convex_auth_guard.outcome }}"
112+
report_blocking "Convex validator any guard" "${{ steps.convex_any_guard.outcome }}"
113+
report_blocking "Secret scan gate" "${{ steps.secret_scan.outcome }}"
114+
report_blocking "Security headers policy check" "${{ steps.headers_check.outcome }}"
115+
report_blocking "Convex backend tests" "${{ steps.convex_tests.outcome }}"
116+
report_blocking "Web production build" "${{ steps.web_build.outcome }}"
117+
report_blocking "Dependency audit gate" "${{ steps.dependency_audit.outcome }}"
118+
119+
if [ "$failures" -ne 0 ]; then
120+
exit 1
121+
fi
122+
61123
e2e:
62124
runs-on: ubuntu-latest
63125
timeout-minutes: 45

0 commit comments

Comments
 (0)