diff --git a/.github/workflows/pr_lint_review.yaml b/.github/workflows/pr_lint_review.yaml new file mode 100644 index 00000000..2d4546c7 --- /dev/null +++ b/.github/workflows/pr_lint_review.yaml @@ -0,0 +1,62 @@ +name: "🧐 [Lint] Checking IR files" + +on: + pull_request: + paths: '**.ir' + +jobs: + lint: + name: "🐛 Looking for issues" + runs-on: ubuntu-latest + steps: + # checkout IRDB + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # checkout Linter + - uses: actions/checkout@v3 + with: + repository: 'darmiel/fff-ir-lint' + path: fff-ir-lint + + # only check files changed in the PR + - name: Get Changed Files + id: changed-files + uses: tj-actions/changed-files@v29.0.7 + with: + files: "**/*.ir" + + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Run Linter if at least 1 IR File Changed + uses: mathiasvr/command-output@v1.1.0 + id: run + continue-on-error: true + with: + run: python fff-ir-lint/main.py github2 ${{ steps.changed-files.outputs.all_changed_files }} + + - uses: ntsd/auto-request-changes-action@v2 + name: "❌ Request Changes" + if: ${{ steps.run.outputs.stderr }} + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + comment-body: | + ${{ steps.run.outputs.stdout }} + + # optional: auto approve PRs with valid .ir files + - uses: hmarr/auto-approve-action@v2 + name: "✅ Approve Changes" + if: ${{ ! steps.run.outputs.stderr }} + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + review-message: | + > **Note**: This approval was *auto-generated* + + LGTM! 😊 + + - name: Fail Pipeline + if: ${{ steps.run.outputs.stderr }} + run: exit 1 \ No newline at end of file