Wave overhangs: Andersons + Kaiser LaSO algorithms, 30+ tunables #45
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build all | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - 'deps/**' | |
| - 'src/**' | |
| - '**/CMakeLists.txt' | |
| - 'version.inc' | |
| - 'localization/**' | |
| - 'resources/**' | |
| - ".github/workflows/build_*.yml" | |
| - 'scripts/flatpak/**' | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - 'deps/**' | |
| - 'deps_src/**' | |
| - 'src/**' | |
| - '**/CMakeLists.txt' | |
| - 'version.inc' | |
| - ".github/workflows/build_*.yml" | |
| - 'build_linux.sh' | |
| - 'build_release_vs2022.bat' | |
| - 'build_release_macos.sh' | |
| - 'scripts/flatpak/**' | |
| schedule: | |
| - cron: '0 17 * * *' # run once a day at 1 AM Singapore time (UTC+8) | |
| workflow_dispatch: # allows for manual dispatch | |
| inputs: | |
| build-deps-only: | |
| description: 'Only build dependencies (bypasses caching)' | |
| type: boolean | |
| default: false | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build_linux: | |
| strategy: | |
| fail-fast: false | |
| # Don't run scheduled builds on forks: | |
| if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} | |
| uses: ./.github/workflows/build_check_cache.yml | |
| with: | |
| os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} | |
| build-deps-only: ${{ inputs.build-deps-only || false }} | |
| secrets: inherit | |
| build_windows: | |
| # Don't run scheduled builds on forks: | |
| if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} | |
| uses: ./.github/workflows/build_check_cache.yml | |
| with: | |
| os: ${{ vars.SELF_HOSTED && 'orca-win-server' || 'windows-latest' }} | |
| build-deps-only: ${{ inputs.build-deps-only || false }} | |
| force-build: ${{ github.event_name == 'schedule' }} | |
| secrets: inherit | |
| build_macos_arch: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: | |
| - arm64 | |
| - x86_64 | |
| # Don't run scheduled builds on forks: | |
| if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} | |
| uses: ./.github/workflows/build_check_cache.yml | |
| with: | |
| os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }} | |
| arch: ${{ matrix.arch }} | |
| build-deps-only: ${{ inputs.build-deps-only || false }} | |
| force-build: ${{ github.event_name == 'schedule' }} | |
| secrets: inherit | |
| build_macos_universal: | |
| name: Build macOS Universal | |
| needs: build_macos_arch | |
| if: ${{ !cancelled() && needs.build_macos_arch.result == 'success' && !inputs.build-deps-only && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} | |
| uses: ./.github/workflows/build_orca.yml | |
| with: | |
| os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }} | |
| arch: universal | |
| macos-combine-only: true | |
| secrets: inherit | |
| unit_tests: | |
| name: Unit Tests | |
| runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} | |
| needs: build_linux | |
| if: ${{ !cancelled() && success() }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| sparse-checkout: | | |
| .github | |
| scripts | |
| tests | |
| - name: Apt-Install Dependencies | |
| if: ${{ !vars.SELF_HOSTED }} | |
| uses: ./.github/actions/apt-install-deps | |
| - name: Restore Test Artifact | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: ${{ github.sha }}-tests | |
| - 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: Unpackage and Run Unit Tests | |
| timeout-minutes: 20 | |
| run: | | |
| tar -xvf build_tests.tar | |
| scripts/run_unit_tests.sh | |
| - name: Upload Test Logs | |
| uses: actions/upload-artifact@v7 | |
| if: ${{ failure() }} | |
| with: | |
| name: unit-test-logs | |
| path: build/tests/**/*.log | |
| - name: Publish Test Results | |
| if: always() | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| with: | |
| files: "ctest_results.xml" | |
| - name: Delete Test Artifact | |
| if: success() | |
| uses: geekyeggo/delete-artifact@v6 | |
| with: | |
| name: ${{ github.sha }}-tests | |
| flatpak: | |
| name: "Flatpak" | |
| container: | |
| image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49 | |
| options: --privileged | |
| volumes: | |
| - /usr/local/lib/android:/usr/local/lib/android | |
| - /usr/share/dotnet:/usr/share/dotnet | |
| - /opt/ghc:/opt/ghc1 | |
| - /usr/local/share/boost:/usr/local/share/boost1 | |
| - /opt/hostedtoolcache:/opt/hostedtoolcache1 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| variant: | |
| - arch: x86_64 | |
| runner: ubuntu-24.04 | |
| - arch: aarch64 | |
| runner: ubuntu-24.04-arm | |
| # Don't run scheduled builds on forks; skip entirely on self-hosted runners | |
| if: ${{ !cancelled() && !vars.SELF_HOSTED && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }} | |
| runs-on: ${{ matrix.variant.runner }} | |
| env: | |
| date: | |
| ver: | |
| ver_pure: | |
| steps: | |
| - name: "Remove unneeded stuff to free disk space" | |
| run: | |
| rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" /opt/hostedtoolcache1/* | |
| - uses: actions/checkout@v6 | |
| - name: Get the version and date | |
| 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="${{ github.sha }}" | |
| 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 | |
| # Manage flatpak-builder cache externally so PRs restore but never upload | |
| - name: Restore flatpak-builder cache | |
| if: github.event_name == 'pull_request' | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: .flatpak-builder | |
| key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.event.pull_request.base.sha }} | |
| restore-keys: flatpak-builder-${{ matrix.variant.arch }}- | |
| - name: Save/restore flatpak-builder cache | |
| if: github.event_name != 'pull_request' | |
| uses: actions/cache@v5 | |
| with: | |
| path: .flatpak-builder | |
| key: flatpak-builder-${{ matrix.variant.arch }}-${{ github.sha }} | |
| restore-keys: flatpak-builder-${{ matrix.variant.arch }}- | |
| - name: Disable debug info for faster CI builds | |
| run: | | |
| sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \ | |
| scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | |
| shell: bash | |
| - name: Inject git commit hash into Flatpak manifest | |
| run: | | |
| sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ | |
| scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | |
| shell: bash | |
| - uses: flatpak/flatpak-github-actions/flatpak-builder@master | |
| with: | |
| bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak | |
| manifest-path: scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | |
| cache: false | |
| arch: ${{ matrix.variant.arch }} | |
| upload-artifact: false | |
| - name: Upload artifacts Flatpak | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak | |
| path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak' | |
| - name: Deploy Flatpak to nightly release | |
| if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' | |
| 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: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak | |
| asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak | |
| 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 | |