diff --git a/.github/workflows/assign.yml b/.github/workflows/assign.yml index 12ded0d5986..b5f98c13546 100644 --- a/.github/workflows/assign.yml +++ b/.github/workflows/assign.yml @@ -1,11 +1,6 @@ name: Assign Issue -on: - schedule: - - cron: 0 0 * * * - issue_comment: - types: [created] - workflow_dispatch: +on: {} jobs: assign: diff --git a/.github/workflows/auto-close-duplicates.yml b/.github/workflows/auto-close-duplicates.yml index 6612c98a038..935fb8c231e 100644 --- a/.github/workflows/auto-close-duplicates.yml +++ b/.github/workflows/auto-close-duplicates.yml @@ -1,9 +1,6 @@ name: Auto-close duplicate issues description: Auto-closes issues that are duplicates of existing issues -on: - schedule: - - cron: "0 9 * * *" - workflow_dispatch: +on: {} jobs: auto-close-duplicates: diff --git a/.github/workflows/backfill-duplicate-comments.yml b/.github/workflows/backfill-duplicate-comments.yml index a4253e8ae0b..96d00081f34 100644 --- a/.github/workflows/backfill-duplicate-comments.yml +++ b/.github/workflows/backfill-duplicate-comments.yml @@ -1,22 +1,7 @@ name: Backfill Duplicate Comments description: Triggers duplicate detection for old issues that don't have duplicate comments -on: - workflow_dispatch: - inputs: - days_back: - description: 'How many days back to look for old issues' - required: false - default: '90' - type: string - dry_run: - description: 'Dry run mode (true to only log what would be done)' - required: false - default: 'true' - type: choice - options: - - 'true' - - 'false' +on: {} jobs: backfill-duplicate-comments: diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3fafbb1c2cf..d988bc1f213 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -1,253 +1,209 @@ -name: Build all - -on: - push: - branches: - - main - - release/* - paths: - - 'deps/**' - - 'src/**' - - '**/CMakeLists.txt' - - 'version.inc' - - 'localization/**' - - 'resources/**' - - ".github/workflows/build_*.yml" - - 'scripts/flatpak/**' - - 'scripts/msix/**' - - 'tests/**' - - pull_request: - branches: - - main - - release/* - 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/**' - - 'scripts/msix/**' - - 'tests/**' - - - 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 - # Build both arches on every event (PRs included), through the same - # build_check_cache -> build_deps -> build_orca chain (the AppImage). - # aarch64 always uses the GitHub-hosted arm runner (there is no arm - # self-hosted server). amd64's empty arch is load-bearing: it keeps the - # historical 'linux-clang' deps cache key and the unsuffixed asset names. - matrix: - include: - - arch: "" - os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} - - arch: "aarch64" - os: ubuntu-24.04-arm - # 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: ${{ matrix.os }} - arch: ${{ matrix.arch }} - 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 - # Tests are built on the aarch64 leg by default (faster GitHub arm runner), - # so run them there; self-hosted builds them on the amd64 server instead. - runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04-arm' }} - 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-50 - 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 +name: Build all + +on: {} + +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 + # Build both arches on every event (PRs included), through the same + # build_check_cache -> build_deps -> build_orca chain (the AppImage). + # aarch64 always uses the GitHub-hosted arm runner (there is no arm + # self-hosted server). amd64's empty arch is load-bearing: it keeps the + # historical 'linux-clang' deps cache key and the unsuffixed asset names. + matrix: + include: + - arch: "" + os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} + - arch: "aarch64" + os: ubuntu-24.04-arm + # 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: ${{ matrix.os }} + arch: ${{ matrix.arch }} + 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 + # Tests are built on the aarch64 leg by default (faster GitHub arm runner), + # so run them there; self-hosted builds them on the amd64 server instead. + runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04-arm' }} + 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-50 + 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 diff --git a/.github/workflows/build_check_cache.yml b/.github/workflows/build_check_cache.yml index 8d14fb325dc..cb9ef4b2cce 100644 --- a/.github/workflows/build_check_cache.yml +++ b/.github/workflows/build_check_cache.yml @@ -1,66 +1,52 @@ -name: Check Cache - -on: - workflow_call: - inputs: - os: - required: true - type: string - arch: - required: false - type: string - build-deps-only: - required: false - type: boolean - force-build: - required: false - type: boolean - -jobs: - check_cache: # determines if there is a cache and outputs variables used in caching process - name: Check Cache - runs-on: ${{ inputs.os }} - outputs: - cache-key: ${{ steps.set_outputs.outputs.cache-key }} - cache-path: ${{ steps.set_outputs.outputs.cache-path }} - valid-cache: ${{ steps.cache_deps.outputs.cache-hit }} - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - lfs: 'false' - - - name: set outputs - id: set_outputs - env: - # Keep macOS/Linux cache keys architecture-specific. amd64 Linux passes - # no arch (key stays 'linux-clang', preserving the existing cache); - # aarch64 gets its own 'linux-clang-aarch64' key. - cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }} - dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }} - output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} - run: | - echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }} - echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }} - - - name: load cache - id: cache_deps - uses: actions/cache@v5 - with: - path: ${{ steps.set_outputs.outputs.cache-path }} - key: ${{ steps.set_outputs.outputs.cache-key }} - lookup-only: true - - build_deps: # call next step - name: Build Deps - needs: [check_cache] - uses: ./.github/workflows/build_deps.yml - with: - cache-key: ${{ needs.check_cache.outputs.cache-key }} - cache-path: ${{ needs.check_cache.outputs.cache-path }} - valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }} - os: ${{ inputs.os }} - arch: ${{ inputs.arch }} - build-deps-only: ${{ inputs.build-deps-only }} - force-build: ${{ inputs.force-build }} - secrets: inherit +name: Check Cache + +on: {} + +jobs: + check_cache: # determines if there is a cache and outputs variables used in caching process + name: Check Cache + runs-on: ${{ inputs.os }} + outputs: + cache-key: ${{ steps.set_outputs.outputs.cache-key }} + cache-path: ${{ steps.set_outputs.outputs.cache-path }} + valid-cache: ${{ steps.cache_deps.outputs.cache-hit }} + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + lfs: 'false' + + - name: set outputs + id: set_outputs + env: + # Keep macOS/Linux cache keys architecture-specific. amd64 Linux passes + # no arch (key stays 'linux-clang', preserving the existing cache); + # aarch64 gets its own 'linux-clang-aarch64' key. + cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }} + dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }} + output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} + run: | + echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }} + echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }} + + - name: load cache + id: cache_deps + uses: actions/cache@v5 + with: + path: ${{ steps.set_outputs.outputs.cache-path }} + key: ${{ steps.set_outputs.outputs.cache-key }} + lookup-only: true + + build_deps: # call next step + name: Build Deps + needs: [check_cache] + uses: ./.github/workflows/build_deps.yml + with: + cache-key: ${{ needs.check_cache.outputs.cache-key }} + cache-path: ${{ needs.check_cache.outputs.cache-path }} + valid-cache: ${{ needs.check_cache.outputs.valid-cache == 'true' }} + os: ${{ inputs.os }} + arch: ${{ inputs.arch }} + build-deps-only: ${{ inputs.build-deps-only }} + force-build: ${{ inputs.force-build }} + secrets: inherit diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index 978d6f5d669..57c76f911e6 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -1,27 +1,4 @@ -on: - workflow_call: - inputs: - cache-key: - required: true - type: string - cache-path: - required: true - type: string - valid-cache: - required: true - type: boolean - os: - required: true - type: string - arch: - required: false - type: string - build-deps-only: - required: false - type: boolean - force-build: - required: false - type: boolean +on: {} jobs: build_deps: diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 941e6ed57cb..e9a1ca8fdc4 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -1,22 +1,4 @@ -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 +on: {} jobs: build_orca: diff --git a/.github/workflows/check_locale.yml b/.github/workflows/check_locale.yml index f248ced29c6..98df7bb0e63 100644 --- a/.github/workflows/check_locale.yml +++ b/.github/workflows/check_locale.yml @@ -1,12 +1,6 @@ name: Check locale -on: - pull_request: - branches: - - main - paths: - - 'localization/**' - - ".github/workflows/check_locale.yml" +on: {} jobs: check_translation: diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index 84a396d7a32..4d1899f5061 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -1,18 +1,5 @@ name: Check profiles -on: - pull_request: - branches: - - main - paths: - - 'resources/profiles/**' - - ".github/workflows/check_profiles.yml" - - workflow_dispatch: - inputs: - logLevel: - description: 'Log level' - required: true - default: 'warning' +on: {} permissions: contents: read diff --git a/.github/workflows/check_profiles_comment.yml b/.github/workflows/check_profiles_comment.yml index 21098cc467c..caaaa0de622 100644 --- a/.github/workflows/check_profiles_comment.yml +++ b/.github/workflows/check_profiles_comment.yml @@ -2,11 +2,7 @@ name: Post profile check comment # NOTE: The workflow name in the 'workflows' filter below must match the 'name' # field in check_profiles.yml exactly. If that name changes, update it here too. -on: - workflow_run: - workflows: ["Check profiles"] - types: - - completed +on: {} permissions: pull-requests: write diff --git a/.github/workflows/dedupe-issues.yml b/.github/workflows/dedupe-issues.yml index abaf978d279..4b6b3887425 100644 --- a/.github/workflows/dedupe-issues.yml +++ b/.github/workflows/dedupe-issues.yml @@ -1,14 +1,6 @@ name: Orca Issue Dedupe description: Automatically dedupe GitHub issues using AI -on: - issues: - types: [opened] - workflow_dispatch: - inputs: - issue_number: - description: 'Issue number to process for duplicate detection' - required: true - type: string +on: {} jobs: dedupe-issues: diff --git a/.github/workflows/doxygen-docs.yml b/.github/workflows/doxygen-docs.yml index f30c3e0d0e3..0a0cf09f507 100644 --- a/.github/workflows/doxygen-docs.yml +++ b/.github/workflows/doxygen-docs.yml @@ -1,9 +1,6 @@ name: Generate Doxygen Documentation -on: - schedule: - - cron: '0 0 * * 1' # Every Monday at midnight UTC - workflow_dispatch: # Manual trigger +on: {} concurrency: group: ${{ github.workflow }} diff --git a/.github/workflows/pr-label-bot.yml b/.github/workflows/pr-label-bot.yml index bbe1ac34727..0e841cf68a8 100644 --- a/.github/workflows/pr-label-bot.yml +++ b/.github/workflows/pr-label-bot.yml @@ -1,13 +1,6 @@ name: PR Label Bot -on: - pull_request_target: - types: - - opened - - reopened - issue_comment: - types: - - created +on: {} permissions: contents: read diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 70a89ecbbd8..30cbdd47545 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -9,17 +9,7 @@ name: Publish to draft release # `RELEASE_PUBLISHER` repo variable (set to "SoftFever"). To allow someone else, # change that variable: gh variable set RELEASE_PUBLISHER --body "". -on: - workflow_dispatch: - inputs: - run_id: - description: 'Run ID of the "Build all" workflow to pull binaries from (the number in the Actions run URL)' - required: true - type: string - tag: - description: 'Tag of the draft release to upload to (e.g. v2.4.0)' - required: true - type: string +on: {} permissions: contents: write # upload release assets diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index d5fe5a35d22..c5c984149fa 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -1,15 +1,4 @@ -on: - push: - paths: - - '**.sh' - - 'scripts/linux.d/*' - pull_request: - paths: - - '**.sh' - - 'scripts/linux.d/*' - schedule: - - cron: '55 7 * * *' # run once a day near midnight US Pacific time - workflow_dispatch: # allows for manual dispatch +on: {} name: "Shellcheck" permissions: {} diff --git a/.github/workflows/update-translation.yml b/.github/workflows/update-translation.yml index 983e418b5b6..334622e65cc 100644 --- a/.github/workflows/update-translation.yml +++ b/.github/workflows/update-translation.yml @@ -1,8 +1,5 @@ name: Update Translation Catalog -on: - # schedule: - # - cron: 0 0 * * 1 - workflow_dispatch: +on: {} jobs: update_translation: diff --git a/.github/workflows/winget_updater.yml b/.github/workflows/winget_updater.yml index 45d029c5a2a..b620f1196fc 100644 --- a/.github/workflows/winget_updater.yml +++ b/.github/workflows/winget_updater.yml @@ -1,7 +1,6 @@ name: Publish to WinGet -on: - release: - types: [ released ] +on: {} + jobs: publish: runs-on: windows-latest