name: 'Scan Patch Rejects' description: 'Collects .rej files into patch-rejects directory and outputs count' outputs: rej_count: value: ${{ steps.scan.outputs.rej_count }} runs: using: composite steps: - id: scan shell: bash run: | set -euo pipefail CONFIG_DIR="${{ github.workspace }}/kernel" REJECTS_DIR="${{ github.workspace }}/patch-rejects" mkdir -p "$REJECTS_DIR" mapfile -t REJS < <(find "$CONFIG_DIR" -type f -name '*.rej') FILTERED_REJS=() for REJ in "${REJS[@]}"; do REL="${REJ#"$CONFIG_DIR"/}" if [ "$(basename "$REL")" = "i2c-nomadik.c.rej" ]; then echo "Skipping $REL because it matches the ignored reject file" continue fi FILTERED_REJS+=("$REJ") done REJ_COUNT=${#FILTERED_REJS[@]} echo "REJ_COUNT=$REJ_COUNT" >> "$GITHUB_ENV" echo "rej_count=$REJ_COUNT" >> "$GITHUB_OUTPUT" if [ "$REJ_COUNT" -gt 0 ]; then for REJ in "${FILTERED_REJS[@]}"; do REL="${REJ#"$CONFIG_DIR"/}" DEST="$REJECTS_DIR/$REL" mkdir -p "$(dirname "$DEST")" cp "$REJ" "$DEST" ORIG="${REJ%.rej}" if [ -f "$ORIG" ]; then ORIG_DEST="$REJECTS_DIR/${REL%.rej}" mkdir -p "$(dirname "$ORIG_DEST")" cp "$ORIG" "$ORIG_DEST" fi echo "$REL" >> "$REJECTS_DIR/index.txt" done fi