From 1a7d03cb19e76f0f2c8c1494cf71832c6fab06cf Mon Sep 17 00:00:00 2001 From: niklascfw Date: Sun, 15 Feb 2026 00:24:38 +0100 Subject: [PATCH] Updated workflow and current --- .github/workflows/build-and-release.yml | 133 +++--------------------- include/updater/CURRENT.ini | 2 +- 2 files changed, 16 insertions(+), 119 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 3acb4c5..ed11082 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -2,138 +2,35 @@ name: Build and Release on: 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: build-and-release: runs-on: ubuntu-latest - + permissions: - contents: write # Required to create releases - + contents: write + steps: - name: Checkout repository uses: actions/checkout@v4 - - - name: Set up Make + + - name: Set up build tools run: | - # Make is pre-installed on Ubuntu, but ensure zip is available sudo apt-get update 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 run: make zip - - - name: Get version from tag or use default - id: get_version - run: | - if [ "${{ inputs.hotfix }}" = "true" ]; then - echo "mode=hotfix" >> $GITHUB_OUTPUT - 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<> $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<> $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' + + - name: Create dev release uses: softprops/action-gh-release@v1 with: - tag_name: ${{ steps.release_info.outputs.release_tag }} - name: ${{ steps.release_info.outputs.release_name }} - body: ${{ steps.release_info.outputs.release_body }} + tag_name: dev-${{ github.run_number }} + name: Dev Build ${{ github.run_number }} + body: | + Automated dev build of OmniNX Downloader + Commit: ${{ github.sha }} + Branch: ${{ github.ref_name }} draft: false - prerelease: ${{ steps.release_info.outputs.is_prerelease == 'true' }} + prerelease: true 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 }} diff --git a/include/updater/CURRENT.ini b/include/updater/CURRENT.ini index a8b46e7..031562e 100644 --- a/include/updater/CURRENT.ini +++ b/include/updater/CURRENT.ini @@ -1,2 +1,2 @@ [Current] -omninx_downloader=1.0.0 \ No newline at end of file +omninx_downloader=1.0.0-b2 \ No newline at end of file