diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 9f067feff40..026e3f18b1e 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -9,10 +9,14 @@ on: description: 'Only build dependencies (bypasses caching)' type: boolean default: false - build_linux: - description: 'Build Linux and Flatpak artifacts' - type: boolean - default: false + build_linux: + description: 'Build Linux AppImage artifacts' + type: boolean + default: false + build_flatpak: + description: 'Build Linux Flatpak artifacts' + type: boolean + default: false build_windows: description: 'Build Windows artifacts' type: boolean @@ -31,7 +35,7 @@ on: required: false default: '' publish_release: - description: 'Publish Windows and macOS artifacts to a GitHub release' + description: 'Publish selected Windows, macOS, and Linux artifacts to a GitHub release' type: boolean default: true @@ -92,10 +96,12 @@ jobs: name: Publish Release runs-on: ubuntu-24.04 needs: + - build_linux - build_windows - build_macos_arch - build_macos_universal - if: ${{ always() && github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' && (inputs.publish_release || false) && !inputs.build-deps-only && (inputs.build_windows || inputs.build_macos) && (inputs.build_windows == false || needs.build_windows.result == 'success') && (inputs.build_macos == false || needs.build_macos_arch.result == 'success') && (inputs.build_macos == false || needs.build_macos_universal.result == 'success' || needs.build_macos_universal.result == 'skipped') }} + - flatpak + if: ${{ always() && github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' && (inputs.publish_release || false) && !inputs.build-deps-only && (inputs.build_windows || inputs.build_macos || inputs.build_linux || inputs.build_flatpak || vars.BUILD_LINUX == 'true' || vars.BUILD_FLATPAK == 'true') && (inputs.build_windows == false || needs.build_windows.result == 'success') && (inputs.build_macos == false || needs.build_macos_arch.result == 'success') && (inputs.build_macos == false || needs.build_macos_universal.result == 'success' || needs.build_macos_universal.result == 'skipped') && (((inputs.build_linux || false) || vars.BUILD_LINUX == 'true') == false || needs.build_linux.result == 'success') && (((inputs.build_flatpak || false) || vars.BUILD_FLATPAK == 'true') == false || needs.flatpak.result == 'success') }} env: GH_TOKEN: ${{ github.token }} steps: @@ -128,7 +134,9 @@ jobs: mapfile -t assets < <(find release-artifacts -type f \( \ -name "OrcaSlicer-ImageMap_Mac_*_V$version.dmg" -o \ -name "OrcaSlicer-ImageMap_Windows_V${version}_portable.zip" -o \ - -name "OrcaSlicer-ImageMap_Windows_Installer_V${version}.exe" \ + -name "OrcaSlicer-ImageMap_Windows_Installer_V${version}.exe" -o \ + -name "OrcaSlicer_Linux_AppImage*_V${version}.AppImage" -o \ + -name "OrcaSlicer-Linux-flatpak_V${version}_*.flatpak" \ \) ! -name '*profile_validator*' | sort) if [ "${#assets[@]}" -eq 0 ]; then @@ -211,7 +219,7 @@ jobs: runner: ubuntu-24.04 - arch: aarch64 runner: ubuntu-24.04-arm - if: ${{ !cancelled() && (github.event_name != 'create' || (github.event.ref_type == 'branch' && startsWith(github.event.ref, 'release/'))) && !vars.SELF_HOSTED && ((inputs.build_linux || false) || vars.BUILD_LINUX == 'true') }} + if: ${{ !cancelled() && (github.event_name != 'create' || (github.event.ref_type == 'branch' && startsWith(github.event.ref, 'release/'))) && !vars.SELF_HOSTED && !inputs.build-deps-only && ((inputs.build_flatpak || false) || vars.BUILD_FLATPAK == 'true') }} runs-on: ${{ matrix.variant.runner }} env: diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 420f3210565..8ca3b166fbb 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -34,7 +34,7 @@ jobs: ubuntu-ver-str: '_Ubuntu2404' ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }} SCCACHE_DIR: ${{ github.workspace }}/.sccache - SCCACHE_CACHE_SIZE: 5G + SCCACHE_CACHE_SIZE: 2G steps: - name: Checkout @@ -57,7 +57,7 @@ jobs: useCloudCache: true - name: Restore sccache cache - if: ${{ !vars.SELF_HOSTED && (runner.os == 'Windows' || (runner.os == 'macOS' && !inputs.macos-combine-only)) }} + if: ${{ !vars.SELF_HOSTED && (runner.os == 'Windows' || runner.os == 'Linux' || (runner.os == 'macOS' && !inputs.macos-combine-only)) }} uses: actions/cache@v5 with: path: ${{ env.SCCACHE_DIR }} @@ -444,6 +444,15 @@ jobs: if: runner.os == 'Linux' && !vars.SELF_HOSTED uses: ./.github/actions/apt-install-deps + - name: Install sccache Linux + if: runner.os == 'Linux' && !vars.SELF_HOSTED + shell: bash + run: | + sudo apt install -y sccache + echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + sccache --zero-stats + # 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 @@ -456,6 +465,14 @@ jobs: chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage tar -cvpf build_tests.tar build/tests + - name: Show sccache stats Linux + if: ${{ always() && runner.os == 'Linux' && !vars.SELF_HOSTED }} + shell: bash + run: | + if command -v sccache >/dev/null 2>&1; then + sccache --show-stats + fi + # Use tar because upload-artifacts won't always preserve directory structure # and doesn't preserve file permissions - name: Upload Test Artifact diff --git a/version_number.txt b/version_number.txt index 59e9e60491a..bb83058ed54 100644 --- a/version_number.txt +++ b/version_number.txt @@ -1 +1 @@ -1.0.11 +1.0.12