diff --git a/.github/workflows/deploy-pr.yaml b/.github/workflows/deploy-pr.yaml index 484622a..2bf2f79 100644 --- a/.github/workflows/deploy-pr.yaml +++ b/.github/workflows/deploy-pr.yaml @@ -20,17 +20,9 @@ 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 - - get_urls_2: + get_urls: if: github.event.action != 'closed' + name: Generate Preview URLs uses: ./.github/workflows/url_generator.yml with: runner: vhs @@ -38,6 +30,17 @@ 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) + needs: [get_urls] + uses: ./.github/workflows/frontend-pages.yml + with: + mode: pr + pr_number: ${{ github.event.pull_request.number }} + backend_url_scheme: ${{ needs.get_urls.outputs.backend_url_scheme }} + secrets: inherit + deploy: if: github.event.action != 'closed' name: Helm upgrade/install (PR preview) @@ -45,7 +48,7 @@ jobs: concurrency: group: pr-${{ github.event.pull_request.number }} cancel-in-progress: false - needs: [build, frontend, get_urls_2] + needs: [build, frontend, get_urls] steps: - name: Checkout uses: actions/checkout@v4 @@ -72,13 +75,11 @@ jobs: RABBITMQ_PASSWORD: ${{ secrets.PROD_RABBITMQ_PASSWORD }} DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }} DIGEST: ${{ needs.build.outputs.digest }} - DOMAIN: "${{ needs.get_urls_2.outputs.backend_url }}" - DOMAIN_SCHEME: "${{ needs.get_urls_2.outputs.backend_url_scheme }}" - FRONTEND_DOMAIN: "${{ needs.get_urls_2.outputs.frontend_url }}" - FRONTEND_DOMAIN_SCHEME: "${{ needs.get_urls_2.outputs.frontend_url_scheme }}" + DOMAIN: "${{ needs.get_urls.outputs.backend_url }}" + DOMAIN_SCHEME: "${{ needs.get_urls.outputs.backend_url_scheme }}" + FRONTEND_DOMAIN: "${{ needs.get_urls.outputs.frontend_url }}" + FRONTEND_DOMAIN_SCHEME: "${{ needs.get_urls.outputs.frontend_url_scheme }}" run: | - #print env - env | sort PR=${{ github.event.pull_request.number }} RELEASE=myapp-pr-$PR NAMESPACE=pr-$PR @@ -98,8 +99,8 @@ jobs: - name: Post preview URLs as PR comment uses: actions/github-script@v7 env: - BACKEND_URL: ${{ needs.get_urls_2.outputs.backend_url_scheme }} - FRONTEND_URL: ${{ needs.get_urls_2.outputs.frontend_url_scheme }} + BACKEND_URL: ${{ needs.get_urls.outputs.backend_url_scheme }} + FRONTEND_URL: ${{ needs.get_urls.outputs.frontend_url_scheme }} with: script: | const pr = context.payload.pull_request; @@ -107,7 +108,7 @@ jobs: const prNumber = pr.number; const backendUrl = process.env.BACKEND_URL || '(not available)'; const frontendUrl = process.env.FRONTEND_URL || '(not available)'; - const marker = ''; + const marker = ''; 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 }); @@ -146,4 +147,4 @@ jobs: NAMESPACE=pr-$PR helm uninstall "$RELEASE" -n "$NAMESPACE" || true # Optionally delete the namespace if empty - kubectl delete namespace "$NAMESPACE" --ignore-not-found=true || true + kubectl delete namespace "$NAMESPACE" --ignore-not-found=true || true \ No newline at end of file diff --git a/.github/workflows/frontend-pages.yml b/.github/workflows/frontend-pages.yml index d5c91f6..7b46a6f 100644 --- a/.github/workflows/frontend-pages.yml +++ b/.github/workflows/frontend-pages.yml @@ -15,6 +15,10 @@ on: description: 'Cloudflare Pages project name (overrides default)' required: false type: string + backend_url_scheme: + description: 'The full scheme URL for the backend (e.g., https://api.example.com)' + required: true + type: string secrets: CLOUDFLARE_API_TOKEN: required: true @@ -26,17 +30,9 @@ on: value: ${{ jobs.deploy.outputs.deployed_url }} 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,9 +50,9 @@ jobs: - name: Install dependencies run: npm ci - - name: Set backend URL from url_generator + - name: Set backend URL from workflow input run: | - echo "VITE_BACKEND_URL=${{ needs.get_urls.outputs.backend_url_scheme }}" >> $GITHUB_ENV + echo "VITE_BACKEND_URL=${{ inputs.backend_url_scheme }}" >> $GITHUB_ENV - name: Build run: npm run build @@ -136,4 +132,4 @@ jobs: else URL="https://${PBRANCH}.${PNAME}.pages.dev" fi - echo "deployed_url=$URL" >> $GITHUB_OUTPUT + echo "deployed_url=$URL" >> $GITHUB_OUTPUT \ No newline at end of file