diff --git a/build_macos_bridge.yml b/build_macos_bridge.yml deleted file mode 100644 index 835ee981..00000000 --- a/build_macos_bridge.yml +++ /dev/null @@ -1,241 +0,0 @@ -name: Build macOS with Linux bridge runtime - -on: - workflow_call: - workflow_dispatch: - -jobs: - prepare_linux_bridge_runtime: - name: Prepare Linux bridge runtime - runs-on: ubuntu-24.04 - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Apt-Install Dependencies - uses: ./.github/actions/apt-install-deps - - - name: Build Linux deps - shell: bash - run: | - set -euo pipefail - for attempt in 1 2 3; do - echo "Build Linux deps attempt $attempt" - if ./build_linux.sh -drlL; then - exit 0 - fi - if [ "$attempt" -lt 3 ]; then - echo "Transient dependency download/build failure, retrying after backoff" - sleep $((attempt * 20)) - fi - done - exit 1 - - - name: Configure linux bridge host build - shell: bash - run: | - cmake -S . -B build -G "Ninja Multi-Config" -DORCA_TOOLS=ON - - - name: Build linux host runtime - shell: bash - run: | - cmake --build build --config Release --target pjarczak_bambu_linux_host - bash tools/pjarczak_bambu_linux_host/package_linux_host_runtime.sh build - tar -czvf linux_host_runtime_${{ github.sha }}.tar.gz -C tools/pjarczak_bambu_linux_host/runtime linux-x86_64 - - - name: Upload linux host runtime artifact - uses: actions/upload-artifact@v7 - with: - name: linux_host_runtime_macos_${{ github.sha }} - path: ./linux_host_runtime_${{ github.sha }}.tar.gz - if-no-files-found: error - - build_macos_arm64: - name: Build macOS arm64 - runs-on: macos-14 - needs: prepare_linux_bridge_runtime - env: - ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }} - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Download linux host runtime artifact - uses: actions/download-artifact@v8 - with: - name: linux_host_runtime_macos_${{ github.sha }} - path: ${{ github.workspace }}/linux_host_runtime_artifact - - - name: Extract linux host runtime artifact on macOS arm64 - shell: bash - run: | - mkdir -p "$GITHUB_WORKSPACE/tools/pjarczak_bambu_linux_host/runtime" - tar -xzf "$GITHUB_WORKSPACE/linux_host_runtime_artifact/linux_host_runtime_${{ github.sha }}.tar.gz" -C "$GITHUB_WORKSPACE/tools/pjarczak_bambu_linux_host/runtime" - - - name: Install mac tools - shell: bash - run: | - brew install automake texinfo libtool - brew list - mkdir -p "$GITHUB_WORKSPACE/deps/build/arm64" - - - name: Build macOS arm64 deps - shell: bash - run: | - ./build_release_macos.sh -dx -1 -a arm64 -t 11.3 - - - name: Build macOS arm64 app bundle - shell: bash - run: | - ./build_release_macos.sh -s -n -x -1 -a arm64 -t 11.3 - - - name: Pack macOS arm64 app bundle - shell: bash - run: | - tar -czvf OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}.tar.gz -C build/arm64 OrcaSlicer - - - name: Upload macOS arm64 app bundle - uses: actions/upload-artifact@v7 - with: - name: OrcaSlicer_Mac_bundle_arm64_${{ github.sha }} - path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}.tar.gz - if-no-files-found: error - - build_macos_x86_64: - name: Build macOS x86_64 - runs-on: macos-14 - needs: prepare_linux_bridge_runtime - env: - ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }} - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Download linux host runtime artifact - uses: actions/download-artifact@v8 - with: - name: linux_host_runtime_macos_${{ github.sha }} - path: ${{ github.workspace }}/linux_host_runtime_artifact - - - name: Extract linux host runtime artifact on macOS x86_64 - shell: bash - run: | - mkdir -p "$GITHUB_WORKSPACE/tools/pjarczak_bambu_linux_host/runtime" - tar -xzf "$GITHUB_WORKSPACE/linux_host_runtime_artifact/linux_host_runtime_${{ github.sha }}.tar.gz" -C "$GITHUB_WORKSPACE/tools/pjarczak_bambu_linux_host/runtime" - - - name: Install mac tools - shell: bash - run: | - brew install automake texinfo libtool - brew list - mkdir -p "$GITHUB_WORKSPACE/deps/build/x86_64" - - - name: Build macOS x86_64 deps - shell: bash - run: | - ./build_release_macos.sh -dx -1 -a x86_64 -t 11.3 - - - name: Build macOS x86_64 app bundle - shell: bash - run: | - ./build_release_macos.sh -s -n -x -1 -a x86_64 -t 11.3 - - - name: Pack macOS x86_64 app bundle - shell: bash - run: | - tar -czvf OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}.tar.gz -C build/x86_64 OrcaSlicer - - - name: Upload macOS x86_64 app bundle - uses: actions/upload-artifact@v7 - with: - name: OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }} - path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}.tar.gz - if-no-files-found: error - - build_macos_universal: - name: Build macOS universal - runs-on: macos-14 - needs: - - build_macos_arm64 - - build_macos_x86_64 - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Download macOS app bundles - uses: actions/download-artifact@v8 - with: - pattern: OrcaSlicer_Mac_bundle_*_${{ github.sha }} - path: ${{ github.workspace }}/mac_bundles - - - name: Extract macOS app bundles - shell: bash - 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 - shell: bash - run: | - ./build_release_macos.sh -u -x -1 -a universal -t 11.3 - - - name: Create DMG without runtime validation - shell: bash - 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" - ver=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2) - hdiutil create -volname "OrcaSlicer" -srcfolder "$GITHUB_WORKSPACE/build/universal/OrcaSlicer_dmg" -ov -format UDZO "OrcaSlicer_Mac_universal_V${ver}.dmg" - - - name: Explain skipped hosted runtime validation - shell: bash - run: | - echo "Hosted macOS runners do not support nested virtualization, so bundled Lima runtime validation is intentionally skipped here." - - - name: Upload macOS universal DMG - uses: actions/upload-artifact@v7 - with: - name: OrcaSlicer_Mac_universal_${{ github.sha }} - path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_V*.dmg - if-no-files-found: error diff --git a/build_windows_bridge.yml b/build_windows_bridge.yml deleted file mode 100644 index 8d4bbaf0..00000000 --- a/build_windows_bridge.yml +++ /dev/null @@ -1,237 +0,0 @@ -name: Build Windows with Linux bridge runtime - -on: - workflow_call: - workflow_dispatch: - -jobs: - prepare_linux_bridge_runtime: - name: Prepare Linux bridge runtime - runs-on: ubuntu-24.04 - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Apt-Install Dependencies - uses: ./.github/actions/apt-install-deps - - - name: Build Linux deps - shell: bash - run: | - set -euo pipefail - for attempt in 1 2 3; do - echo "Build Linux deps attempt $attempt" - if ./build_linux.sh -drlL; then - exit 0 - fi - if [ "$attempt" -lt 3 ]; then - echo "Transient dependency download/build failure, retrying after backoff" - sleep $((attempt * 20)) - fi - done - exit 1 - - - name: Configure linux bridge host build - shell: bash - run: | - cmake -S . -B build -G "Ninja Multi-Config" -DORCA_TOOLS=ON - - - name: Build linux host runtime and WSL rootfs - shell: bash - run: | - cmake --build build --config Release --target pjarczak_bambu_linux_host - bash tools/pjarczak_bambu_linux_host/package_linux_host_runtime.sh build - bash tools/pjarczak_bambu_runtime/rootfs/build_windows_wsl_rootfs.sh tools/pjarczak_bambu_runtime/rootfs/windows-wsl2-rootfs.tar - tar -czvf linux_host_runtime_${{ github.sha }}.tar.gz -C tools/pjarczak_bambu_linux_host/runtime linux-x86_64 - tar -czvf wsl_rootfs_${{ github.sha }}.tar.gz -C tools/pjarczak_bambu_runtime/rootfs windows-wsl2-rootfs.tar - - - name: Show packaged linux bridge runtime files - shell: bash - run: | - find tools/pjarczak_bambu_linux_host/runtime/linux-x86_64 -maxdepth 1 -type f | sort - - - - name: Upload linux host runtime artifact - uses: actions/upload-artifact@v7 - with: - name: linux_host_runtime_windows_${{ github.sha }} - path: ./linux_host_runtime_${{ github.sha }}.tar.gz - if-no-files-found: error - - - name: Upload WSL rootfs artifact - uses: actions/upload-artifact@v7 - with: - name: wsl_rootfs_${{ github.sha }} - path: ./wsl_rootfs_${{ github.sha }}.tar.gz - if-no-files-found: error - - build_windows: - name: Build Windows - runs-on: windows-latest - needs: prepare_linux_bridge_runtime - env: - ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }} - - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - uses: lukka/get-cmake@latest - with: - cmakeVersion: "~4.3.0" - useLocalCache: true - useCloudCache: true - - - name: Get the version and date on Windows - shell: pwsh - run: | - $date = Get-Date -Format 'yyyyMMdd' - $eventName = "${{ github.event_name }}" - $prNumber = "${{ github.event.number }}" - - if ($eventName -eq 'pull_request') { - $ver = "PR" + $prNumber - } else { - $versionContent = Get-Content version.inc -Raw - if ($versionContent -match 'set\(SoftFever_VERSION "(.*?)"\)') { - $ver = $matches[1] - } - $ver = "V$ver" - } - - echo "ver=$ver" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 - echo "date=$date" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 - - - name: Download linux host runtime artifact - uses: actions/download-artifact@v8 - with: - name: linux_host_runtime_windows_${{ github.sha }} - path: ${{ github.workspace }}/linux_host_runtime_artifact - - - name: Extract linux host runtime artifact on Windows - working-directory: ${{ github.workspace }} - shell: pwsh - run: | - New-Item -ItemType Directory -Force -Path "$env:GITHUB_WORKSPACE\tools\pjarczak_bambu_linux_host\runtime" | Out-Null - tar -xzf "$env:GITHUB_WORKSPACE\linux_host_runtime_artifact\linux_host_runtime_${{ github.sha }}.tar.gz" -C "$env:GITHUB_WORKSPACE\tools\pjarczak_bambu_linux_host\runtime" - - - name: Download WSL rootfs artifact - uses: actions/download-artifact@v8 - with: - name: wsl_rootfs_${{ github.sha }} - path: ${{ github.workspace }}/wsl_rootfs_artifact - - - name: Extract WSL rootfs artifact on Windows - working-directory: ${{ github.workspace }} - shell: pwsh - run: | - New-Item -ItemType Directory -Force -Path "$env:GITHUB_WORKSPACE\tools\pjarczak_bambu_runtime\rootfs" | Out-Null - tar -xzf "$env:GITHUB_WORKSPACE\wsl_rootfs_artifact\wsl_rootfs_${{ github.sha }}.tar.gz" -C "$env:GITHUB_WORKSPACE\tools\pjarczak_bambu_runtime\rootfs" - - - name: setup MSVC - uses: microsoft/setup-msbuild@v2 - - - name: Install nsis - shell: pwsh - run: | - choco install nsis -y - - - name: Build Windows deps - working-directory: ${{ github.workspace }} - env: - WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\' - WindowsSDKVersion: '10.0.26100.0\' - shell: pwsh - run: .\build_release_vs.bat deps - - - name: Build slicer Win - working-directory: ${{ github.workspace }} - env: - WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\' - WindowsSDKVersion: '10.0.26100.0\' - shell: pwsh - run: .\build_release_vs.bat slicer - - - - name: Ensure WSL is available for runtime validation - shell: pwsh - run: | - $wsl = Join-Path $env:WINDIR 'System32\wsl.exe' - if (!(Test-Path $wsl)) { throw 'wsl.exe not found' } - - $ready = $false - try { - & $wsl --status - if ($LASTEXITCODE -eq 0) { $ready = $true } - } catch {} - - if (-not $ready) { - & $wsl --install --no-distribution - if ($LASTEXITCODE -ne 0) { throw 'wsl --install --no-distribution failed' } - } - - & $wsl --update - if ($LASTEXITCODE -ne 0) { throw 'wsl --update failed' } - - & $wsl --status - if ($LASTEXITCODE -ne 0) { throw 'WSL is still not ready after install/update' } - - - name: Show packaged Orca runtime files - shell: pwsh - run: | - Get-ChildItem -Force "$env:GITHUB_WORKSPACE\build\OrcaSlicer" | Format-Table Name, Length -AutoSize - - - name: Install bundled WSL2 Orca runtime into live plugins dir - shell: pwsh - run: | - & "$env:GITHUB_WORKSPACE\build\OrcaSlicer\install_runtime.ps1" -ReplaceExisting - - - name: Show live Orca plugin dir after installer - shell: pwsh - run: | - Get-ChildItem -Force "$env:APPDATA\OrcaSlicer\plugins" | Format-Table Name, Length -AutoSize - Write-Host "--- cache dir ---" - if (Test-Path "$env:APPDATA\OrcaSlicer\ota\plugins") { - Get-ChildItem -Force "$env:APPDATA\OrcaSlicer\ota\plugins" | Format-Table Name, Length -AutoSize - } - - - name: Validate live Orca plugin dir bootstrap package - shell: pwsh - run: | - & "$env:APPDATA\OrcaSlicer\plugins\verify_runtime.ps1" -PackageDir "$env:APPDATA\OrcaSlicer\plugins" -PluginCacheDir "$env:APPDATA\OrcaSlicer\ota\plugins" -AllowMissingLinuxPlugin - - - name: Create installer Win - working-directory: ${{ github.workspace }}/build - shell: pwsh - run: | - cpack -G NSIS - - - name: Pack app - 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: Upload artifacts Win portable - uses: actions/upload-artifact@v7 - with: - name: OrcaSlicer_Windows_${{ env.ver }}_portable - path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip - if-no-files-found: error - - - name: Upload artifacts Win installer - uses: actions/upload-artifact@v7 - with: - name: OrcaSlicer_Windows_${{ env.ver }}_installer - path: ${{ github.workspace }}/build/OrcaSlicer*.exe - if-no-files-found: error diff --git a/my_build_all.yml b/my_build_all.yml deleted file mode 100644 index 99b8930f..00000000 --- a/my_build_all.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: My Build All - -on: - workflow_dispatch: - push: - tags: - - 'v*' - release: - types: - - published - -permissions: - contents: write - -concurrency: - group: my-build-all-${{ github.event.release.tag_name || github.ref }} - cancel-in-progress: true - -jobs: - build_windows: - uses: ./.github/workflows/build_windows_bridge.yml - secrets: inherit - - build_linux_portable: - uses: ./.github/workflows/build_linux_portable.yml - secrets: inherit - - build_linux_appimage: - uses: ./.github/workflows/build_linux_appimage.yml - secrets: inherit - - build_macos: - uses: ./.github/workflows/build_macos_bridge.yml - secrets: inherit - - publish_release: - name: Publish release assets - needs: - - build_windows - - build_linux_portable - - build_linux_appimage - - build_macos - if: ${{ github.event_name == 'push' || github.event_name == 'release' }} - runs-on: ubuntu-24.04 - permissions: - contents: write - - steps: - - name: Download all artifacts - uses: actions/download-artifact@v8 - with: - path: release-artifacts - - - name: Flatten release files - shell: bash - run: | - set -euo pipefail - mkdir -p release-files - find release-artifacts -type f -print0 | while IFS= read -r -d '' file; do - cp "$file" release-files/"$(basename "$file")" - done - ls -lah release-files - - - name: Resolve tag - shell: bash - env: - EVENT_TAG: ${{ github.event.release.tag_name }} - run: | - set -euo pipefail - tag="${EVENT_TAG:-${GITHUB_REF_NAME:-}}" - if [[ -z "$tag" ]]; then - echo "ERROR: tag could not be resolved" - exit 1 - fi - echo "RELEASE_TAG=$tag" >> "$GITHUB_ENV" - - - name: Create or update GitHub release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ env.RELEASE_TAG }} - generate_release_notes: true - overwrite_files: true - files: | - release-files/*