Skip to content

Commit d665440

Browse files
authored
Merge pull request #149 from IShix-g/release
Release
2 parents ef8f457 + e8a55fd commit d665440

File tree

1 file changed

+30
-12
lines changed

1 file changed

+30
-12
lines changed

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

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ on:
1313
jobs:
1414
check-package:
1515
runs-on: ubuntu-22.04
16+
if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged }}
1617
outputs:
1718
file-present: ${{ steps.check-file.outputs.file-present }}
1819
closest-release: ${{ steps.find-release.outputs.closest-release }}
@@ -26,23 +27,40 @@ jobs:
2627
env:
2728
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2829
run: |
29-
# Get all releases info
30-
all_releases=$(gh release list --json tagName,assets --limit 50)
31-
32-
# Find the latest release
33-
latest_release=$(echo "$all_releases" | jq -r '.[0].tagName')
34-
echo "latest-release=$latest_release" >> "$GITHUB_OUTPUT"
35-
36-
# Find the most recent release with a matching unitypackage
37-
closest_release=$(echo "$all_releases" | jq -r \
38-
'.[] | select(.assets[].name | test("PackageExporter_.*\\.unitypackage")) | .tagName' | head -n 1)
39-
40-
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"
4153
echo "Closest release found: $closest_release"
54+
fi
55+
done
56+
57+
# Output the results
58+
if [ -n "$closest_release" ]; then
4259
echo "closest-release=$closest_release" >> "$GITHUB_OUTPUT"
4360
else
4461
echo "No matching unitypackage found."
4562
echo "closest-release=" >> "$GITHUB_OUTPUT"
63+
fi
4664
4765
- name: Check if PackageExporter exists in the latest release
4866
id: check-file

0 commit comments

Comments
 (0)