@@ -155,6 +155,23 @@ jobs:
155155 - name : Checkout repository
156156 uses : actions/checkout@v4
157157
158+ # Delete previous latest-dev tag and release if on develop branch
159+ - name : Delete previous latest-dev tag and release
160+ if : github.ref_name == 'develop'
161+ run : |
162+ # Delete previous release
163+ RELEASE_ID=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
164+ "https://api.github.com/repos/${{ github.repository }}/releases/tags/latest-dev" | \
165+ jq -r '.id')
166+ if [ "$RELEASE_ID" != "null" ]; then
167+ curl -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
168+ "https://api.github.com/repos/${{ github.repository }}/releases/$RELEASE_ID"
169+ fi
170+
171+ # Delete previous tag
172+ git push --delete origin latest-dev || true
173+ continue-on-error : true
174+
158175 - name : Download Windows artifacts
159176 uses : actions/download-artifact@v4
160177 with :
@@ -184,6 +201,28 @@ jobs:
184201 draft : false
185202 prerelease : ${{ needs.build-windows.outputs.prerelease == 'true' }}
186203
204+ # Create latest-dev tag and release for develop branch
205+ - name : Create latest-dev tag and release
206+ if : github.ref_name == 'develop'
207+ run : |
208+ # Create and push latest-dev tag
209+ git tag -f latest-dev
210+ git push -f origin latest-dev
211+
212+ # Create latest-dev release
213+ UPLOAD_URL=$(curl -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
214+ -H "Accept: application/vnd.github.v3+json" \
215+ -d '{
216+ "tag_name": "latest-dev",
217+ "name": "DevNullifier [Latest Development Build]",
218+ "draft": false,
219+ "prerelease": true
220+ }' \
221+ "https://api.github.com/repos/${{ github.repository }}/releases" | \
222+ jq -r '.upload_url' | sed 's/{.*}//')
223+
224+ echo "LATEST_DEV_UPLOAD_URL=$UPLOAD_URL" >> $GITHUB_ENV
225+
187226 # Windows assets
188227 - name : Upload Windows Installer
189228 uses : actions/upload-release-asset@v1
@@ -300,3 +339,39 @@ jobs:
300339 asset_path : artifacts/macos/latest-mac.yml
301340 asset_name : latest-mac.yml
302341 asset_content_type : text/yaml
342+
343+ # Upload to latest-dev release if on develop branch
344+ - name : Upload assets to latest-dev release
345+ if : github.ref_name == 'develop'
346+ run : |
347+ # Function to upload asset
348+ upload_asset() {
349+ local file="$1"
350+ local name="$2"
351+ local type="$3"
352+
353+ curl -X POST \
354+ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
355+ -H "Content-Type: $type" \
356+ --data-binary "@$file" \
357+ "${{ env.LATEST_DEV_UPLOAD_URL }}?name=$name"
358+ }
359+
360+ # Upload Windows assets
361+ upload_asset "artifacts/windows/DevNullifier-Setup.exe" "DevNullifier-Setup-dev.exe" "application/octet-stream"
362+ upload_asset "artifacts/windows/latest.yml" "latest.yml" "text/yaml"
363+ upload_asset "artifacts/windows/DevNullifier-win-unpacked.zip" "DevNullifier-win-unpacked-dev.zip" "application/zip"
364+
365+ # Upload Linux assets
366+ APPIMAGE=$(find artifacts/linux -name "*.AppImage" -type f | head -1)
367+ DEB=$(find artifacts/linux -name "*.deb" -type f | head -1)
368+ upload_asset "$APPIMAGE" "DevNullifier-linux-x64-dev.AppImage" "application/octet-stream"
369+ upload_asset "$DEB" "DevNullifier-linux-x64-dev.deb" "application/octet-stream"
370+ upload_asset "artifacts/linux/DevNullifier-linux-unpacked.zip" "DevNullifier-linux-unpacked-dev.zip" "application/zip"
371+ upload_asset "artifacts/linux/latest-linux.yml" "latest-linux.yml" "text/yaml"
372+
373+ # Upload macOS assets
374+ DMG=$(find artifacts/macos -name "*.dmg" -type f | head -1)
375+ upload_asset "$DMG" "DevNullifier-mac-x64-dev.dmg" "application/octet-stream"
376+ upload_asset "artifacts/macos/DevNullifier-mac-unpacked.zip" "DevNullifier-mac-unpacked-dev.zip" "application/zip"
377+ upload_asset "artifacts/macos/latest-mac.yml" "latest-mac.yml" "text/yaml"
0 commit comments