diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c00c79..39e8a97 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -140,6 +140,10 @@ jobs: docker-build: name: Docker Build Check runs-on: ubuntu-latest + needs: build + strategy: + matrix: + node-version: [20.x, 22.x] permissions: contents: read packages: read @@ -148,6 +152,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Download build artifact for node ${{ matrix.node-version }} + uses: actions/download-artifact@v4 + with: + name: build-${{ matrix.node-version }} + path: dist + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -157,6 +167,7 @@ jobs: context: . file: ./Dockerfile push: false + load: true cache-from: type=gha cache-to: type=gha,mode=max @@ -169,6 +180,10 @@ jobs: steps: - name: Check CI status run: | + echo "needs.lint.result=${{ needs.lint.result }}" + echo "needs.build.result=${{ needs.build.result }}" + echo "needs.test.result=${{ needs.test.result }}" + echo "needs.docker-build.result=${{ needs.docker-build.result }}" if [[ "${{ needs.lint.result }}" != "success" || \ "${{ needs.build.result }}" != "success" || \ "${{ needs.test.result }}" != "success" || \ diff --git a/apps/web/app/risk-trends/page.tsx b/apps/web/app/risk-trends/page.tsx new file mode 100644 index 0000000..5010d59 --- /dev/null +++ b/apps/web/app/risk-trends/page.tsx @@ -0,0 +1,157 @@ +'use client'; + +import React, { useState } from 'react'; + +export default function RiskTrendsDashboard() { + const [timeFilter, setTimeFilter] = useState('30d'); + + // Mock data for charts + const historicalData = [ + { date: '2023-01-01', riskScore: 85 }, + { date: '2023-02-01', riskScore: 70 }, + { date: '2023-03-01', riskScore: 65 }, + { date: '2023-04-01', riskScore: 50 }, + { date: '2023-05-01', riskScore: 55 }, + { date: '2023-06-01', riskScore: 40 }, + ]; + + return ( +
+

+ Risk Trends Dashboard +

+ + {/* Time Filters */} +
+ + +
+ +
+ {/* Historical Charts */} +
+

Historical Risk Chart

+
+ {historicalData.map((data, i) => ( +
+
+
60 + ? '#ef4444' + : data.riskScore > 40 + ? '#eab308' + : '#22c55e', + height: `${data.riskScore}%`, + borderRadius: '4px 4px 0 0', + transition: 'height 0.3s ease', + }} + title={`Risk Score: ${data.riskScore}`} + /> +
+ + {new Date(data.date).toLocaleString('default', { month: 'short' })} + +
+ ))} +
+
+ + {/* Risk Comparisons */} +
+

Risk Comparisons

+
+
+ Engineering +
+ 45 + ↓ 10% +
+
+
+ Sales +
+ 72 + ↑ 5% +
+
+
+ Marketing +
+ 30 + - 0% +
+
+
+
+
+
+ ); +}