Skip to content

Commit 63fa0e8

Browse files
committed
delete-on-pr-close
1 parent 5a01718 commit 63fa0e8

File tree

1 file changed

+35
-14
lines changed

1 file changed

+35
-14
lines changed

.github/workflows/delete-review-app.yml

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: Delete Review App
22

33
on:
4+
pull_request:
5+
types: [closed]
46
issue_comment:
57
types: [created]
68

@@ -13,8 +15,8 @@ permissions:
1315
env:
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

1921
jobs:
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:
@@ -55,7 +63,7 @@ jobs:
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

Comments
 (0)