@@ -10,22 +10,60 @@ permissions:
10
10
11
11
jobs :
12
12
update-snapshots :
13
- if : ${{ github.event.issue.pull_request && contains(github.event.comment.body, 'please update playwright snapshots') }}
13
+ if : >
14
+ (
15
+ github.event.issue.author_association == 'OWNER' ||
16
+ github.event.issue.author_association == 'COLLABORATOR' ||
17
+ github.event.issue.author_association == 'MEMBER'
18
+ ) && github.event.issue.pull_request && contains(github.event.comment.body, 'please update snapshots')
14
19
runs-on : ubuntu-latest
15
20
16
21
steps :
22
+ - name : React to the triggering comment
23
+ run : |
24
+ gh api repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions --raw-field 'content=+1'
25
+ env :
26
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
27
+
17
28
- name : Checkout
18
- uses : actions/checkout@v3
29
+ uses : actions/checkout@v4
19
30
with :
20
31
token : ${{ secrets.GITHUB_TOKEN }}
21
32
22
- - name : Configure git to use https
23
- run : git config --global hub.protocol https
33
+ - name : Get PR Info
34
+ id : pr
35
+ env :
36
+ PR_NUMBER : ${{ github.event.issue.number }}
37
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
38
+ GH_REPO : ${{ github.repository }}
39
+ COMMENT_AT : ${{ github.event.comment.created_at }}
40
+ run : |
41
+ pr="$(gh api /repos/${GH_REPO}/pulls/${PR_NUMBER})"
42
+ head_sha="$(echo "$pr" | jq -r .head.sha)"
43
+ pushed_at="$(echo "$pr" | jq -r .pushed_at)"
44
+
45
+ if [[ $(date -d "$pushed_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then
46
+ echo "Updating is not allowed because the PR was pushed to (at $pushed_at) after the triggering comment was issued (at $COMMENT_AT)"
47
+ exit 1
48
+ fi
49
+
50
+ echo "head_sha=$head_sha" >> $GITHUB_OUTPUT
24
51
25
52
- name : Checkout the branch from the PR that triggered the job
26
- run : hub pr checkout ${{ github.event.issue.number }}
27
53
env :
28
54
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
55
+ run : gh pr checkout ${{ github.event.issue.number }}
56
+
57
+ - name : Validate the fetched branch HEAD revision
58
+ env :
59
+ EXPECTED_SHA : ${{ steps.pr.outputs.head_sha }}
60
+ run : |
61
+ actual_sha="$(git rev-parse HEAD)"
62
+
63
+ if [[ "$actual_sha" != "$EXPECTED_SHA" ]]; then
64
+ echo "The HEAD of the checked out branch ($actual_sha) differs from the HEAD commit available at the time when trigger comment was submitted ($EXPECTED_SHA)"
65
+ exit 1
66
+ fi
29
67
30
68
- name : Base Setup
31
69
uses : jupyterlab/maintainer-tools/.github/actions/base-setup@v1
45
83
# Playwright knows how to start JupyterLab server
46
84
start_server_script : ' null'
47
85
test_folder : ui-tests
86
+ npm_client : jlpm
0 commit comments