Skip to content

fix(analytics): improve analytics configuration and environment varia… #187

fix(analytics): improve analytics configuration and environment varia…

fix(analytics): improve analytics configuration and environment varia… #187

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
quality-check:
name: Code Quality Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run ESLint
run: npm run lint:check
- name: Type check
run: npm run type-check
build:
name: Build Application
runs-on: ubuntu-latest
needs: [quality-check]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: |
echo "Node.js version:"
node --version
echo "npm version:"
npm --version
echo "Installing dependencies..."
npm ci
echo "Dependencies installed successfully"
echo "Checking for any dependency issues..."
npm ls --depth=0
echo "Checking for dependency conflicts..."
npm audit --audit-level=moderate || echo "Audit completed with warnings"
- name: Build application
env:
NEXT_PUBLIC_STELLAR_NETWORK: TESTNET
NEXT_PUBLIC_STELLAR_HORIZON_TESTNET: https://horizon-testnet.stellar.org
NEXT_PUBLIC_STELLAR_HORIZON_PUBLIC: https://horizon.stellar.org
NEXT_PUBLIC_DEFAULT_ASSET_CODE: USDC
NEXT_PUBLIC_DEFAULT_ASSET_ISSUER: CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA
NEXT_PUBLIC_DEFAULT_ASSET_DECIMALS: 7
NEXT_PUBLIC_APP_NAME: Stellar Nexus
NEXT_PUBLIC_APP_VERSION: 0.1.0
NODE_ENV: production
NEXT_PUBLIC_PLATFORM_FEE_PERCENTAGE: 4
NEXT_PUBLIC_DEFAULT_ESCROW_DEADLINE_DAYS: 7
NEXT_PUBLIC_DEBUG_MODE: false
NEXT_PUBLIC_ESCROW_FEATURES_ENABLED: true
NEXT_PUBLIC_WALLET_FEATURES_ENABLED: true
NEXT_PUBLIC_DEMO_FEATURES_ENABLED: true
NEXT_PUBLIC_AI_FEATURES_ENABLED: true
NEXT_PUBLIC_ANIMATIONS_ENABLED: true
NEXT_PUBLIC_GLASSMORPHISM_ENABLED: true
NEXT_PUBLIC_GRADIENT_EFFECTS_ENABLED: true
NEXT_PUBLIC_LAZY_LOADING_ENABLED: true
NEXT_PUBLIC_IMAGE_OPTIMIZATION_ENABLED: true
NEXT_PUBLIC_CODE_SPLITTING_ENABLED: true
NEXT_PUBLIC_CONTENT_SECURITY_POLICY_ENABLED: true
NEXT_PUBLIC_XSS_PROTECTION_ENABLED: true
NEXT_PUBLIC_FRAME_OPTIONS_ENABLED: true
NEXT_PUBLIC_ANALYTICS_ENABLED: false
NEXT_PUBLIC_ERROR_REPORTING_ENABLED: false
NEXT_PUBLIC_AI_ASSISTANT_ENABLED: true
NEXT_PUBLIC_AI_ASSISTANT_NAME: NEXUS PRIME
NEXT_PUBLIC_AI_ASSISTANT_VOICE_ENABLED: true
NEXT_PUBLIC_DEMO_MODE_ENABLED: true
NEXT_PUBLIC_DEMO_DATA_ENABLED: true
NEXT_PUBLIC_FREIGHTER_APP_ID: stellar-nexus-experience
NEXT_PUBLIC_ALBEDO_APP_NAME: Stellar Nexus Experience
# Firebase credentials should be set as GitHub secrets, not hardcoded
NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}
NEXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}
NEXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }}
run: |
echo "Environment variables set:"
echo "NODE_ENV: $NODE_ENV"
echo "NEXT_PUBLIC_STELLAR_NETWORK: $NEXT_PUBLIC_STELLAR_NETWORK"
echo "Current directory contents:"
ls -la
echo "Starting build..."
npm run build 2>&1 | tee build.log
BUILD_EXIT_CODE=$?
echo "Build completed with exit code: $BUILD_EXIT_CODE"
if [ $BUILD_EXIT_CODE -ne 0 ]; then
echo "Build failed! Build log:"
cat build.log
exit 1
fi
- name: List build directory contents
run: |
echo "Checking if .next directory exists:"
ls -la .next/ || echo ".next directory not found"
echo "Checking if build was successful:"
ls -la .next/static/ || echo "static directory not found"
echo "Build log contents:"
cat build.log || echo "No build log found"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: build-files
path: .next/
retention-days: 7
- name: Upload build log
uses: actions/upload-artifact@v4
if: always()
with:
name: build-log
path: build.log
retention-days: 7
# Deploy job removed - Vercel handles automatic deployments via GitHub integration
# No need for manual GitHub Actions deployment when Vercel webhook is active
# E2E Tests - Temporarily disabled
# e2e-tests:
# name: E2E Tests
# runs-on: ubuntu-latest
# needs: build
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: '18'
# cache: 'npm'
# - name: Install dependencies
# run: npm ci
# - name: Download build artifacts
# uses: actions/download-artifact@v4
# with:
# name: build-files
# path: .next/
# - name: Verify build artifacts
# run: |
# echo "Checking downloaded artifacts:"
# ls -la .next/ || echo ".next directory not found after download"
# echo "Checking if static files exist:"
# ls -la .next/static/ || echo "static directory not found"
# - name: Start application
# run: npm start &
# - name: Wait for application to start
# run: |
# timeout 30 bash -c 'until curl -f http://localhost:3000; do sleep 1; done'
# - name: Run Cypress tests
# uses: cypress-io/github-action@v6
# with:
# start: npm start
# wait-on: 'http://localhost:3000'
# browser: chrome
# record: false
# - name: Upload Cypress screenshots
# uses: actions/upload-artifact@v4
# if: failure() && hashFiles('cypress/screenshots/**/*') != ''
# with:
# name: cypress-screenshots
# path: cypress/screenshots/
# retention-days: 7
# - name: Upload Cypress videos
# uses: actions/upload-artifact@v4
# if: always() && hashFiles('cypress/videos/**/*') != ''
# with:
# name: cypress-videos
# path: cypress/videos/
# retention-days: 7