@@ -3,6 +3,9 @@ name: Release
33on :
44 release :
55 types : [created]
6+ push :
7+ tags :
8+ - ' v*'
69
710jobs :
811 discover-architectures :
5962 id : get_version
6063 run : |
6164 # Extract version from tag (e.g., v1.2 -> 1.2)
62- VERSION="${{ github.event.release.tag_name }}"
65+ VERSION="${{ github.event.release.tag_name || github.ref_name }}"
6366 VERSION="${VERSION#v}" # Remove 'v' prefix if present
6467 echo "version=$VERSION" >> $GITHUB_OUTPUT
6568 echo "Extracted version: $VERSION"
@@ -112,7 +115,7 @@ jobs:
112115 - name : Create release archive
113116 run : |
114117 cd release_package
115- zip -r ../dmdevfs-${{ github.event.release.tag_name }}-$ARCH_DIR_NAME.zip .
118+ zip -r ../dmdevfs-${{ github.event.release.tag_name || github.ref_name }}-$ARCH_DIR_NAME.zip .
116119 cd ..
117120 echo "Created archive:"
118121 ls -lh dmdevfs-*.zip
@@ -121,7 +124,7 @@ jobs:
121124 uses : actions/upload-artifact@v4
122125 with :
123126 name : ${{ env.ARTIFACT_NAME }}
124- path : dmdevfs-${{ github.event.release.tag_name }}-*.zip
127+ path : dmdevfs-${{ github.event.release.tag_name || github.ref_name }}-*.zip
125128 retention-days : 1
126129
127130 generate-versions-manifest :
@@ -152,7 +155,7 @@ jobs:
152155
153156 if [ -z "$VERSIONS" ]; then
154157 echo "Warning: No version tags found"
155- VERSIONS="${{ github.event.release.tag_name }}"
158+ VERSIONS="${{ github.event.release.tag_name || github.ref_name }}"
156159 VERSIONS="${VERSIONS#v}"
157160 fi
158161
@@ -189,6 +192,22 @@ jobs:
189192 echo "Downloaded artifacts:"
190193 ls -lR artifacts/
191194
195+ - name : Create GitHub Release if triggered by tag push
196+ shell : bash
197+ env :
198+ GH_TOKEN : ${{ github.token }}
199+ run : |
200+ TAG="${{ github.event.release.tag_name || github.ref_name }}"
201+ if ! gh release view "$TAG" --repo ${{ github.repository }} >/dev/null 2>&1; then
202+ echo "No release found for tag $TAG, creating one..."
203+ gh release create "$TAG" \
204+ --repo ${{ github.repository }} \
205+ --title "Release $TAG" \
206+ --notes "Release $TAG"
207+ else
208+ echo "Release for tag $TAG already exists, skipping creation."
209+ fi
210+
192211 - name : Upload release assets to versioned tag
193212 shell : bash
194213 env :
@@ -205,23 +224,23 @@ jobs:
205224 fi
206225
207226 for zip_file in "${zip_files[@]}"; do
208- echo "Uploading $zip_file to ${{ github.event.release.tag_name }}..."
209- gh release upload ${{ github.event.release.tag_name }} \
227+ echo "Uploading $zip_file to ${{ github.event.release.tag_name || github.ref_name }}..."
228+ gh release upload ${{ github.event.release.tag_name || github.ref_name }} \
210229 "$zip_file" \
211230 --repo ${{ github.repository }} \
212231 --clobber
213232 done
214233
215234 # Upload versions.dmm to the versioned release
216235 if [ -f artifacts/versions-manifest/versions.dmm ]; then
217- echo "Uploading versions.dmm to ${{ github.event.release.tag_name }}..."
218- gh release upload ${{ github.event.release.tag_name }} \
236+ echo "Uploading versions.dmm to ${{ github.event.release.tag_name || github.ref_name }}..."
237+ gh release upload ${{ github.event.release.tag_name || github.ref_name }} \
219238 artifacts/versions-manifest/versions.dmm \
220239 --repo ${{ github.repository }} \
221240 --clobber
222241 fi
223242
224- echo "Successfully uploaded ${#zip_files[@]} artifact(s) to ${{ github.event.release.tag_name }}"
243+ echo "Successfully uploaded ${#zip_files[@]} artifact(s) to ${{ github.event.release.tag_name || github.ref_name }}"
225244
226245 - name : Create or update latest release
227246 shell : bash
@@ -240,8 +259,8 @@ jobs:
240259 echo "Creating vlatest release..."
241260 gh release create vlatest \
242261 --repo ${{ github.repository }} \
243- --title "Latest Release (based on ${{ github.event.release.tag_name }})" \
244- --notes "This release always points to the latest stable version. Currently based on ${{ github.event.release.tag_name }}."
262+ --title "Latest Release (based on ${{ github.event.release.tag_name || github.ref_name }})" \
263+ --notes "This release always points to the latest stable version. Currently based on ${{ github.event.release.tag_name || github.ref_name }}."
245264
246265 - name : Upload release assets to latest tag
247266 shell : bash
0 commit comments