action.yml 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. name: 'Scan Patch Rejects'
  2. description: 'Collects .rej files into patch-rejects directory and outputs count'
  3. outputs:
  4. rej_count:
  5. value: ${{ steps.scan.outputs.rej_count }}
  6. runs:
  7. using: composite
  8. steps:
  9. - id: scan
  10. shell: bash
  11. run: |
  12. set -euo pipefail
  13. CONFIG_DIR="$GITHUB_WORKSPACE/kernel"
  14. REJECTS_DIR="$GITHUB_WORKSPACE/patch-rejects"
  15. mkdir -p "$REJECTS_DIR"
  16. mapfile -t REJS < <(find "$CONFIG_DIR" -type f -name '*.rej')
  17. REJ_COUNT=${#REJS[@]}
  18. echo "REJ_COUNT=$REJ_COUNT" >> "$GITHUB_ENV"
  19. echo "rej_count=$REJ_COUNT" >> "$GITHUB_OUTPUT"
  20. if [ "$REJ_COUNT" -gt 0 ]; then
  21. for REJ in "${REJS[@]}"; do
  22. REL="${REJ#"$CONFIG_DIR"/}"
  23. DEST="$REJECTS_DIR/$REL"
  24. mkdir -p "$(dirname "$DEST")"
  25. cp "$REJ" "$DEST"
  26. ORIG="${REJ%.rej}"
  27. if [ -f "$ORIG" ]; then
  28. ORIG_DEST="$REJECTS_DIR/${REL%.rej}"
  29. mkdir -p "$(dirname "$ORIG_DEST")"
  30. cp "$ORIG" "$ORIG_DEST"
  31. fi
  32. echo "$REL" >> "$REJECTS_DIR/index.txt"
  33. done
  34. fi