55 branches :
66 - main
77 - ' [0-9]+.[0-9]+'
8+ push :
9+ branches :
10+ - main
11+ - ' [0-9]+.[0-9]+'
12+
13+ permissions :
14+ pull-requests : write # To create/update PR comments
815
916jobs :
10- validate-pr :
17+ validate-apis :
1118 name : build
1219 runs-on : ubuntu-latest
1320
1421 steps :
1522 - name : Check pull request was opened from branch
16- if : github.event.pull_request.head.repo.full_name != 'elastic/elasticsearch-specification'
23+ if : github.event_name == 'pull_request' && github. event.pull_request.head.repo.full_name != 'elastic/elasticsearch-specification'
1724 run : echo "Validation is not supported from forks"; exit 1
1825
1926 - uses : actions/checkout@v4
2027 with :
2128 path : ./elasticsearch-specification
29+ persist-credentials : false
2230
2331 - uses : actions/checkout@v4
2432 with :
2533 repository : elastic/clients-flight-recorder
2634 path : ./clients-flight-recorder
2735 token : ${{ secrets.PAT }}
2836 ref : ${{ github.base_ref }}
37+ persist-credentials : false
2938
3039 - name : Use Node.js 22
3140 uses : actions/setup-node@v4
3241 with :
3342 node-version : 22
3443
44+ - name : Cache JSON report
45+ id : cache-json-report
46+ uses : actions/cache@v4
47+ with :
48+ path : ./clients-flight-recorder/recordings/types-validation/types-validation.json
49+ key : types-validation-json-${{ github.event_name == 'pull_request' && format('{0}-{1}', github.base_ref, github.event.pull_request.base.sha) || format('{0}-{1}', github.ref_name, github.sha) }}
50+ restore-keys : |
51+ types-validation-json-${{ github.event_name == 'pull_request' && github.base_ref || github.ref_name }}-
52+
3553 - name : Install deps 1/2
3654 working-directory : ./clients-flight-recorder
3755 run : |
@@ -53,20 +71,30 @@ jobs:
5371 - name : Download artifacts
5472 working-directory : ./clients-flight-recorder
5573 run : |
56- if [[ -n "${GITHUB_BASE_REF+x }" ]]; then
74+ if [[ -n "${GITHUB_BASE_REF:- }" ]]; then
5775 branch=$GITHUB_BASE_REF
5876 else
5977 branch=$GITHUB_REF_NAME
6078 fi
79+ echo "Using branch: $branch"
6180 node scripts/upload-recording/download.js --branch $branch --git
6281 node scripts/clone-elasticsearch/index.js --branch $branch
6382
64- - name : Run validation
83+ - name : Run validation (Push)
84+ if : github.event_name == 'push'
85+ working-directory : ./clients-flight-recorder/scripts/types-validator
86+ env :
87+ BRANCH : ${{ github.ref_name }}
88+ run : node index.js --generate-report --ci --branch $BRANCH
89+
90+ - name : Run validation (PR)
91+ if : github.event_name == 'pull_request'
6592 id : validation
6693 working-directory : ./elasticsearch-specification
6794 run : node .github/validate-pr --token ${{ secrets.GITHUB_TOKEN }}
6895
6996 - name : Find existing comment
97+ if : github.event_name == 'pull_request'
7098 uses : peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e # v3.1.0
7199 id : find-comment
72100 with :
75103 body-includes : ' Following you can find the validation changes'
76104
77105 - name : Create or update comment
106+ if : github.event_name == 'pull_request'
78107 uses : peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
79108 with :
80109 token : ${{ secrets.GITHUB_TOKEN }}
0 commit comments