This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Check autorelease deprecation | |
on: | |
pull_request_target: | |
types: [opened, synchronize, converted_to_draft, ready_for_review, edited] | |
jobs: | |
build: | |
name: Check autorelease deprecation | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
permissions: | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Determine branch name | |
run: | | |
BRANCH="${GITHUB_BASE_REF#refs/heads/}" | |
echo "Building for $BRANCH" | |
echo "BRANCH=$BRANCH" >> $GITHUB_ENV | |
- name: Determine changed packages | |
run: | | |
RET=0 | |
# only detect packages with changes | |
PKG_ROOTS=$(find . -name Makefile | \ | |
grep -v ".*/src/Makefile" | \ | |
sed -e 's@./\(.*\)/Makefile@\1/@') | |
CHANGES=$(git diff --diff-filter=d --name-only origin/$BRANCH...) | |
for ROOT in $PKG_ROOTS; do | |
for CHANGE in $CHANGES; do | |
if [[ "$CHANGE" == "$ROOT"* ]]; then | |
if grep -q '$(AUTORELEASE)' "$ROOT/Makefile"; then | |
CONTAINS_AUTORELEASE+="$ROOT" | |
fi | |
break | |
fi | |
done | |
done | |
if [ -n "$CONTAINS_AUTORELEASE" ]; then | |
RET=1 | |
cat > "$GITHUB_WORKSPACE/pr_comment.md" << EOF | |
Please do no longer set *PKG_RELEASE* to *AUTORELEASE* as the | |
feature is deprecated. Please use an integer instead. Below is a | |
list of affected packages including correct *PKG_RELEASE*: | |
EOF | |
fi | |
for ROOT in $CONTAINS_AUTORELEASE; do | |
echo -n " - ${ROOT}Makefile: PKG_RELEASE:=" >> "$GITHUB_WORKSPACE/pr_comment.md" | |
last_bump="$(git log --pretty=format:'%h %s' "$ROOT" | | |
grep --max-count=1 -e ': [uU]pdate to ' -e ': [bB]ump to ' | | |
cut -f 1 -d ' ')" | |
if [ -n "$last_bump" ]; then | |
echo -n $(($(git rev-list --count "$last_bump..HEAD" "$ROOT") + 2)) >> "$GITHUB_WORKSPACE/pr_comment.md" | |
else | |
echo -n $(($(git rev-list --count HEAD "$ROOT") + 2)) >> "$GITHUB_WORKSPACE/pr_comment.md" | |
fi | |
echo >> "$GITHUB_WORKSPACE/pr_comment.md" | |
done | |
exit $RET | |
- name: Find Comment | |
uses: peter-evans/find-comment@v2 | |
if: ${{ failure() }} | |
id: fc | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: 'github-actions[bot]' | |
- name: Create or update comment | |
uses: peter-evans/create-or-update-comment@v2 | |
if: ${{ failure() }} | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body-file: 'pr_comment.md' | |
edit-mode: replace |