Compare commits
14 Commits
dev-202602
...
dev-202603
| Author | SHA1 | Date | |
|---|---|---|---|
| 8414885659 | |||
|
|
01d2bf46fc | ||
|
|
3ac1b6a3a8 | ||
| 5da087b391 | |||
| 170759c063 | |||
|
|
7984a41bda | ||
| 3a69140bd3 | |||
|
|
5e03eb3455 | ||
|
|
fa4dd6f4de | ||
| 3aa1cd1b11 | |||
| 5229fa8274 | |||
| 1a7d03cb19 | |||
| 6c58601db8 | |||
| f37cb9e23a |
137
.github/workflows/build-and-release.yml
vendored
137
.github/workflows/build-and-release.yml
vendored
@@ -2,138 +2,39 @@ name: Build and Release
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
tags:
|
|
||||||
- '[0-9]+.[0-9]+.[0-9]+*' # Trigger on version tags like 1.0.0
|
|
||||||
workflow_dispatch: # Allow manual trigger
|
|
||||||
inputs:
|
|
||||||
hotfix:
|
|
||||||
description: 'Hotfix mode - update latest release instead of creating new one'
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-release:
|
build-and-release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # Required to create releases
|
contents: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Make
|
- name: Set up build tools
|
||||||
run: |
|
run: |
|
||||||
# Make is pre-installed on Ubuntu, but ensure zip is available
|
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y zip rsync
|
sudo apt-get install -y zip rsync
|
||||||
|
|
||||||
- name: Verify GitHub CLI
|
|
||||||
if: steps.get_version.outputs.hotfix == 'true'
|
|
||||||
run: |
|
|
||||||
gh --version || echo "GitHub CLI not available"
|
|
||||||
|
|
||||||
- name: Build zip package
|
- name: Build zip package
|
||||||
run: make zip
|
run: make zip
|
||||||
|
|
||||||
- name: Get version from tag or use default
|
- name: Get version
|
||||||
id: get_version
|
id: version
|
||||||
run: |
|
run: echo "tag_name=dev-$(date +'%Y%m%d-%H%M%S')-${GITHUB_SHA::8}" >> $GITHUB_OUTPUT
|
||||||
if [ "${{ inputs.hotfix }}" = "true" ]; then
|
|
||||||
echo "mode=hotfix" >> $GITHUB_OUTPUT
|
- name: Create dev release
|
||||||
echo "hotfix=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [ "${{ github.ref_type }}" = "tag" ]; then
|
|
||||||
VERSION="${{ github.ref_name }}"
|
|
||||||
IS_PRERELEASE="false"
|
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
|
|
||||||
echo "hotfix=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
VERSION="dev-$(date +'%Y%m%d-%H%M%S')-${GITHUB_SHA::8}"
|
|
||||||
IS_PRERELEASE="true"
|
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "tag_name=$VERSION" >> $GITHUB_OUTPUT
|
|
||||||
echo "prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
|
|
||||||
echo "hotfix=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Get latest release for hotfix
|
|
||||||
if: steps.get_version.outputs.hotfix == 'true'
|
|
||||||
id: get_latest_release
|
|
||||||
run: |
|
|
||||||
# Get the latest release (non-draft, non-prerelease)
|
|
||||||
LATEST_RELEASE=$(gh api repos/${{ github.repository }}/releases/latest --jq '.tag_name' 2>/dev/null || echo "")
|
|
||||||
if [ -z "$LATEST_RELEASE" ]; then
|
|
||||||
echo "Error: No latest release found. Cannot perform hotfix."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
RELEASE_ID=$(gh api repos/${{ github.repository }}/releases/latest --jq '.id')
|
|
||||||
echo "tag_name=$LATEST_RELEASE" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT
|
|
||||||
echo "Latest release: $LATEST_RELEASE (ID: $RELEASE_ID)"
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Delete existing asset if hotfix
|
|
||||||
if: steps.get_version.outputs.hotfix == 'true'
|
|
||||||
run: |
|
|
||||||
ASSET_ID=$(gh api repos/${{ github.repository }}/releases/${{ steps.get_latest_release.outputs.release_id }}/assets --jq '.[] | select(.name == "OmniNX Downloader.zip") | .id' || echo "")
|
|
||||||
if [ -n "$ASSET_ID" ]; then
|
|
||||||
echo "Deleting existing asset (ID: $ASSET_ID)"
|
|
||||||
gh api repos/${{ github.repository }}/releases/assets/$ASSET_ID -X DELETE
|
|
||||||
echo "Waiting for asset deletion to complete..."
|
|
||||||
sleep 2
|
|
||||||
else
|
|
||||||
echo "No existing asset found"
|
|
||||||
fi
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Prepare release info
|
|
||||||
id: release_info
|
|
||||||
run: |
|
|
||||||
if [ "${{ inputs.hotfix }}" = "true" ]; then
|
|
||||||
echo "release_name=Release ${{ steps.get_latest_release.outputs.tag_name }} (Hotfix Update)" >> $GITHUB_OUTPUT
|
|
||||||
RELEASE_BODY="**HOTFIX UPDATE** - Updated existing release"
|
|
||||||
echo "release_body<<EOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
|
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_tag=${{ steps.get_latest_release.outputs.tag_name }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "release_name=Release ${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT
|
|
||||||
RELEASE_BODY="Automated build of OmniNX Downloader"
|
|
||||||
echo "release_body<<EOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
|
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_tag=${{ steps.get_version.outputs.tag_name }}" >> $GITHUB_OUTPUT
|
|
||||||
echo "is_prerelease=${{ steps.get_version.outputs.prerelease }}" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Create or Update Release (Normal Mode)
|
|
||||||
if: steps.get_version.outputs.hotfix != 'true'
|
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
tag_name: ${{ steps.release_info.outputs.release_tag }}
|
tag_name: ${{ steps.version.outputs.tag_name }}
|
||||||
name: ${{ steps.release_info.outputs.release_name }}
|
name: Release ${{ steps.version.outputs.tag_name }}
|
||||||
body: ${{ steps.release_info.outputs.release_body }}
|
body: |
|
||||||
|
Automated dev build of OmniNX Downloader
|
||||||
|
Commit: ${{ github.sha }}
|
||||||
|
Branch: ${{ github.ref_name }}
|
||||||
draft: false
|
draft: false
|
||||||
prerelease: ${{ steps.release_info.outputs.is_prerelease == 'true' }}
|
prerelease: true
|
||||||
files: ./output/OmniNX Downloader.zip
|
files: ./output/OmniNX Downloader.zip
|
||||||
|
|
||||||
- name: Update Release (Hotfix Mode)
|
|
||||||
if: steps.get_version.outputs.hotfix == 'true'
|
|
||||||
run: |
|
|
||||||
# Update release body
|
|
||||||
gh release edit ${{ steps.get_latest_release.outputs.tag_name }} \
|
|
||||||
--title "${{ steps.release_info.outputs.release_name }}" \
|
|
||||||
--notes "${{ steps.release_info.outputs.release_body }}"
|
|
||||||
|
|
||||||
# Upload new asset
|
|
||||||
gh release upload ${{ steps.get_latest_release.outputs.tag_name }} \
|
|
||||||
"./output/OmniNX Downloader.zip" \
|
|
||||||
--clobber
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ delete /config/ultrahand/downloads/emuiibo-api.json
|
|||||||
try:
|
try:
|
||||||
download https://api.github.com/repos/XorTroll/Goldleaf/releases?per_page=1 /config/ultrahand/downloads/goldleaf-api.json
|
download https://api.github.com/repos/XorTroll/Goldleaf/releases?per_page=1 /config/ultrahand/downloads/goldleaf-api.json
|
||||||
json_file /config/ultrahand/downloads/goldleaf-api.json
|
json_file /config/ultrahand/downloads/goldleaf-api.json
|
||||||
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/goldleaf.zip
|
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/goldleaf.nro
|
||||||
unzip /config/ultrahand/downloads/goldleaf.zip /
|
mv /config/ultrahand/downloads/goldleaf.nro /switch/Goldleaf/
|
||||||
|
delete /config/ultrahand/downloads/goldleaf.nro
|
||||||
delete /config/ultrahand/downloads/goldleaf-api.json
|
delete /config/ultrahand/downloads/goldleaf-api.json
|
||||||
delete /config/ultrahand/downloads/goldleaf.zip
|
|
||||||
|
|
||||||
[Hekate-Toolbox - 4.0.4]
|
[Hekate-Toolbox - 4.0.4]
|
||||||
try:
|
try:
|
||||||
@@ -98,8 +98,9 @@ delete /config/ultrahand/downloads/jksv-api.json
|
|||||||
try:
|
try:
|
||||||
download https://api.github.com/repos/impeeza/linkalho/releases?per_page=1 /config/ultrahand/downloads/linkalho-api.json
|
download https://api.github.com/repos/impeeza/linkalho/releases?per_page=1 /config/ultrahand/downloads/linkalho-api.json
|
||||||
json_file /config/ultrahand/downloads/linkalho-api.json
|
json_file /config/ultrahand/downloads/linkalho-api.json
|
||||||
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/linkalho.nro
|
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/linkalho.zip
|
||||||
mv /config/ultrahand/downloads/linkalho.nro /switch/linkalho/
|
unzip /config/ultrahand/downloads/linkalho.zip /
|
||||||
|
delete /config/ultrahand/downloads/linkalho.zip
|
||||||
delete /config/ultrahand/downloads/linkalho-api.json
|
delete /config/ultrahand/downloads/linkalho-api.json
|
||||||
|
|
||||||
[Moonlight Switch - 1.3.4]
|
[Moonlight Switch - 1.3.4]
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
;show_widget=true
|
|
||||||
|
|
||||||
[Emulatoren]
|
[Emulatoren]
|
||||||
|
|
||||||
|
|
||||||
@@ -17,6 +15,15 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
|
|||||||
mv /config/ultrahand/downloads/melonds.nro /switch/melonDS/
|
mv /config/ultrahand/downloads/melonds.nro /switch/melonDS/
|
||||||
delete /config/ultrahand/downloads/melonds-api.json
|
delete /config/ultrahand/downloads/melonds-api.json
|
||||||
|
|
||||||
|
[mGBA - 0.10.5]
|
||||||
|
try:
|
||||||
|
download https://git.niklascfw.de/api/v1/repos/omninx/mGBA/releases?limit=1 /config/ultrahand/downloads/mgba-api.json
|
||||||
|
json_file /config/ultrahand/downloads/mgba-api.json
|
||||||
|
download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/downloads/mgba.zip
|
||||||
|
unzip '/config/ultrahand/downloads/mgba.zip' /
|
||||||
|
delete /config/ultrahand/downloads/mgba-api.json
|
||||||
|
delete /config/ultrahand/downloads/mgba.zip
|
||||||
|
|
||||||
[PPSSPP-NX - 1.19.3]
|
[PPSSPP-NX - 1.19.3]
|
||||||
try:
|
try:
|
||||||
download https://git.niklascfw.de/api/v1/repos/OmniNX/PPSSPP-NX/releases?limit=1 /config/ultrahand/downloads/ppsspp-nx-api.json
|
download https://git.niklascfw.de/api/v1/repos/OmniNX/PPSSPP-NX/releases?limit=1 /config/ultrahand/downloads/ppsspp-nx-api.json
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
;show_widget=true
|
|
||||||
|
|
||||||
[Betriebssysteme]
|
[Betriebssysteme]
|
||||||
|
|
||||||
[*Android]
|
[*Android]
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ download {json_file(0,assets,1,browser_download_url)} /config/ultrahand/download
|
|||||||
move /config/ultrahand/downloads/edizon.ovl /switch/.overlays/
|
move /config/ultrahand/downloads/edizon.ovl /switch/.overlays/
|
||||||
delete /config/ultrahand/downloads/edizon-api.json
|
delete /config/ultrahand/downloads/edizon-api.json
|
||||||
|
|
||||||
[FPSLocker - 3.2.4]
|
[FPSLocker - 3.3.1]
|
||||||
try:
|
try:
|
||||||
download https://api.github.com/repos/masagrator/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
|
download https://api.github.com/repos/masagrator/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
|
||||||
json_file /config/ultrahand/downloads/fpslocker-api.json
|
json_file /config/ultrahand/downloads/fpslocker-api.json
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
|
|||||||
mv /config/ultrahand/downloads/fizeau.ovl /switch/.overlays/
|
mv /config/ultrahand/downloads/fizeau.ovl /switch/.overlays/
|
||||||
delete /config/ultrahand/downloads/fizeau-api.json
|
delete /config/ultrahand/downloads/fizeau-api.json
|
||||||
|
|
||||||
[FPSLocker - 3.2.3+r1]
|
[FPSLocker - 3.3.1+]
|
||||||
try:
|
try:
|
||||||
download https://api.github.com/repos/ppkantorski/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
|
download https://api.github.com/repos/ppkantorski/FPSLocker/releases?per_page=1 /config/ultrahand/downloads/fpslocker-api.json
|
||||||
json_file /config/ultrahand/downloads/fpslocker-api.json
|
json_file /config/ultrahand/downloads/fpslocker-api.json
|
||||||
@@ -85,7 +85,7 @@ download {json_file(0,assets,0,browser_download_url)} /config/ultrahand/download
|
|||||||
mv /config/ultrahand/downloads/quickntp.ovl /switch/.overlays/
|
mv /config/ultrahand/downloads/quickntp.ovl /switch/.overlays/
|
||||||
delete /config/ultrahand/downloads/quickntp-api.json
|
delete /config/ultrahand/downloads/quickntp-api.json
|
||||||
|
|
||||||
[SaltyNX - 1.7.3]
|
[SaltyNX - 1.7.4]
|
||||||
try:
|
try:
|
||||||
download https://api.github.com/repos/masagrator/SaltyNX/releases?per_page=1 /config/ultrahand/downloads/saltynx-api.json
|
download https://api.github.com/repos/masagrator/SaltyNX/releases?per_page=1 /config/ultrahand/downloads/saltynx-api.json
|
||||||
json_file /config/ultrahand/downloads/saltynx-api.json
|
json_file /config/ultrahand/downloads/saltynx-api.json
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
[Current]
|
[Current]
|
||||||
omninx_downloader=1.0.0
|
omninx_downloader=1.0.0-b2
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[Release Info]
|
[Release Info]
|
||||||
omninx_pack=1.0.0
|
omninx_pack=1.0.0-b3
|
||||||
omninx_downloader=1.0.0
|
omninx_downloader=1.0.0-b2
|
||||||
firmware_version=21.2.0
|
firmware_version=21.2.0
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
;creator=Woody2408, NiklasCFW
|
;creator=Woody2408, NiklasCFW
|
||||||
;version=1.0.0
|
;version=1.0.0
|
||||||
;about='OmniNX Updater'
|
;about='OmniNX Updater'
|
||||||
;show_widget=true
|
|
||||||
|
|
||||||
[@CFW Pack]
|
[@CFW Pack]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user