Skip to content

Commit e8a55fd

Browse files
committed
feat: improve release matching logic in workflow
1 parent 3ae237f commit e8a55fd

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

.github/workflows/check-and-upload-package.yaml

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,40 @@ jobs:
2727
env:
2828
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2929
run: |
30-
# Get all releases info
31-
all_releases=$(gh release list --json tagName,assets --limit 50)
32-
33-
# Find the latest release
34-
latest_release=$(echo "$all_releases" | jq -r '.[0].tagName')
35-
echo "latest-release=$latest_release" >> "$GITHUB_OUTPUT"
36-
37-
# Find the most recent release with a matching unitypackage
38-
closest_release=$(echo "$all_releases" | jq -r \
39-
'.[] | select(.assets[].name | test("PackageExporter_.*\\.unitypackage")) | .tagName' | head -n 1)
40-
41-
if [ -n "$closest_release" ]; then
30+
# Get the list of all release tags up to 50
31+
all_releases=$(gh release list --json tagName --limit 50)
32+
release_tags=$(echo "$all_releases" | jq -r '.[].tagName')
33+
34+
# Initialize variables
35+
latest_release=""
36+
closest_release=""
37+
38+
# Iterate over the releases
39+
for tag in $release_tags; do
40+
# Get detailed release info for each tag
41+
release_info=$(gh release view "$tag" --json tagName,assets)
42+
43+
# Check if this is the latest release
44+
if [ -z "$latest_release" ]; then
45+
latest_release="$tag"
46+
echo "latest-release=$latest_release" >> "$GITHUB_OUTPUT"
47+
fi
48+
49+
# Check for matching .unitypackage in the assets
50+
match=$(echo "$release_info" | jq -r '.assets[].name | select(test("PackageExporter_.*\\.unitypackage"))')
51+
if [ -n "$match" ] && [ -z "$closest_release" ]; then
52+
closest_release="$tag"
4253
echo "Closest release found: $closest_release"
54+
fi
55+
done
56+
57+
# Output the results
58+
if [ -n "$closest_release" ]; then
4359
echo "closest-release=$closest_release" >> "$GITHUB_OUTPUT"
4460
else
4561
echo "No matching unitypackage found."
4662
echo "closest-release=" >> "$GITHUB_OUTPUT"
63+
fi
4764
4865
- name: Check if PackageExporter exists in the latest release
4966
id: check-file

0 commit comments

Comments
 (0)