assign-asset-label.yml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Copyright Broadcom, Inc. All Rights Reserved.
  2. # SPDX-License-Identifier: APACHE-2.0
  3. name: '[Support] Assign asset label'
  4. on:
  5. pull_request_target:
  6. types:
  7. - opened
  8. # Remove all permissions by default
  9. permissions: {}
  10. jobs:
  11. assign-label:
  12. name: Assign label
  13. runs-on: ubuntu-latest
  14. permissions:
  15. pull-requests: write
  16. steps:
  17. - id: get-asset
  18. name: Get modified assets
  19. env:
  20. DIFF_URL: "${{github.event.pull_request.diff_url}}"
  21. TEMP_FILE: "${{runner.temp}}/pr-${{github.event.number}}.diff"
  22. run: |
  23. # This request doesn't consume API calls.
  24. curl -Lkso $TEMP_FILE $DIFF_URL
  25. files_changed="$(sed -nr 's/[\-\+]{3} [ab]\/(.*)/\1/p' $TEMP_FILE | sort | uniq)"
  26. # Adding || true to avoid "Process exited with code 1" errors
  27. assets=($(echo "$files_changed" | xargs dirname | sed -nr "s|bitnami/([^/]*).*|\1|p" | sort | uniq || true))
  28. if [[ "${#assets[@]}" -ne "1" ]]; then
  29. echo "result=skip" >> $GITHUB_OUTPUT
  30. echo "message=Label cannot be set, cannot infer a single label from: ${assets[@]}" >> $GITHUB_OUTPUT
  31. echo "name=NONE" >> $GITHUB_OUTPUT
  32. else
  33. echo "result=ok" >> $GITHUB_OUTPUT
  34. echo "message=Adding label '${assets}'" >> $GITHUB_OUTPUT
  35. echo "name=${assets}" >> $GITHUB_OUTPUT
  36. fi
  37. - name: Show messages
  38. uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
  39. with:
  40. script: |
  41. if ("${{ steps.get-asset.outputs.result }}" != "ok" ) {
  42. core.warning("${{ steps.get-asset.outputs.message }}")
  43. } else {
  44. core.info("${{ steps.get-asset.outputs.message }}")
  45. }
  46. - name: Labeling
  47. if: ${{ steps.get-asset.outputs.result == 'ok' }}
  48. uses: fmulero/labeler@d3ef0aadb212cd1656bd6d5ce1e772787bf1682b
  49. with:
  50. add-labels: "${{ steps.get-asset.outputs.name }}"