@@ -106,6 +106,8 @@ jobs:
106106 NEXT_PUBLIC_SUPABASE_URL : ${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
107107 NEXT_PUBLIC_SUPABASE_ANON_KEY : ${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
108108 SUPABASE_SERVICE_ROLE_KEY : ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
109+ REDIS_URL : ${{ secrets.REDIS_URL }}
110+ REDIS_URL : ${{ secrets.REDIS_URL }}
109111
110112 - name : Analyze bundle size
111113 run : npm run build:analyze
@@ -183,6 +185,7 @@ jobs:
183185 NEXT_PUBLIC_SUPABASE_URL : ${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
184186 NEXT_PUBLIC_SUPABASE_ANON_KEY : ${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
185187 SUPABASE_SERVICE_ROLE_KEY : ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
188+ REDIS_URL : ${{ secrets.REDIS_URL }}
186189
187190 - name : Wait for app to be ready
188191 run : |
@@ -314,6 +317,7 @@ jobs:
314317 NEXT_PUBLIC_SUPABASE_URL : ${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
315318 NEXT_PUBLIC_SUPABASE_ANON_KEY : ${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
316319 SUPABASE_SERVICE_ROLE_KEY : ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
320+ REDIS_URL : ${{ secrets.REDIS_URL }}
317321
318322 - name : Deploy to Vercel (Staging)
319323 id : deploy-staging
@@ -439,6 +443,7 @@ jobs:
439443 NEXT_PUBLIC_SUPABASE_URL : ${{ secrets.NEXT_PUBLIC_SUPABASE_URL }}
440444 NEXT_PUBLIC_SUPABASE_ANON_KEY : ${{ secrets.NEXT_PUBLIC_SUPABASE_ANON_KEY }}
441445 SUPABASE_SERVICE_ROLE_KEY : ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }}
446+ REDIS_URL : ${{ secrets.REDIS_URL }}
442447
443448 - name : Deploy to Vercel (Production)
444449 id : deploy-production
@@ -592,16 +597,33 @@ jobs:
592597
593598 - name : Create Lighthouse configuration for deployed site
594599 run : |
595- cat > lighthouserc-deployed.js << 'EOF'
600+ # Get the deployment URL from the previous step
601+ DEPLOYMENT_URL="${{ needs.deploy-production.outputs.deployment-url }}"
602+
603+ # Validate deployment URL
604+ if [ -z "$DEPLOYMENT_URL" ]; then
605+ echo "β Deployment URL is empty, using fallback URL"
606+ DEPLOYMENT_URL="${{ secrets.PRODUCTION_URL }}"
607+ fi
608+
609+ # Ensure URL has protocol
610+ if [[ ! "$DEPLOYMENT_URL" =~ ^https?:// ]]; then
611+ echo "β οΈ Adding https:// protocol to URL: $DEPLOYMENT_URL"
612+ DEPLOYMENT_URL="https://$DEPLOYMENT_URL"
613+ fi
614+
615+ echo "π Using deployment URL for Lighthouse: $DEPLOYMENT_URL"
616+
617+ cat > lighthouserc-deployed.js << EOF
596618 module.exports = {
597619 ci: {
598620 collect: {
599621 url: [
600- '${{ needs.deploy-production.outputs.deployment-url } }/',
601- '${{ needs.deploy-production.outputs.deployment-url } }/about',
602- '${{ needs.deploy-production.outputs.deployment-url } }/hackathons',
603- '${{ needs.deploy-production.outputs.deployment-url } }/leaderboard',
604- '${{ needs.deploy-production.outputs.deployment-url } }/auth/signin'
622+ '${DEPLOYMENT_URL }/',
623+ '${DEPLOYMENT_URL }/about',
624+ '${DEPLOYMENT_URL }/hackathons',
625+ '${DEPLOYMENT_URL }/leaderboard',
626+ '${DEPLOYMENT_URL }/auth/signin'
605627 ],
606628 numberOfRuns: 3,
607629 settings: {
@@ -653,7 +675,21 @@ jobs:
653675 - name : Run Lighthouse CI on deployed site
654676 run : |
655677 echo "π Starting Lighthouse CI performance testing..."
656- echo "Testing URL: ${{ needs.deploy-production.outputs.deployment-url }}"
678+
679+ # Get the deployment URL
680+ DEPLOYMENT_URL="${{ needs.deploy-production.outputs.deployment-url }}"
681+ if [ -z "$DEPLOYMENT_URL" ]; then
682+ DEPLOYMENT_URL="${{ secrets.PRODUCTION_URL }}"
683+ fi
684+
685+ echo "Testing URL: $DEPLOYMENT_URL"
686+
687+ # Validate that we have a URL before running Lighthouse
688+ if [ -z "$DEPLOYMENT_URL" ]; then
689+ echo "β No deployment URL available for Lighthouse testing"
690+ echo "Skipping Lighthouse CI test"
691+ exit 0
692+ fi
657693
658694 # Run Lighthouse CI with the deployed configuration
659695 lhci autorun --config=lighthouserc-deployed.js
@@ -710,16 +746,33 @@ jobs:
710746
711747 - name : Create Lighthouse configuration for staging
712748 run : |
713- cat > lighthouserc-staging.js << 'EOF'
749+ # Get the deployment URL from the previous step
750+ DEPLOYMENT_URL="${{ needs.deploy-staging.outputs.deployment-url }}"
751+
752+ # Validate deployment URL
753+ if [ -z "$DEPLOYMENT_URL" ]; then
754+ echo "β Staging deployment URL is empty, using fallback URL"
755+ DEPLOYMENT_URL="${{ secrets.STAGING_URL }}"
756+ fi
757+
758+ # Ensure URL has protocol
759+ if [[ ! "$DEPLOYMENT_URL" =~ ^https?:// ]]; then
760+ echo "β οΈ Adding https:// protocol to staging URL: $DEPLOYMENT_URL"
761+ DEPLOYMENT_URL="https://$DEPLOYMENT_URL"
762+ fi
763+
764+ echo "π Using staging deployment URL for Lighthouse: $DEPLOYMENT_URL"
765+
766+ cat > lighthouserc-staging.js << EOF
714767 module.exports = {
715768 ci: {
716769 collect: {
717770 url: [
718- '${{ needs.deploy-staging.outputs.deployment-url } }/',
719- '${{ needs.deploy-staging.outputs.deployment-url } }/about',
720- '${{ needs.deploy-staging.outputs.deployment-url } }/hackathons',
721- '${{ needs.deploy-staging.outputs.deployment-url } }/leaderboard',
722- '${{ needs.deploy-staging.outputs.deployment-url } }/auth/signin'
771+ '${DEPLOYMENT_URL }/',
772+ '${DEPLOYMENT_URL }/about',
773+ '${DEPLOYMENT_URL }/hackathons',
774+ '${DEPLOYMENT_URL }/leaderboard',
775+ '${DEPLOYMENT_URL }/auth/signin'
723776 ],
724777 numberOfRuns: 2,
725778 settings: {
@@ -765,7 +818,21 @@ jobs:
765818 - name : Run Lighthouse CI on staging site
766819 run : |
767820 echo "π Starting Lighthouse CI performance testing on staging..."
768- echo "Testing URL: ${{ needs.deploy-staging.outputs.deployment-url }}"
821+
822+ # Get the deployment URL
823+ DEPLOYMENT_URL="${{ needs.deploy-staging.outputs.deployment-url }}"
824+ if [ -z "$DEPLOYMENT_URL" ]; then
825+ DEPLOYMENT_URL="${{ secrets.STAGING_URL }}"
826+ fi
827+
828+ echo "Testing URL: $DEPLOYMENT_URL"
829+
830+ # Validate that we have a URL before running Lighthouse
831+ if [ -z "$DEPLOYMENT_URL" ]; then
832+ echo "β No staging deployment URL available for Lighthouse testing"
833+ echo "Skipping Lighthouse CI test"
834+ exit 0
835+ fi
769836
770837 # Run Lighthouse CI with the staging configuration
771838 lhci autorun --config=lighthouserc-staging.js
0 commit comments