mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 06:57:47 +01:00
fix(infrastructure): add env variables to deployment
This commit is contained in:
61
.github/workflows/frontend-pages.yml
vendored
61
.github/workflows/frontend-pages.yml
vendored
@@ -25,18 +25,18 @@ on:
|
||||
description: 'URL of deployed frontend'
|
||||
value: ${{ jobs.deploy.outputs.deployed_url }}
|
||||
|
||||
# Required repository secrets:
|
||||
# CLOUDFLARE_API_TOKEN - API token with Pages:Edit (or Account:Workers Scripts:Edit) permissions
|
||||
# CLOUDFLARE_ACCOUNT_ID - Your Cloudflare account ID
|
||||
# Optional repository variables:
|
||||
# CF_PAGES_PROJECT_NAME - Default Cloudflare Pages project name
|
||||
# PROD_DOMAIN - App domain for prod releases (e.g., api.example.com or https://api.example.com)
|
||||
# BACKEND_URL_PR_TEMPLATE - Template for PR backend URL. Use {PR} placeholder for PR number (e.g., https://api-pr-{PR}.example.com)
|
||||
|
||||
jobs:
|
||||
get_urls:
|
||||
uses: ./.github/workflows/url_generator.yml
|
||||
with:
|
||||
mode: ${{ inputs.mode }}
|
||||
pr_number: ${{ inputs.pr_number }}
|
||||
secrets: inherit
|
||||
|
||||
build:
|
||||
name: Build frontend
|
||||
runs-on: ubuntu-latest
|
||||
needs: [get_urls]
|
||||
defaults:
|
||||
run:
|
||||
working-directory: 7project/frontend
|
||||
@@ -54,50 +54,9 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Compute backend URL for Vite
|
||||
id: be
|
||||
env:
|
||||
EVENT_NAME: ${{ github.event_name }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number || inputs.pr_number }}
|
||||
PR_TEMPLATE: ${{ vars.BACKEND_URL_PR_TEMPLATE }}
|
||||
DEV_BASE_DOMAIN: ${{ secrets.BASE_DOMAIN }}
|
||||
PROD_DOMAIN_VAR: ${{ vars.PROD_DOMAIN }}
|
||||
PROD_DOMAIN_SECRET: ${{ secrets.PROD_DOMAIN }}
|
||||
BACKEND_URL_OVERRIDE: ${{ vars.BACKEND_URL || secrets.BACKEND_URL }}
|
||||
MODE: ${{ inputs.mode }}
|
||||
- name: Set backend URL from url_generator
|
||||
run: |
|
||||
set -euo pipefail
|
||||
URL=""
|
||||
# 1) Explicit override wins (from repo var or secret)
|
||||
if [ -n "${BACKEND_URL_OVERRIDE:-}" ]; then
|
||||
if echo "$BACKEND_URL_OVERRIDE" | grep -Eiq '^https?://'; then
|
||||
URL="$BACKEND_URL_OVERRIDE"
|
||||
else
|
||||
URL="https://${BACKEND_URL_OVERRIDE}"
|
||||
fi
|
||||
else
|
||||
# 2) PR-specific URL when building for PR
|
||||
if [ "${MODE:-}" = "pr" ] || [ "${EVENT_NAME}" = "pull_request" ]; then
|
||||
if [ -n "${PR_TEMPLATE:-}" ] && [ -n "${PR_NUMBER:-}" ] ; then
|
||||
URL="${PR_TEMPLATE//\{PR\}/${PR_NUMBER}}"
|
||||
elif [ -n "${DEV_BASE_DOMAIN:-}" ] && [ -n "${PR_NUMBER:-}" ]; then
|
||||
URL="https://pr-${PR_NUMBER}.${DEV_BASE_DOMAIN}"
|
||||
fi
|
||||
fi
|
||||
# 3) Fallback to PROD_DOMAIN (prefer repo var, then secret)
|
||||
if [ -z "$URL" ]; then
|
||||
PROD_DOMAIN="${PROD_DOMAIN_VAR:-${PROD_DOMAIN_SECRET:-}}"
|
||||
if [ -n "$PROD_DOMAIN" ]; then
|
||||
if echo "$PROD_DOMAIN" | grep -Eiq '^https?://'; then
|
||||
URL="$PROD_DOMAIN"
|
||||
else
|
||||
URL="https://${PROD_DOMAIN}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "Using backend URL: ${URL:-<empty>}"
|
||||
echo "VITE_BACKEND_URL=${URL}" >> $GITHUB_ENV
|
||||
echo "VITE_BACKEND_URL=${{ needs.get_urls.outputs.backend_url_scheme }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Build
|
||||
run: npm run build
|
||||
|
||||
Reference in New Issue
Block a user