1
1
name : Delete Review App
2
2
3
3
on :
4
+ pull_request :
5
+ types : [closed]
4
6
issue_comment :
5
7
types : [created]
6
8
@@ -13,8 +15,8 @@ permissions:
13
15
env :
14
16
CPLN_ORG : ${{ secrets.CPLN_ORG }}
15
17
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 }}
18
20
19
21
jobs :
20
22
debug-trigger :
@@ -26,20 +28,26 @@ jobs:
26
28
EVENT_NAME : ${{ github.event_name }}
27
29
IS_PR : ${{ toJSON(github.event.issue.pull_request) }}
28
30
COMMENT : ${{ github.event.comment.body }}
31
+ PR_ACTION : ${{ github.event.action }}
32
+ PR_MERGED : ${{ github.event.pull_request.merged }}
29
33
run : |
30
34
echo "Debug information for delete-review-app command:"
31
35
echo "Event name: $EVENT_NAME"
32
36
echo "Is PR (raw): $IS_PR"
33
37
echo "Comment body: $COMMENT"
38
+ echo "PR action: $PR_ACTION"
39
+ echo "PR merged: $PR_MERGED"
34
40
echo "Raw event payload:"
35
41
echo '${{ toJSON(github.event) }}'
36
42
37
43
Process-Delete-Command :
38
44
needs : debug-trigger
39
45
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')
43
51
runs-on : ubuntu-latest
44
52
45
53
steps :
55
63
done
56
64
57
65
if [ ${#missing_secrets[@]} -ne 0 ]; then
58
- echo " Required secrets are not set: ${missing_secrets[*]}"
66
+ echo "Required secrets are not set: ${missing_secrets[*]}"
59
67
exit 1
60
68
fi
61
69
@@ -67,11 +75,17 @@ jobs:
67
75
uses : actions/github-script@v7
68
76
with :
69
77
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
+
70
84
const comment = await github.rest.issues.createComment({
71
85
issue_number: process.env.PR_NUMBER,
72
86
owner: context.repo.owner,
73
87
repo: context.repo.repo,
74
- body: ' Starting app deletion...'
88
+ body: message
75
89
});
76
90
return { commentId: comment.data.id };
77
91
@@ -93,13 +107,20 @@ jobs:
93
107
const prNumber = process.env.PR_NUMBER;
94
108
const cpConsoleUrl = `https://console.cpln.io/org/${process.env.CPLN_ORG}/workloads/${process.env.APP_NAME}`;
95
109
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
+ }
103
124
104
125
await github.rest.issues.updateComment({
105
126
owner: context.repo.owner,
0 commit comments