Skip to content

Commit 6131ce6

Browse files
committed
fix app name and messages
1 parent 3ddf8a5 commit 6131ce6

File tree

1 file changed

+56
-51
lines changed

1 file changed

+56
-51
lines changed

.github/workflows/deploy-to-control-plane-review-app.yml

+56-51
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ run-name: Deploy PR Review App - PR #${{ github.event.pull_request.number || git
55
on:
66
pull_request:
77
types: [opened, synchronize, reopened]
8-
push:
9-
branches:
10-
- '**' # Any branch
11-
- '!main' # Except main
12-
- '!master' # Except master
138
issue_comment:
149
types: [created]
1510
workflow_dispatch:
@@ -139,9 +134,9 @@ jobs:
139134
fi
140135
fi
141136
142-
# Extract and set PR data
137+
# Set PR_NUMBER and override APP_NAME with validated PR number
143138
echo "PR_NUMBER=$PR_NUMBER" >> $GITHUB_ENV
144-
echo "APP_NAME=${{ vars.REVIEW_APP_PREFIX }}-$PR_NUMBER" >> $GITHUB_ENV
139+
echo "APP_NAME=${{ vars.REVIEW_APP_PREFIX }}-pr-$PR_NUMBER" >> $GITHUB_ENV
145140
echo "PR_REF=$(echo $PR_DATA | jq -r .headRefName)" >> $GITHUB_OUTPUT
146141
echo "PR_SHA=$(echo $PR_DATA | jq -r .headRefOid)" >> $GITHUB_ENV
147142
@@ -178,40 +173,14 @@ jobs:
178173
exit 0
179174
fi
180175
176+
# Validate supported event types
181177
if ! [[ "${{ github.event_name }}" == "workflow_dispatch" || \
182178
"${{ github.event_name }}" == "issue_comment" || \
183-
"${{ github.event_name }}" == "pull_request" || \
184-
"${{ github.event_name }}" == "push" ]]; then
179+
"${{ github.event_name }}" == "pull_request" ]]; then
185180
echo "Error: Unsupported event type ${{ github.event_name }}"
186181
exit 1
187182
fi
188183
189-
# Set DO_DEPLOY based on event type and conditions
190-
if [[ "${{ github.event_name }}" == "pull_request" && \
191-
("${{ github.event.action }}" == "opened" || \
192-
"${{ github.event.action }}" == "synchronize" || \
193-
"${{ github.event.action }}" == "reopened") ]]; then
194-
echo "DO_DEPLOY=true" >> $GITHUB_ENV
195-
elif [[ "${{ github.event_name }}" == "push" ]]; then
196-
echo "DO_DEPLOY=true" >> $GITHUB_ENV
197-
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
198-
echo "DO_DEPLOY=true" >> $GITHUB_ENV
199-
elif [[ "${{ github.event_name }}" == "issue_comment" ]]; then
200-
if [[ "${{ github.event.issue.pull_request }}" ]]; then
201-
# Trim spaces and check for exact command
202-
COMMENT_BODY=$(echo "${{ github.event.comment.body }}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
203-
if [[ "$COMMENT_BODY" == "/deploy-review-app" ]]; then
204-
echo "DO_DEPLOY=true" >> $GITHUB_ENV
205-
else
206-
echo "DO_DEPLOY=false" >> $GITHUB_ENV
207-
echo "Skipping deployment - comment '$COMMENT_BODY' does not match '/deploy-review-app'"
208-
fi
209-
else
210-
echo "DO_DEPLOY=false" >> $GITHUB_ENV
211-
echo "Skipping deployment for non-PR comment"
212-
fi
213-
fi
214-
215184
- name: Setup Control Plane App if Not Existing
216185
if: env.DO_DEPLOY != 'false' && env.APP_EXISTS == 'false'
217186
env:
@@ -233,7 +202,11 @@ jobs:
233202
body: [
234203
`🏗️ Building Docker image for PR [#${process.env.PR_NUMBER}](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/pull/${process.env.PR_NUMBER}), commit [${context.sha.substring(0, 7)}](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/commit/${context.sha})`,
235204
'',
236-
`📝 [View Build Logs](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/job/${context.job})`,
205+
'🚀 Deploying to Control Plane...',
206+
'',
207+
'⏳ Waiting for deployment to be ready...',
208+
'',
209+
`📝 [View Build and Deploy Logs](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/job/${context.job})`,
237210
'',
238211
process.env.CONSOLE_LINK
239212
].join('\n')
@@ -266,7 +239,7 @@ jobs:
266239
};
267240
268241
const workflowUrl = await getWorkflowUrl(context.runId);
269-
core.exportVariable('WORKFLOW_URL', workflowUrl);
242+
core.exportVariable('BUILD_LOGS_URL', workflowUrl);
270243
core.exportVariable('CONSOLE_LINK',
271244
'🎮 [Control Plane Console](' +
272245
'https://console.cpln.io/console/org/' + process.env.CPLN_ORG + '/gvc/' + process.env.APP_NAME + '/-info)'
@@ -350,21 +323,43 @@ jobs:
350323
uses: actions/github-script@v7
351324
with:
352325
script: |
353-
const deployingMessage = [
354-
'🚀 Deploying to Control Plane...',
355-
'',
356-
'⏳ Waiting for deployment to be ready...',
357-
'',
358-
'📝 [View Deploy Logs](${{ env.WORKFLOW_URL }})',
359-
'',
360-
process.env.CONSOLE_LINK
361-
].join('\n');
326+
// Create deployment status for deploying state
327+
await github.rest.repos.createDeploymentStatus({
328+
owner: context.repo.owner,
329+
repo: context.repo.repo,
330+
deployment_id: ${{ needs.process-deployment.outputs.deployment_id }},
331+
state: 'in_progress',
332+
description: 'Deployment in progress',
333+
log_url: process.env.BUILD_LOGS_URL
334+
});
335+
336+
// Get the current job URL and ID
337+
const { data: jobs } = await github.rest.actions.listJobsForWorkflowRun({
338+
owner: context.repo.owner,
339+
repo: context.repo.repo,
340+
run_id: context.runId
341+
});
362342
343+
const currentJob = jobs.jobs.find(job => job.name === context.job);
344+
const currentJobUrl = `${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/job/${currentJob.id}?pr=${process.env.PR_NUMBER}`;
345+
346+
// Update the PR comment with correct job URLs
363347
await github.rest.issues.updateComment({
364348
owner: context.repo.owner,
365349
repo: context.repo.repo,
366350
comment_id: ${{ needs.build.outputs.comment_id }},
367-
body: deployingMessage
351+
body: [
352+
`🏗️ Built Docker image for PR [#${process.env.PR_NUMBER}](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/pull/${process.env.PR_NUMBER}), commit [${process.env.PR_SHA.substring(0, 7)}](${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/commit/${process.env.PR_SHA})`,
353+
'',
354+
'🚀 Deploying to Control Plane...',
355+
'',
356+
'⏳ Waiting for deployment to be ready...',
357+
'',
358+
process.env.CONSOLE_LINK,
359+
'',
360+
`📝 [View Build Logs](${process.env.BUILD_LOGS_URL}?pr=${process.env.PR_NUMBER})`,
361+
`📝 [View Deploy Logs](${currentJobUrl})`
362+
].join('\n')
368363
});
369364
370365
- name: Deploy to Control Plane
@@ -390,14 +385,24 @@ jobs:
390385
391386
const consoleLink = process.env.CONSOLE_LINK;
392387
388+
// Get current job ID for accurate logs URL
389+
const { data: jobs } = await github.rest.actions.listJobsForWorkflowRun({
390+
owner: context.repo.owner,
391+
repo: context.repo.repo,
392+
run_id: context.runId
393+
});
394+
395+
const currentJob = jobs.jobs.find(job => job.name === context.job);
396+
const logsUrl = `${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/job/${currentJob.id}?pr=${prNumber}`;
397+
393398
// Create GitHub deployment status
394399
const deploymentStatus = {
395400
owner: context.repo.owner,
396401
repo: context.repo.repo,
397402
deployment_id: ${{ steps.init-deployment.outputs.result }},
398403
state: isSuccess ? 'success' : 'failure',
399404
environment_url: isSuccess ? appUrl : undefined,
400-
log_url: workflowUrl,
405+
log_url: logsUrl,
401406
environment: 'review'
402407
};
403408
@@ -410,21 +415,21 @@ jobs:
410415
'🚀 [Review App for PR #' + prNumber + '](' + appUrl + ')',
411416
consoleLink,
412417
'',
413-
'📋 [View Completed Action Build and Deploy Logs](' + workflowUrl + ')'
418+
`📝 [View Build and Deploy Logs](${logsUrl})`,
414419
].join('\n');
415420
416421
const failureMessage = [
417422
'❌ Deployment failed for PR #' + prNumber + ', commit ' + '${{ env.PR_SHA }}',
418423
'',
419424
consoleLink,
420425
'',
421-
'📋 [View Deployment Logs with Errors](' + workflowUrl + ')'
426+
`📝 [View Build and Deploy Logs with Errors](${logsUrl})`,
422427
].join('\n');
423428
424429
// Update the existing comment
425430
await github.rest.issues.updateComment({
426431
owner: context.repo.owner,
427432
repo: context.repo.repo,
428-
comment_id: ${{ steps.create-comment.outputs.comment-id }},
433+
comment_id: ${{ needs.build.outputs.comment_id }},
429434
body: isSuccess ? successMessage : failureMessage
430435
});

0 commit comments

Comments
 (0)