diff --git a/.github/labeler.yml b/.github/labeler.yml index 749cf3e497..ed3168fecb 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,3 +1,9 @@ +# GitHub/CI +"GitHub/CI": +- changed-files: + - any-glob-to-any-file: + - ".github/**" + # branches "OpenWrt 23.05 (end of support)": - base-branch: @@ -5,3 +11,6 @@ "OpenWrt 24.10": - base-branch: - "openwrt-24.10" +"OpenWrt 25.12": +- base-branch: + - "openwrt-25.12" diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index dc6a480fd3..29fa3ac029 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -1,6 +1,6 @@ name: 'Pull Request Labeler' on: - - pull_request_target + pull_request_target: permissions: contents: read @@ -8,10 +8,6 @@ permissions: jobs: labeler: - permissions: - contents: read - pull-requests: write - name: Pull Request Labeler runs-on: ubuntu-slim steps: @@ -19,3 +15,59 @@ jobs: with: repo-token: '${{ secrets.GITHUB_TOKEN }}' sync-labels: true + + - name: Checkout PR code + uses: actions/checkout@v5 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Fetch base + run: git fetch origin ${{ github.event.pull_request.base.sha }} + + - name: Check for PKG_VERSION changes + id: check_version + # Check for new packages (any Makefile with status 'A' - Added) + # Check for dropped packages (any Makefile with status 'D' - Deleted) + run: | + if git diff --name-only --diff-filter=A "${{ github.event.pull_request.base.sha }}"...HEAD -- '**/Makefile' | grep -q .; then + echo "New package detected." + echo "new_package=true" >> $GITHUB_OUTPUT + fi + + if git diff --name-only --diff-filter=D "${{ github.event.pull_request.base.sha }}"...HEAD -- '**/Makefile' | grep -q .; then + echo "Dropped package detected." + echo "dropped_package=true" >> $GITHUB_OUTPUT + fi + + - name: Add 'Add package' label + if: steps.check_version.outputs.new_package == 'true' + uses: buildsville/add-remove-label@v2.0.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: "Add package" + type: add + + - name: Remove 'Add package' label + if: steps.check_version.outputs.new_package != 'true' + uses: buildsville/add-remove-label@v2.0.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: "Add package" + type: remove + + - name: Add 'Drop package' label + if: steps.check_version.outputs.dropped_package == 'true' + uses: buildsville/add-remove-label@v2.0.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: "Drop package" + type: add + + - name: Remove 'Drop package' label + if: steps.check_version.outputs.dropped_package != 'true' + uses: buildsville/add-remove-label@v2.0.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: "Drop package" + type: remove