11name : Preview application
22
33on :
4- workflow_run :
5- workflows :
6- - Repository and artifact checks
7- types :
8- - completed
94 pull_request_target :
105 types :
6+ - opened
7+ - reopened
8+ - synchronize
119 - closed
1210
1311permissions :
@@ -16,20 +14,14 @@ permissions:
1614 pull-requests : read
1715
1816concurrency :
19- group : >-
20- preview-application-pr-${{
21- github.event.workflow_run.pull_requests[0].number ||
22- github.event.pull_request.number
23- }}
24- cancel-in-progress : false
17+ group : preview-application-pr-${{ github.event.pull_request.number }}
18+ cancel-in-progress : true
2519
2620jobs :
2721 deploy :
2822 if : >-
29- github.event_name == 'workflow_run' &&
30- github.event.workflow_run.conclusion == 'success' &&
31- github.event.workflow_run.event == 'pull_request' &&
32- github.event.workflow_run.pull_requests[0].head.repo.full_name == github.repository
23+ github.event.action != 'closed' &&
24+ github.event.pull_request.head.repo.full_name == github.repository
3325 runs-on : ubuntu-latest
3426 environment : preview
3527 steps :
@@ -40,23 +32,23 @@ jobs:
4032 path : .delivery
4133 persist-credentials : false
4234
35+ - name : Verify exact pull request head
36+ uses : ./.delivery/.github/actions/preview-verify
37+ with :
38+ github_token : ${{ github.token }}
39+ head_sha : ${{ github.event.pull_request.head.sha }}
40+ pr_number : ${{ github.event.pull_request.number }}
41+
4342 - name : Checkout isolated pull request source
4443 uses : actions/checkout@v5
4544 with :
46- ref : ${{ github.event.workflow_run.head_sha }}
45+ ref : ${{ github.event.pull_request.head.sha }}
4746 path : source
4847 persist-credentials : false
4948
50- - name : Verify exact pull request head
51- uses : ./.delivery/.github/actions/preview-verify
52- with :
53- github_token : ${{ github.token }}
54- head_sha : ${{ github.event.workflow_run.head_sha }}
55- pr_number : ${{ github.event.workflow_run.pull_requests[0].number }}
56-
5749 - name : Build web and release images without deployment secrets
5850 env :
59- HEAD_SHA : ${{ github.event.workflow_run.head_sha }}
51+ HEAD_SHA : ${{ github.event.pull_request.head.sha }}
6052 run : |
6153 docker build \
6254 --target heroku-web \
@@ -67,21 +59,27 @@ jobs:
6759 --tag "inkcre-preview-release:$HEAD_SHA" \
6860 "${{ github.workspace }}/source"
6961
62+ - name : Reverify preview authority before delivery
63+ uses : ./.delivery/.github/actions/preview-verify
64+ with :
65+ github_token : ${{ github.token }}
66+ head_sha : ${{ github.event.pull_request.head.sha }}
67+ pr_number : ${{ github.event.pull_request.number }}
68+
7069 - name : Deliver preview
7170 uses : ./.delivery/.github/actions/preview-delivery
7271 with :
73- head_sha : ${{ github.event.workflow_run.head_sha }}
72+ head_sha : ${{ github.event.pull_request.head.sha }}
7473 heroku_api_key : ${{ secrets.HEROKU_API_KEY }}
7574 llm_sp_ak : ${{ secrets.LLM_SP_AK }}
7675 llm_sp_base_url : ${{ secrets.LLM_SP_BASE_URL }}
7776 neon_api_key : ${{ secrets.NEON_API_KEY }}
7877 neon_project_id : ${{ vars.NEON_PROJECT_ID }}
79- pr_number : ${{ github.event.workflow_run.pull_requests[0] .number }}
78+ pr_number : ${{ github.event.pull_request .number }}
8079
8180 cleanup :
8281 name : Delete Heroku preview
8382 if : >-
84- github.event_name == 'pull_request_target' &&
8583 github.event.action == 'closed' &&
8684 github.event.pull_request.head.repo.full_name == github.repository
8785 runs-on : ubuntu-latest
0 commit comments