5
5
schedule :
6
6
# Runs every day at 12:00 AM UTC
7
7
- cron : ' 0 0 * * *'
8
+ push :
9
+ branches : ["*"] # Trigger on any branch
10
+
11
+ env :
12
+ BRANCH_NAME : master # Default branch for cron triggers
8
13
9
14
jobs :
10
15
nightly-screenshot-tests :
@@ -14,11 +19,36 @@ jobs:
14
19
- name : Checkout code
15
20
uses : actions/checkout@v3
16
21
22
+ - name : Determine Trigger Source
23
+ id : trigger-source
24
+ run : |
25
+ if [[ "${{ github.event_name }}" == "push" ]]; then
26
+ LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
27
+ echo "Last commit message: $LAST_COMMIT_MESSAGE"
28
+ if [[ "$LAST_COMMIT_MESSAGE" == *"trigger screenshot tests"* ]]; then
29
+ echo "TRIGGER_SNAPSHOT_TESTS=true" >> $GITHUB_ENV
30
+ echo "BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV
31
+ else
32
+ echo "TRIGGER_SNAPSHOT_TESTS=false" >> $GITHUB_ENV
33
+ fi
34
+ else
35
+ echo "TRIGGER_SNAPSHOT_TESTS=true" >> $GITHUB_ENV
36
+ fi
37
+
38
+ - name : Skip if Not a Trigger
39
+ if : env.TRIGGER_SNAPSHOT_TESTS == 'false'
40
+ run : echo "Skipping workflow as the commit message did not contain 'trigger screenshot tests'."
41
+
42
+ - name : Set sanitized branch name
43
+ id : sanitize-branch
44
+ run : |
45
+ echo "SANITIZED_BRANCH_NAME=$(echo $BRANCH_NAME | tr -dc '[:alpha:]' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
46
+
17
47
- name : Remove dev-deployment
18
48
run : |
19
49
curl -X POST \
20
50
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
21
- https://kubernetix.scm.io/hooks/remove/webknossos/dev/master ?user=CI+%28nightly%29
51
+ https://kubernetix.scm.io/hooks/remove/webknossos/dev/${{ env.SANITIZED_BRANCH_NAME }} ?user=CI+%28nightly%29
22
52
23
53
- name : Wait 3 minutes
24
54
run : sleep 180
@@ -27,32 +57,32 @@ jobs:
27
57
run : |
28
58
curl -X POST \
29
59
-H "X-Auth-Token: ${{ secrets.RELEASE_API_TOKEN }}" \
30
- https://kubernetix.scm.io/hooks/install/webknossos/dev/master ?user=CI+%28nightly%29
60
+ https://kubernetix.scm.io/hooks/install/webknossos/dev/${{ env.SANITIZED_BRANCH_NAME }} ?user=CI+%28nightly%29
31
61
32
62
- uses : actions/setup-node@v4
33
63
with :
34
- node-version : 18
64
+ node-version : 18
35
65
36
66
- name : Install dependencies and wait
37
67
run : |
38
- corepack enable && yarn install --immutable &
39
- sleep 180 &
40
- wait
68
+ corepack enable && yarn install --immutable &
69
+ sleep 180 &
70
+ wait
41
71
42
72
- name : Refresh datasets
43
73
run : |
44
- curl -X POST --fail https://master .webknossos.xyz/data/triggers/checkInboxBlocking?token=${{ secrets.WK_AUTH_TOKEN }}
74
+ curl -X POST --fail https://${{ env.SANITIZED_BRANCH_NAME }} .webknossos.xyz/data/triggers/checkInboxBlocking?token=${{ secrets.WK_AUTH_TOKEN }}
45
75
46
76
- name : Run screenshot tests
47
77
run : |
48
- URL=https://master .webknossos.xyz/ \
78
+ URL=https://${{ env.SANITIZED_BRANCH_NAME }} .webknossos.xyz/ \
49
79
timeout 3000 \
50
80
yarn test-screenshot
51
81
env :
52
- URL : https://master .webknossos.xyz/
82
+ URL : https://${{ env.SANITIZED_BRANCH_NAME }} .webknossos.xyz/
53
83
WK_AUTH_TOKEN : ${{ secrets.WK_AUTH_TOKEN }}
54
84
BROWSERSTACK_USERNAME : ${{ secrets.BROWSERSTACK_USERNAME }}
55
- BROWSERSTACK_ACCESS_KEY : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
85
+ BROWSERSTACK_ACCESS_KEY : ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
56
86
57
87
- name : Upload screenshots as artifact
58
88
uses : actions/upload-artifact@v4
0 commit comments