11name : Delete Review App
22
33on :
4+ pull_request :
5+ types : [closed]
46 issue_comment :
57 types : [created]
68
@@ -13,8 +15,8 @@ permissions:
1315env :
1416 CPLN_ORG : ${{ secrets.CPLN_ORG }}
1517 CPLN_TOKEN : ${{ secrets.CPLN_TOKEN }}
16- APP_NAME : qa-react-webpack-rails-tutorial-pr-${{ github.event.issue.number }}
17- PR_NUMBER : ${{ github.event.issue.number }}
18+ APP_NAME : qa-react-webpack-rails-tutorial-pr-${{ github.event.pull_request.number || github.event. issue.number }}
19+ PR_NUMBER : ${{ github.event.pull_request.number || github.event. issue.number }}
1820
1921jobs :
2022 debug-trigger :
@@ -26,20 +28,26 @@ jobs:
2628 EVENT_NAME : ${{ github.event_name }}
2729 IS_PR : ${{ toJSON(github.event.issue.pull_request) }}
2830 COMMENT : ${{ github.event.comment.body }}
31+ PR_ACTION : ${{ github.event.action }}
32+ PR_MERGED : ${{ github.event.pull_request.merged }}
2933 run : |
3034 echo "Debug information for delete-review-app command:"
3135 echo "Event name: $EVENT_NAME"
3236 echo "Is PR (raw): $IS_PR"
3337 echo "Comment body: $COMMENT"
38+ echo "PR action: $PR_ACTION"
39+ echo "PR merged: $PR_MERGED"
3440 echo "Raw event payload:"
3541 echo '${{ toJSON(github.event) }}'
3642
3743 Process-Delete-Command :
3844 needs : debug-trigger
3945 if : |
40- github.event_name == 'issue_comment' &&
41- github.event.issue.pull_request &&
42- github.event.comment.body == '/delete-review-app'
46+ (github.event_name == 'issue_comment' &&
47+ github.event.issue.pull_request &&
48+ github.event.comment.body == '/delete-review-app') ||
49+ (github.event_name == 'pull_request' &&
50+ github.event.action == 'closed')
4351 runs-on : ubuntu-latest
4452
4553 steps :
5563 done
5664
5765 if [ ${#missing_secrets[@]} -ne 0 ]; then
58- echo " Required secrets are not set: ${missing_secrets[*]}"
66+ echo "Required secrets are not set: ${missing_secrets[*]}"
5967 exit 1
6068 fi
6169
@@ -67,11 +75,17 @@ jobs:
6775 uses : actions/github-script@v7
6876 with :
6977 script : |
78+ let message = '🗑️ Starting app deletion';
79+ if ('${{ github.event_name }}' === 'pull_request') {
80+ const merged = '${{ github.event.pull_request.merged }}' === 'true';
81+ message += merged ? ' (PR merged)' : ' (PR closed)';
82+ }
83+
7084 const comment = await github.rest.issues.createComment({
7185 issue_number: process.env.PR_NUMBER,
7286 owner: context.repo.owner,
7387 repo: context.repo.repo,
74- body: ' Starting app deletion...'
88+ body: message
7589 });
7690 return { commentId: comment.data.id };
7791
@@ -93,13 +107,20 @@ jobs:
93107 const prNumber = process.env.PR_NUMBER;
94108 const cpConsoleUrl = `https://console.cpln.io/org/${process.env.CPLN_ORG}/workloads/${process.env.APP_NAME}`;
95109
96- const message = success
97- ? ' Review app for PR #' + prNumber + ' was successfully deleted'
98- : [
99- ' Review app for PR #' + prNumber + ' failed to be deleted',
100- '',
101- '[Control Plane Console for Review App with PR #' + prNumber + '](' + cpConsoleUrl + ')'
102- ].join('\n');
110+ let message;
111+ if (success) {
112+ message = '✅ Review app for PR #' + prNumber + ' was successfully deleted';
113+ if ('${{ github.event_name }}' === 'pull_request') {
114+ const merged = '${{ github.event.pull_request.merged }}' === 'true';
115+ message += merged ? ' after merge' : ' after PR was closed';
116+ }
117+ } else {
118+ message = [
119+ '❌ Review app for PR #' + prNumber + ' failed to be deleted',
120+ '',
121+ '🎮 [Control Plane Console for Review App with PR #' + prNumber + '](' + cpConsoleUrl + ')'
122+ ].join('\n');
123+ }
103124
104125 await github.rest.issues.updateComment({
105126 owner: context.repo.owner,
0 commit comments