on:
    workflow_call:
      inputs:
        cache-key:
          required: false
          type: string
        cache-path:
          required: false
          type: string
        os:
          required: true
          type: string
        arch:
          required: false
          type: string
        macos-combine-only:
          required: false
          type: boolean
          default: false

jobs:
  build_orca:
    name: Build OrcaSlicer
    runs-on: ${{ inputs.os }}
    env:
      date:
      ver:
      ver_pure:
      ubuntu-ver: '2404'
      ubuntu-ver-str: '_Ubuntu2404'
      ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}

    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          lfs: 'false'

      - name: load cached deps
        if: ${{ !(runner.os == 'macOS' && inputs.macos-combine-only) }}
        uses: actions/cache@v5
        with:
          path: ${{ inputs.cache-path }}
          key: ${{ inputs.cache-key }}
          fail-on-cache-miss: true

      - uses: lukka/get-cmake@latest
        with:
          cmakeVersion: "~4.3.0"  # use most recent 4.3.x version
          useLocalCache: true         # <--= Use the local cache (default is 'false').
          useCloudCache: true

      - name: Get the version and date on Ubuntu and macOS
        if: runner.os != 'Windows'
        run: |
          ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2)
          if [[ "${{ github.event_name }}" == "pull_request" ]]; then
            ver="PR-${{ github.event.number }}"
            git_commit_hash="${{ github.event.pull_request.head.sha }}"
          else
            ver=V$ver_pure
            git_commit_hash=""
          fi
          echo "ver=$ver" >> $GITHUB_ENV
          echo "ver_pure=$ver_pure" >> $GITHUB_ENV
          echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
          echo "git_commit_hash=$git_commit_hash" >> $GITHUB_ENV
        shell: bash

      - name: Get the version and date on Windows
        if: runner.os == 'Windows'
        run: |
          $date = Get-Date -Format 'yyyyMMdd'
          $ref = "${{ github.ref }}"
          $eventName = "${{ github.event_name }}"
          $prNumber = "${{ github.event.number }}"

          if ($eventName -eq 'pull_request') {
              $ver = "PR" + $prNumber
              $git_commit_hash = "${{ github.event.pull_request.head.sha }}"
          } else {
              $versionContent = Get-Content version.inc -Raw
              if ($versionContent -match 'set\(SoftFever_VERSION "(.*?)"\)') {
                  $ver = $matches[1]
              }
              $ver = "V$ver"
              $git_commit_hash = ""
          }

          echo "ver=$ver" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
          echo "date=$date" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
          echo "git_commit_hash=$git_commit_hash" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
          echo "date: ${{ env.date }} version: ${{ env.ver }}"
        shell: pwsh

