Skip to content

Commit ad3bddd

Browse files
authored
Merge pull request #55957 from software-mansion-labs/feature/kuba-nowakowski/add-github-action-to-check-parser-files
[No QA] Add GitHub Action to verify parser updates when parser files change
2 parents 12254ea + 9a63ffa commit ad3bddd

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

.github/scripts/checkParser.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
ROOT_DIR=$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")
6+
cd "$ROOT_DIR" || exit 1
7+
8+
autocomplete_parser_backup="src/libs/SearchParser/autocompleteParser.js.bak"
9+
search_parser_backup="src/libs/SearchParser/searchParser.js.bak"
10+
11+
#Copying the current .js parser files
12+
cp src/libs/SearchParser/autocompleteParser.js "$autocomplete_parser_backup" 2>/dev/null
13+
cp src/libs/SearchParser/searchParser.js "$search_parser_backup" 2>/dev/null
14+
15+
#Running the scripts that generate the .js parser files
16+
npm run generate-search-parser
17+
npm run generate-autocomplete-parser
18+
19+
#Checking if the saved files differ from the newly generated
20+
if ! diff -q "$autocomplete_parser_backup" src/libs/SearchParser/autocompleteParser.js >/dev/null ||
21+
! diff -q "$search_parser_backup" src/libs/SearchParser/searchParser.js >/dev/null; then
22+
echo "The files generated from the .peggy files using the commands: generate-search-parser and generate-autocomplete-parser are not identical to those currently on this branch."
23+
echo "The parser .js files should never be edited manually. Make sure you’ve run locally: npm run generate-search-parser and npm run generate-autocomplete-parser, and committed the changes."
24+
exit 1
25+
else
26+
echo "The files generated from the .peggy files using the commands: generate-search-parser and generate-autocomplete-parser are identical to those currently on this branch."
27+
exit 0
28+
fi
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Check consistency of search parser files
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize]
6+
branches-ignore: [staging, production]
7+
paths:
8+
- "src/libs/SearchParser/**"
9+
10+
jobs:
11+
verify:
12+
if: github.actor != 'OSBotify' && github.actor != 'imgbot[bot]'
13+
runs-on: macos-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Node
19+
uses: ./.github/actions/composite/setupNode
20+
21+
- name: Verify parser files consistency
22+
run: ./.github/scripts/checkParser.sh

0 commit comments

Comments
 (0)