@@ -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