mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 06:57:47 +01:00
feat(infrastructure): add frontend, deploy to cloudflare
This commit is contained in:
21
.github/workflows/deploy-pr.yaml
vendored
21
.github/workflows/deploy-pr.yaml
vendored
@@ -20,6 +20,15 @@ jobs:
|
||||
pr_number: ${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
frontend:
|
||||
if: github.event.action != 'closed'
|
||||
name: Frontend - Build and Deploy to Cloudflare Pages (PR)
|
||||
uses: ./.github/workflows/frontend-pages.yml
|
||||
with:
|
||||
mode: pr
|
||||
pr_number: ${{ github.event.pull_request.number }}
|
||||
secrets: inherit
|
||||
|
||||
deploy:
|
||||
if: github.event.action != 'closed'
|
||||
name: Helm upgrade/install (PR preview)
|
||||
@@ -27,7 +36,7 @@ jobs:
|
||||
concurrency:
|
||||
group: pr-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: false
|
||||
needs: [build]
|
||||
needs: [build, frontend]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -76,10 +85,11 @@ jobs:
|
||||
--set-string rabbitmq.password="$RABBITMQ_PASSWORD" \
|
||||
--set-string database.password="$DB_PASSWORD"
|
||||
|
||||
- name: Post preview URL as PR comment
|
||||
- name: Post preview URLs as PR comment
|
||||
uses: actions/github-script@v7
|
||||
env:
|
||||
DEV_BASE_DOMAIN: ${{ secrets.BASE_DOMAIN }}
|
||||
FRONTEND_URL: ${{ needs.frontend.outputs.deployed_url }}
|
||||
with:
|
||||
script: |
|
||||
const pr = context.payload.pull_request;
|
||||
@@ -87,10 +97,11 @@ jobs:
|
||||
const prNumber = pr.number;
|
||||
const domainBase = process.env.DEV_BASE_DOMAIN;
|
||||
if (!domainBase) { core.setFailed('DEV_BASE_DOMAIN is required'); return; }
|
||||
const domain = `pr-${prNumber}.${domainBase}`;
|
||||
const url = `https://${domain}`;
|
||||
const backendDomain = `pr-${prNumber}.${domainBase}`;
|
||||
const backendUrl = `https://${backendDomain}`;
|
||||
const frontendUrl = process.env.FRONTEND_URL || '(not available)';
|
||||
const marker = '<!-- preview-link -->';
|
||||
const body = `${marker}\nPreview environment is running: ${url}\n`;
|
||||
const body = `${marker}\nPreview environment is running\n- Frontend: ${frontendUrl}\n- Backend: ${backendUrl}\n`;
|
||||
const { owner, repo } = context.repo;
|
||||
const { data: comments } = await github.rest.issues.listComments({ owner, repo, issue_number: prNumber, per_page: 100 });
|
||||
const existing = comments.find(c => c.body && c.body.includes(marker));
|
||||
|
||||
Reference in New Issue
Block a user