@@ -106,24 +106,36 @@ jobs:
106
106
run : |
107
107
if ! cpflow exists -a ${{ env.APP_NAME }}; then
108
108
echo "No review app exists for this PR"
109
- exit 0
109
+ echo "app_exists=false" >> $GITHUB_OUTPUT
110
+ if [[ "${{ github.event_name }}" == "push" ]]; then
111
+ exit 0
112
+ fi
110
113
fi
111
114
echo "app_exists=true" >> $GITHUB_OUTPUT
112
115
113
116
- name : Validate Deployment Request
114
117
id : validate
115
118
run : |
116
- if [[ "${{ github.event_name }}" == "pull_request" && "${{ steps.check-app.outputs.app_exists }}" == "true" ]] || \
117
- [[ "${{ github.event_name }}" == "workflow_dispatch" ]] || \
118
- [[ "${{ github.event_name }}" == "issue_comment" && "${{ github.event.comment.body }}" == "/deploy-review-app" ]] || \
119
- [[ "${{ github.event_name }}" == "push" ]]; then
120
- echo "SHOULD_DEPLOY=true" >> $GITHUB_ENV
121
- else
122
- echo "SHOULD_DEPLOY=false" >> $GITHUB_ENV
119
+ if ! [[ "${{ github.event_name }}" == "workflow_dispatch" || \
120
+ ("${{ github.event_name }}" == "issue_comment" && "${{ github.event.comment.body }}" == "/deploy-review-app") || \
121
+ "${{ github.event_name }}" == "push" ]]; then
123
122
echo "Skipping deployment - not a valid trigger (event: ${{ github.event_name }})"
124
123
exit 0
125
124
fi
126
125
126
+ - name : Create Initial Comment
127
+ id : create-comment
128
+ uses : actions/github-script@v7
129
+ with :
130
+ script : |
131
+ const result = await github.rest.issues.createComment({
132
+ owner: context.repo.owner,
133
+ repo: context.repo.repo,
134
+ issue_number: process.env.PR_NUMBER,
135
+ body: '🚀 Starting deployment process...\n\n' + process.env.CONSOLE_LINK
136
+ });
137
+ core.setOutput('comment-id', result.data.id);
138
+
127
139
- name : Set Deployment URLs
128
140
id : set-urls
129
141
uses : actions/github-script@v7
@@ -146,81 +158,6 @@ jobs:
146
158
'https://console.cpln.io/console/org/' + process.env.CPLN_ORG + '/gvc/' + process.env.APP_NAME + '/-info)'
147
159
);
148
160
149
- - name : Create Initial Comment
150
- id : create-comment
151
- uses : actions/github-script@v7
152
- with :
153
- script : |
154
- const result = await github.rest.issues.createComment({
155
- owner: context.repo.owner,
156
- repo: context.repo.repo,
157
- issue_number: process.env.PR_NUMBER,
158
- body: '🚀 Deploying Review App...\n\n' + process.env.CONSOLE_LINK
159
- });
160
- return result.data.id;
161
-
162
- - name : Set Comment ID
163
- run : echo "COMMENT_ID=${{ fromJSON(steps.create-comment.outputs.result).commentId }}" >> $GITHUB_ENV
164
-
165
- - name : Initialize Deployment
166
- id : init-deployment
167
- uses : actions/github-script@v7
168
- with :
169
- script : |
170
- async function getWorkflowUrl(runId) {
171
- const jobs = await github.rest.actions.listJobsForWorkflowRun({
172
- owner: context.repo.owner,
173
- repo: context.repo.repo,
174
- run_id: runId
175
- });
176
-
177
- const currentJob = jobs.data.jobs.find(job => job.status === 'in_progress');
178
- const jobId = currentJob?.id;
179
-
180
- if (!jobId) {
181
- console.log('Warning: Could not find current job ID');
182
- return `${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}`;
183
- }
184
-
185
- return `${process.env.GITHUB_SERVER_URL}/${context.repo.owner}/${context.repo.repo}/actions/runs/${runId}/job/${jobId}`;
186
- }
187
-
188
- // Create initial deployment comment
189
- const comment = await github.rest.issues.createComment({
190
- owner: context.repo.owner,
191
- repo: context.repo.repo,
192
- issue_number: process.env.PR_NUMBER,
193
- body: '⏳ Initializing deployment...'
194
- });
195
-
196
- // Create GitHub deployment
197
- const deployment = await github.rest.repos.createDeployment({
198
- owner: context.repo.owner,
199
- repo: context.repo.repo,
200
- ref: context.sha,
201
- environment: 'review',
202
- auto_merge: false,
203
- required_contexts: []
204
- });
205
-
206
- const workflowUrl = await getWorkflowUrl(context.runId);
207
-
208
- return {
209
- deploymentId: deployment.data.id,
210
- commentId: comment.data.id,
211
- workflowUrl
212
- };
213
-
214
- - name : Set comment ID and workflow URL
215
- run : |
216
- echo "COMMENT_ID=${{ fromJSON(steps.init-deployment.outputs.result).commentId }}" >> $GITHUB_ENV
217
- echo "WORKFLOW_URL=${{ fromJSON(steps.init-deployment.outputs.result).workflowUrl }}" >> $GITHUB_ENV
218
-
219
- - name : Set commit hash
220
- run : |
221
- FULL_COMMIT="${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || steps.getRef.outputs.PR_SHA || github.sha }}"
222
- echo "COMMIT_HASH=${FULL_COMMIT:0:7}" >> $GITHUB_ENV
223
-
224
161
- name : Update Status - Building
225
162
uses : actions/github-script@v7
226
163
with :
@@ -237,7 +174,7 @@ jobs:
237
174
await github.rest.issues.updateComment({
238
175
owner: context.repo.owner,
239
176
repo: context.repo.repo,
240
- comment_id: process.env.COMMENT_ID ,
177
+ comment_id: ${{ steps.create-comment.outputs.comment-id }} ,
241
178
body: buildingMessage
242
179
});
243
180
@@ -269,7 +206,7 @@ jobs:
269
206
await github.rest.issues.updateComment({
270
207
owner: context.repo.owner,
271
208
repo: context.repo.repo,
272
- comment_id: process.env.COMMENT_ID ,
209
+ comment_id: ${{ steps.create-comment.outputs.comment-id }} ,
273
210
body: deployingMessage
274
211
});
275
212
@@ -329,6 +266,6 @@ jobs:
329
266
await github.rest.issues.updateComment({
330
267
owner: context.repo.owner,
331
268
repo: context.repo.repo,
332
- comment_id: process.env.COMMENT_ID ,
269
+ comment_id: ${{ steps.create-comment.outputs.comment-id }} ,
333
270
body: isSuccess ? successMessage : failureMessage
334
271
});
0 commit comments