diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3a0a0c..e7e47dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,23 +13,53 @@ on: - synchronize - reopened - unlocked - - ready_for_review jobs: test-parsing: - if: github.event.pull_request.draft != true concurrency: - group: ci-${{ github.event.pull_request.number || github.ref }} + group: ci-${{ github.event.pull_request.number }} cancel-in-progress: true runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 - - name: Install the tools - run: npm install + - name: Setup tools + run: | + set -x + node -v + npm -v + gcc -v + npm ci + ./node_modules/.bin/tree-sitter --version - - name: Run the parsing tests + - name: Generate the parser + run: npm run generate + + - name: Check if auto-generated files are committed run: | - npm run generate - npm run test-parsing + git add . + if output="$(git status --porcelain=v2)"; then + files_changed_msg="$output" + + diff="$(git diff --cached --color=never)" + echo "${diff::1000}" + if [ ${#diff} -gt 1000 ]; then + echo "-- TRUNCATED --"$'\n' + fi + else + fail_code=$? + fi + + if [ "${fail_code:-}" ]; then + exit $fail_code + elif [ "${files_changed_msg:-}" ]; then + >&2 echo \ + "Detected changes after generating parser files:" \ + $'\n'"$files_changed_msg"$'\n' \ + $'\n'"Please commit those changes locally and push" + exit 1 + fi + + - name: Run the parsing tests + run: npm run test-parsing diff --git a/package-lock.json b/package-lock.json index e0be090..15d9017 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "nan": "^2.12.1" }, "devDependencies": { - "tree-sitter-cli": "^0.20.1" + "tree-sitter-cli": "0.20.7" } }, "node_modules/nan": { diff --git a/package.json b/package.json index 3d17917..acc20b6 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "nan": "^2.12.1" }, "devDependencies": { - "tree-sitter-cli": "^0.20.1" + "tree-sitter-cli": "0.20.7" }, "scripts": { "test": "tree-sitter test",