Skip to content

Commit 6def26b

Browse files
committed
Fix failling package version check
1 parent 5ef5952 commit 6def26b

1 file changed

Lines changed: 21 additions & 21 deletions

File tree

.github/workflows/check-package-versions.yml

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -229,40 +229,38 @@ jobs:
229229
run: |
230230
PACKAGES='${{ toJson(matrix.group.packages) }}'
231231
232-
# Get package names for branch name
233-
PKG_NAMES=$(echo "$PACKAGES" | jq -r '.[].package' | sort | tr '\n' '-' | sed 's/-$//')
232+
# Get package info for branch name
234233
PKG_COUNT=$(echo "$PACKAGES" | jq 'length')
235234
236-
# Create summary for PR title
235+
# Create summary for PR title and branch name
237236
if [[ "$PKG_COUNT" -eq 1 ]]; then
238-
TITLE=$(echo "$PACKAGES" | jq -r '.[0] | "pkg(\(.package)): update to \(.new_version)"')
237+
PKG_NAME=$(echo "$PACKAGES" | jq -r '.[0].package')
238+
NEW_VERSION=$(echo "$PACKAGES" | jq -r '.[0].new_version')
239+
TITLE="pkg(${PKG_NAME}): update to ${NEW_VERSION}"
240+
BRANCH="pkg-update/${PKG_NAME}-v${NEW_VERSION}"
239241
else
242+
# For multiple packages, use first package name and combine versions
240243
FIRST_PKG=$(echo "$PACKAGES" | jq -r '.[0].package')
244+
VERSIONS=$(echo "$PACKAGES" | jq -r '.[].new_version' | sort | tr '\n' '-' | sed 's/-$//')
241245
TITLE="pkg: update $FIRST_PKG and $((PKG_COUNT - 1)) related packages"
246+
BRANCH="pkg-update/${FIRST_PKG}-group-v${VERSIONS}"
242247
fi
243248
244-
# Create unique branch name using first package and date
245-
BRANCH="pkg-update/${PKG_NAMES}-$(date +%Y%m%d)"
246-
247249
echo "title=$TITLE" >> $GITHUB_OUTPUT
248250
echo "branch=$BRANCH" >> $GITHUB_OUTPUT
249251
echo "pkg_count=$PKG_COUNT" >> $GITHUB_OUTPUT
250252
251-
- name: Check for existing PR
253+
- name: Check for existing branch
252254
id: existing-pr
253-
env:
254-
GH_TOKEN: ${{ github.token }}
255255
run: |
256-
TITLE="${{ steps.info.outputs.title }}"
256+
BRANCH="${{ steps.info.outputs.branch }}"
257257
258-
# Check for open PR with the same title
259-
EXISTING=$(gh pr list --state open --search "in:title $TITLE" --json number,title \
260-
--jq ".[] | select(.title == \"$TITLE\") | .number" 2>/dev/null | head -1) || EXISTING=""
261-
262-
if [[ -n "$EXISTING" ]]; then
263-
echo "PR #$EXISTING already exists with title: $TITLE"
258+
# Check if branch already exists (locally or remotely)
259+
if git ls-remote --heads origin "$BRANCH" | grep -q .; then
260+
echo "Branch '$BRANCH' already exists - skipping PR creation"
264261
echo "exists=true" >> $GITHUB_OUTPUT
265262
else
263+
echo "Branch '$BRANCH' does not exist - will create PR"
266264
echo "exists=false" >> $GITHUB_OUTPUT
267265
fi
268266
@@ -272,7 +270,8 @@ jobs:
272270
PACKAGES='${{ toJson(matrix.group.packages) }}'
273271
DATE=$(date "+%a %b %d %Y")
274272
275-
echo "$PACKAGES" | jq -c '.[]' | while read -r pkg_data; do
273+
# Use process substitution to avoid subshell issues
274+
while read -r pkg_data; do
276275
PKG=$(echo "$pkg_data" | jq -r '.package')
277276
OLD_VERSION=$(echo "$pkg_data" | jq -r '.old_version')
278277
NEW_VERSION=$(echo "$pkg_data" | jq -r '.new_version')
@@ -290,7 +289,7 @@ jobs:
290289
# Add changelog entry
291290
CHANGELOG_ENTRY="* $DATE Hypercube <hypercube@binarypie.dev> - $NEW_VERSION-1\n- Update to $NEW_VERSION"
292291
sed -i "/%changelog/a\\$CHANGELOG_ENTRY" "$SPEC_FILE"
293-
done
292+
done < <(echo "$PACKAGES" | jq -c '.[]')
294293
295294
- name: Generate PR body
296295
if: steps.existing-pr.outputs.exists != 'true'
@@ -303,7 +302,8 @@ jobs:
303302
echo "## Package Updates"
304303
echo ""
305304
306-
echo "$PACKAGES" | jq -c '.[]' | while read -r pkg_data; do
305+
# Use process substitution to avoid subshell issues with while loop
306+
while read -r pkg_data; do
307307
PKG=$(echo "$pkg_data" | jq -r '.package')
308308
REPO=$(echo "$pkg_data" | jq -r '.repo')
309309
OLD=$(echo "$pkg_data" | jq -r '.old_version')
@@ -313,7 +313,7 @@ jobs:
313313
echo "- **Version:** \`$OLD\` -> \`$NEW\`"
314314
echo "- **Release:** https://github.com/$REPO/releases/tag/v$NEW"
315315
echo ""
316-
done
316+
done < <(echo "$PACKAGES" | jq -c '.[]')
317317
318318
echo "---"
319319
echo "*This PR was automatically created by the package version checker.*"

0 commit comments

Comments
 (0)