diff --git a/.github/workflows/check-generated-at-parser.yml b/.github/workflows/check-generated-at-parser.yml new file mode 100644 index 000000000000..2f1410e3f23f --- /dev/null +++ b/.github/workflows/check-generated-at-parser.yml @@ -0,0 +1,42 @@ +name: Check Generated AT Parser + +on: + pull_request: + paths: + - 'lib/at_parser/at_match.re' + +jobs: + compliance_job: + runs-on: ubuntu-latest + name: Check Generated AT Parser + steps: + - name: Update PATH for west + run: | + echo "$HOME/.local/bin" >> $GITHUB_PATH + + - name: Checkout sources + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} + path: ncs/nrf + fetch-depth: 0 + persist-credentials: false + + - name: Install dependencies + run: | + sudo apt-get install re2c=3.0-1 + + - name: Generate lexer + working-directory: ncs/nrf/lib/at_parser + run: | + re2c at_match.re -o at_match.c -W --tags --no-debug-info --no-generation-date --no-version + + - name: Compare lexers + working-directory: ncs/nrf/lib/at_parser + run: | + if diff -q at_match.c generated/at_match.c > /dev/null; then + echo "Lexer is up to date." + else + echo "Lexer is not up to date. Please re-generate the lexer and update the PR." + exit 1 + fi