#   Mac
      - name: Install tools mac
        if: runner.os == 'macOS' && !inputs.macos-combine-only
        run: |
          if [ -z "${{ vars.SELF_HOSTED }}" ]; then
            brew install libtool
            brew list
          fi
          mkdir -p ${{ github.workspace }}/deps/build/${{ inputs.arch }}

      - name: Free disk space
        if: runner.os == 'macOS' && !inputs.macos-combine-only && !vars.SELF_HOSTED
        run: |
          df -hI /dev/disk3s1s1
          sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "Xcode_15.4.app" -exec rm -rf {} +
          sudo rm -rf ~/Library/Developer/CoreSimulator/Caches/*
          df -hI /dev/disk3s1s1

      - name: Build slicer mac
        if: runner.os == 'macOS' && !inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        run: |
          ./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15

      - name: Pack macOS app bundle ${{ inputs.arch }}
        if: runner.os == 'macOS' && !inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        run: |
          tar -czvf OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz -C build/${{ inputs.arch }} OrcaSlicer

      - name: Upload macOS app bundle ${{ inputs.arch }}
        if: runner.os == 'macOS' && !inputs.macos-combine-only
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}
          path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz

      - name: Download macOS app bundles
        if: runner.os == 'macOS' && inputs.macos-combine-only
        uses: actions/download-artifact@v8
        with:
          pattern: OrcaSlicer_Mac_bundle_*_${{ github.sha }}
          path: ${{ github.workspace }}/mac_bundles

      - name: Extract macOS app bundles
        if: runner.os == 'macOS' && inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        run: |
          mkdir -p build/arm64 build/x86_64
          arm_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
          x86_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
          tar -xzvf "$arm_bundle" -C "${{ github.workspace }}/build/arm64"
          tar -xzvf "$x86_bundle" -C "${{ github.workspace }}/build/x86_64"

      - name: Build universal mac app bundle
        if: runner.os == 'macOS' && inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        run: |
          ./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15

      - name: Delete intermediate per-arch artifacts
        if: runner.os == 'macOS' && inputs.macos-combine-only
        uses: geekyeggo/delete-artifact@v6
        with:
          name: |
            OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
            OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}

 # Thanks to RaySajuuk, it's working now
      - name: Sign app and notary
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        env:
          BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
          P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
          KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
          CERTIFICATE_ID: ${{ secrets.MACOS_CERTIFICATE_ID }}
        run: |
          CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
          KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
          echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
          security create-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
          security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
          security unlock-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH
          # Set the temporary keychain as the default to prevent codesign from accessing the locked login keychain
          security default-keychain -s "$KEYCHAIN_PATH"
          security import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
          security list-keychain -d user -s $KEYCHAIN_PATH
          security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $P12_PASSWORD $KEYCHAIN_PATH
          codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer.app
          # Sign OrcaSlicer_profile_validator.app if it exists
          if [ -f "${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ]; then
            codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app
          fi
          
          # Create main OrcaSlicer DMG without the profile validator helper
          mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg
          rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/*
          cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer.app ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/
          ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/Applications
          hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
          codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
          
          # Create separate OrcaSlicer_profile_validator DMG if the app exists
          if [ -f "${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ]; then
            mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg
            rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/*
            cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/
            ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/Applications
            hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
            codesign --deep --force --verbose --options runtime --timestamp --entitlements ${{ github.workspace }}/scripts/disable_validation.entitlements --sign "$CERTIFICATE_ID" OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
          fi
          
          # Notarize main DMG
          xcrun notarytool submit "OrcaSlicer_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
          xcrun stapler staple OrcaSlicer_Mac_universal_${{ env.ver }}.dmg

          # Notarize profile validator DMG if it exists
          if [ -f "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" ]; then
            xcrun notarytool submit "OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" --wait
            xcrun stapler staple OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
          fi

      - name: Create DMG without notary
        if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only
        working-directory: ${{ github.workspace }}
        run: |
          mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg
          rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/*
          cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer.app ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/
          ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_dmg/Applications
          hdiutil create -volname "OrcaSlicer" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_dmg -ov -format UDZO OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
          
          # Create separate OrcaSlicer_profile_validator DMG if the app exists
          if [ -f "${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app/Contents/MacOS/OrcaSlicer_profile_validator" ]; then
            mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg
            rm -rf ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/*
            cp -R ${{ github.workspace }}/build/universal/OrcaSlicer/OrcaSlicer_profile_validator.app ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/
            ln -sfn /Applications ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg/Applications
            hdiutil create -volname "OrcaSlicer Profile Validator" -srcfolder ${{ github.workspace }}/build/universal/OrcaSlicer_profile_validator_dmg -ov -format UDZO OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
          fi

      - name: Upload artifacts mac
        if: runner.os == 'macOS' && inputs.macos-combine-only
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_Mac_universal_${{ env.ver }}
          path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg

      - name: Upload OrcaSlicer_profile_validator DMG mac
        if: runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_profile_validator_Mac_universal_DMG_${{ env.ver }}
          path: ${{ github.workspace }}/OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
          if-no-files-found: ignore

      - name: Deploy Mac release
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
          asset_name: OrcaSlicer_Mac_universal_nightly.dmg
          asset_content_type: application/octet-stream
          max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted

      - name: Deploy Mac OrcaSlicer_profile_validator DMG release
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/OrcaSlicer_profile_validator_Mac_universal_${{ env.ver }}.dmg
          asset_name: OrcaSlicer_profile_validator_Mac_universal_nightly.dmg
          asset_content_type: application/octet-stream
          max_releases: 1

# Windows
      - name: setup MSVC
        if: runner.os == 'Windows'
        uses: microsoft/setup-msbuild@v3

      - name: Install nsis
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        run: |
          dir "C:/Program Files (x86)/Windows Kits/10/Include"
          choco install nsis

      - name: Build slicer Win
        if: runner.os == 'Windows'
        working-directory: ${{ github.workspace }}
        env:
          WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
          WindowsSDKVersion: '10.0.26100.0\'
        run: .\build_release_vs.bat slicer

      - name: Create installer Win
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        working-directory: ${{ github.workspace }}/build
        run: |
          cpack -G NSIS

      - name: Pack app
        if: runner.os == 'Windows'
        working-directory: ${{ github.workspace }}/build
        shell: cmd
        run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer'

      - name: Pack PDB
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        working-directory: ${{ github.workspace }}/build/src/Release
        shell: cmd
        run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z  *.pdb'

      - name: Upload artifacts Win zip
        if: runner.os == 'Windows'
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_Windows_${{ env.ver }}_portable
          path: ${{ github.workspace }}/build/OrcaSlicer

      - name: Upload artifacts Win installer
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_Windows_${{ env.ver }}
          path: ${{ github.workspace }}/build/OrcaSlicer*.exe

      - name: Upload artifacts Win PDB
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: actions/upload-artifact@v7
        with:
          name: PDB
          path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z

      - name: Upload OrcaSlicer_profile_validator Win
        if: runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_profile_validator_Windows_${{ env.ver }}
          path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe

      - name: Deploy Windows release portable
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip
          asset_name: OrcaSlicer_Windows_nightly_portable.zip
          asset_content_type: application/x-zip-compressed
          max_releases: 1

      - name: Deploy Windows release installer
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_Installer_${{ env.ver }}.exe
          asset_name: OrcaSlicer_Windows_Installer_nightly.exe
          asset_content_type: application/x-msdownload
          max_releases: 1

      - name: Deploy Windows OrcaSlicer_profile_validator release
        if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
          asset_name: OrcaSlicer_profile_validator_Windows_nightly.exe
          asset_content_type: application/x-msdownload
          max_releases: 1

# Ubuntu
      - name: Apt-Install Dependencies
        if: runner.os == 'Linux' && !vars.SELF_HOSTED
        uses: ./.github/actions/apt-install-deps

        # Tests must built at the same time as the slicer;
        # if you untangle them feel free to separate them here too
      - name: Build slicer and tests
        if: runner.os == 'Linux'
        shell: bash
        run: |
          ./build_linux.sh -istrlL
          ./scripts/check_appimage_libs.sh ./build/package ./build/package/bin/orca-slicer
          mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
          chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
          tar -cvpf build_tests.tar build/tests

        # Use tar because upload-artifacts won't always preserve directory structure
        # and doesn't preserve file permissions
      - name: Upload Test Artifact
        if: runner.os == 'Linux'
        uses: actions/upload-artifact@v7
        with:
          name: ${{ github.sha }}-tests
          overwrite: true
          path: build_tests.tar
          retention-days: 5
          if-no-files-found: error

      - name: Build orca_custom_preset_tests
        if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
        working-directory: ${{ github.workspace }}/build/src/Release
        shell: bash
        run: |
          ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -g 1
          cd ${{ github.workspace }}/resources/profiles
          zip -r orca_custom_preset_tests.zip user/

      - name: Upload artifacts Ubuntu
        if: ${{ ! env.ACT && runner.os == 'Linux' }}
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
          path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'

      - name: Upload OrcaSlicer_profile_validator Ubuntu
        if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED }}
        uses: actions/upload-artifact@v7
        with:
          name: OrcaSlicer_profile_validator_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
          path: './build/src/Release/OrcaSlicer_profile_validator'

      - name: Deploy Ubuntu release
        if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
          asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_nightly.AppImage
          asset_content_type: application/octet-stream
          max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
      - name: Deploy Ubuntu release
        if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
        uses: rickstaa/action-create-tag@v1
        with:
          tag: "nightly-builds"
          tag_exists_error: false
          force_push_tag: true
          message: "nightly-builds"

      - name: Deploy Ubuntu OrcaSlicer_profile_validator release
        if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ./build/src/Release/OrcaSlicer_profile_validator
          asset_name: OrcaSlicer_profile_validator_Linux${{ env.ubuntu-ver-str }}_nightly
          asset_content_type: application/octet-stream
          max_releases: 1

      - name: Deploy orca_custom_preset_tests
        if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
        uses: WebFreak001/deploy-nightly@v3.2.0
        with:
          upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
          release_id: 137995723
          asset_path: ${{ github.workspace }}/resources/profiles/orca_custom_preset_tests.zip
          asset_name: orca_custom_preset_tests.zip
          asset_content_type: application/octet-stream
          max_releases: 1
