Skip to content

Commit 50a6c88

Browse files
authored
Merge pull request #25 from GraphDone/feature/cross-browser-compatibility
Add OAuth Social Login Support (Google, LinkedIn, GitHub)
2 parents b226adc + 788d79e commit 50a6c88

63 files changed

Lines changed: 13303 additions & 1836 deletions

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: 81 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,81 @@ jobs:
202202
echo "ℹ️ Build and tests temporarily disabled due to CI Rollup dependency issue"
203203
echo "ℹ️ Full functionality tested locally and works correctly"
204204
205+
# PR validation with critical E2E tests
206+
pr-validation:
207+
name: PR Critical Tests
208+
runs-on: ubuntu-latest
209+
needs: [lint-and-typecheck, test-core, test-server, test-web]
210+
services:
211+
neo4j:
212+
image: neo4j:5.15-community
213+
env:
214+
NEO4J_AUTH: neo4j/graphdone_password
215+
NEO4J_PLUGINS: '["graph-data-science", "apoc"]'
216+
NEO4J_dbms_security_procedures_unrestricted: "gds.*,apoc.*"
217+
NEO4J_dbms_security_procedures_allowlist: "gds.*,apoc.*"
218+
options: >-
219+
--health-cmd "cypher-shell -u neo4j -p graphdone_password 'RETURN 1'"
220+
--health-interval 10s
221+
--health-timeout 5s
222+
--health-retries 10
223+
ports:
224+
- 7474:7474
225+
- 7687:7687
226+
steps:
227+
- name: Checkout code
228+
uses: actions/checkout@v4
229+
230+
- name: Setup Node.js
231+
uses: actions/setup-node@v4
232+
with:
233+
node-version: ${{ env.NODE_VERSION }}
234+
cache: 'npm'
235+
236+
- name: Install dependencies
237+
run: npm ci --legacy-peer-deps
238+
239+
- name: Install Playwright browsers
240+
run: npx playwright install --with-deps chromium
241+
242+
- name: Generate development certificates
243+
run: ./scripts/generate-dev-certs.sh
244+
245+
- name: Start GraphDone services
246+
run: |
247+
npm run docker:prod &
248+
sleep 30
249+
echo "Waiting for services to be healthy..."
250+
timeout 90 bash -c 'until curl -k https://localhost:4128/health 2>/dev/null; do sleep 2; done'
251+
252+
- name: Run PR critical tests
253+
run: npm run test:pr
254+
env:
255+
TEST_URL: https://localhost:3128
256+
TEST_ENV: production
257+
CI: true
258+
259+
- name: Upload test results
260+
if: always()
261+
uses: actions/upload-artifact@v4
262+
with:
263+
name: pr-test-results-${{ github.sha }}
264+
path: test-results/
265+
retention-days: 7
266+
267+
- name: Upload test report
268+
if: always()
269+
uses: actions/upload-artifact@v4
270+
with:
271+
name: pr-test-report-${{ github.sha }}
272+
path: test-results/reports/pr-report.html
273+
retention-days: 7
274+
205275
# Build job - validation only (skip actual build due to Rollup CI issue)
206276
build:
207277
name: Deployment Validation
208278
runs-on: ubuntu-latest
209-
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server]
279+
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server, pr-validation]
210280
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
211281
steps:
212282
- name: Checkout code
@@ -266,31 +336,33 @@ jobs:
266336
ci-success:
267337
name: CI Success
268338
runs-on: ubuntu-latest
269-
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server]
339+
needs: [lint-and-typecheck, security-scan, test-core, test-server, test-web, test-mcp-server, pr-validation]
270340
if: always()
271341
steps:
272342
- name: Check overall status
273343
run: |
274-
# Check if all required jobs passed
275344
LINT_STATUS="${{ needs.lint-and-typecheck.result }}"
276345
SECURITY_STATUS="${{ needs.security-scan.result }}"
277346
CORE_STATUS="${{ needs.test-core.result }}"
278347
SERVER_STATUS="${{ needs.test-server.result }}"
279348
WEB_STATUS="${{ needs.test-web.result }}"
280349
MCP_STATUS="${{ needs.test-mcp-server.result }}"
281-
350+
PR_VALIDATION_STATUS="${{ needs.pr-validation.result }}"
351+
282352
echo "📊 CI Pipeline Results:"
283353
echo "- Lint & TypeCheck: $LINT_STATUS"
284-
echo "- Security Scan: $SECURITY_STATUS"
354+
echo "- Security Scan: $SECURITY_STATUS"
285355
echo "- Core Tests: $CORE_STATUS"
286356
echo "- Server Tests: $SERVER_STATUS"
287357
echo "- Web Build: $WEB_STATUS"
288358
echo "- MCP Tests: $MCP_STATUS"
289-
290-
if [[ ("$LINT_STATUS" == "success" || "$LINT_STATUS" == "failure") && "$CORE_STATUS" == "success" &&
291-
"$SERVER_STATUS" == "success" && "$WEB_STATUS" == "success" &&
292-
"$MCP_STATUS" == "success" ]]; then
359+
echo "- PR Validation (E2E): $PR_VALIDATION_STATUS"
360+
361+
if [[ ("$LINT_STATUS" == "success" || "$LINT_STATUS" == "failure") && "$CORE_STATUS" == "success" &&
362+
"$SERVER_STATUS" == "success" && "$WEB_STATUS" == "success" &&
363+
"$MCP_STATUS" == "success" && "$PR_VALIDATION_STATUS" == "success" ]]; then
293364
echo "✅ All essential CI jobs completed successfully!"
365+
echo "✅ PR validation tests passed - critical functionality verified"
294366
echo "Note: Lint warnings and security scan failures don't block CI"
295367
else
296368
echo "❌ CI pipeline failed - check individual job results above"

deployment/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: graphdone
1+
version: '3.8'
22

33
services:
44
graphdone-neo4j:

0 commit comments

Comments
 (0)