mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-30 22:32:07 +00:00
Skip arm64 Linux and Windows builds on self-hosted runners
This commit is contained in:
50
.github/workflows/build_all.yml
vendored
50
.github/workflows/build_all.yml
vendored
@@ -57,17 +57,13 @@ jobs:
|
|||||||
build_linux:
|
build_linux:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
# Build both arches on every event (PRs included), through the same
|
# SELF_HOSTED skips arm64 (no arm self-hosted server). amd64's empty arch
|
||||||
# build_check_cache -> build_deps -> build_orca chain (the AppImage).
|
# is load-bearing: it keeps the historical 'linux-clang' deps cache key and
|
||||||
# aarch64 always uses the GitHub-hosted arm runner (there is no arm
|
# the unsuffixed asset names.
|
||||||
# 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:
|
matrix:
|
||||||
include:
|
include: ${{ fromJSON(vars.SELF_HOSTED
|
||||||
- arch: ""
|
&& '[{"arch":"","os":"orca-lnx-server"}]'
|
||||||
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
|
|| '[{"arch":"","os":"ubuntu-24.04"},{"arch":"aarch64","os":"ubuntu-24.04-arm"}]') }}
|
||||||
- arch: "aarch64"
|
|
||||||
os: ubuntu-24.04-arm
|
|
||||||
# Don't run scheduled builds on forks:
|
# Don't run scheduled builds on forks:
|
||||||
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
||||||
uses: ./.github/workflows/build_check_cache.yml
|
uses: ./.github/workflows/build_check_cache.yml
|
||||||
@@ -80,18 +76,16 @@ jobs:
|
|||||||
name: Build Windows ${{ matrix.arch }}
|
name: Build Windows ${{ matrix.arch }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
# SELF_HOSTED skips arm64 (the self-hosted Windows server is x64-only).
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include: ${{ fromJSON(vars.SELF_HOSTED
|
||||||
- arch: x64
|
&& '[{"arch":"x64","os":"orca-win-server"}]'
|
||||||
os: windows-latest
|
|| '[{"arch":"x64","os":"windows-latest"},{"arch":"arm64","os":"windows-11-arm"}]') }}
|
||||||
- arch: arm64
|
|
||||||
os: windows-11-arm
|
|
||||||
# Don't run scheduled builds on forks:
|
# Don't run scheduled builds on forks:
|
||||||
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
||||||
uses: ./.github/workflows/build_check_cache.yml
|
uses: ./.github/workflows/build_check_cache.yml
|
||||||
with:
|
with:
|
||||||
# Self-hosted runner is x64-only; ARM64 always uses the GitHub-hosted runner.
|
os: ${{ matrix.os }}
|
||||||
os: ${{ (matrix.arch == 'x64' && vars.SELF_HOSTED) && 'orca-win-server' || matrix.os }}
|
|
||||||
arch: ${{ matrix.arch }}
|
arch: ${{ matrix.arch }}
|
||||||
build-deps-only: ${{ inputs.build-deps-only || false }}
|
build-deps-only: ${{ inputs.build-deps-only || false }}
|
||||||
force-build: ${{ github.event_name == 'schedule' }}
|
force-build: ${{ github.event_name == 'schedule' }}
|
||||||
@@ -134,7 +128,7 @@ jobs:
|
|||||||
unit_tests_linux_aarch64:
|
unit_tests_linux_aarch64:
|
||||||
name: Linux aarch64
|
name: Linux aarch64
|
||||||
needs: build_linux
|
needs: build_linux
|
||||||
if: ${{ !cancelled() && success() }}
|
if: ${{ !cancelled() && success() && !vars.SELF_HOSTED }}
|
||||||
uses: ./.github/workflows/unit_tests.yml
|
uses: ./.github/workflows/unit_tests.yml
|
||||||
with:
|
with:
|
||||||
os: ubuntu-24.04-arm
|
os: ubuntu-24.04-arm
|
||||||
@@ -150,7 +144,7 @@ jobs:
|
|||||||
unit_tests_windows_arm64:
|
unit_tests_windows_arm64:
|
||||||
name: Windows arm64
|
name: Windows arm64
|
||||||
needs: build_windows
|
needs: build_windows
|
||||||
if: ${{ !cancelled() && success() }}
|
if: ${{ !cancelled() && success() && !vars.SELF_HOSTED }}
|
||||||
uses: ./.github/workflows/unit_tests.yml
|
uses: ./.github/workflows/unit_tests.yml
|
||||||
with:
|
with:
|
||||||
os: windows-11-arm
|
os: windows-11-arm
|
||||||
@@ -165,24 +159,24 @@ jobs:
|
|||||||
os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }}
|
os: ${{ vars.SELF_HOSTED && 'orca-macos-arm64' || 'macos-14' }}
|
||||||
artifact: ${{ github.sha }}-tests-macos-arm64
|
artifact: ${{ github.sha }}-tests-macos-arm64
|
||||||
test-dir: build/arm64/tests
|
test-dir: build/arm64/tests
|
||||||
# Slice a two-colour cube through every shipped printer with this PR's engine
|
# Slice a two-colour cube through every shipped printer so all custom g-code
|
||||||
# so all custom g-code (change_filament_gcode, machine start/end, etc.) is
|
# (change_filament_gcode, machine start/end, etc.) is expanded - catches
|
||||||
# expanded - catches slicing regressions the static profile checks and unit
|
# slicing regressions the static profile checks and unit tests can't see.
|
||||||
# tests can't see. Profile-only PRs are covered by check_profiles.yml (nightly
|
# Profile-only PRs are covered by check_profiles.yml's nightly binary; this
|
||||||
# binary); this covers src/engine PRs with the PR-built binary. Runs in
|
# covers src/engine PRs with the PR-built binary.
|
||||||
# parallel off build_linux's artifact so it doesn't lengthen the build leg.
|
|
||||||
slice_check_linux:
|
slice_check_linux:
|
||||||
name: Slice check (Linux aarch64)
|
name: Slice check (Linux ${{ vars.SELF_HOSTED && 'x86_64' || 'aarch64' }})
|
||||||
needs: build_linux
|
needs: build_linux
|
||||||
if: ${{ !cancelled() && success() }}
|
if: ${{ !cancelled() && success() }}
|
||||||
runs-on: ubuntu-24.04-arm
|
# Follows whichever Linux leg built the validator.
|
||||||
|
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04-arm' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v7
|
uses: actions/checkout@v7
|
||||||
- name: Download profile validator
|
- name: Download profile validator
|
||||||
uses: actions/download-artifact@v8
|
uses: actions/download-artifact@v8
|
||||||
with:
|
with:
|
||||||
name: ${{ github.sha }}-profile-validator-linux-aarch64
|
name: ${{ github.sha }}-profile-validator-linux-${{ vars.SELF_HOSTED && 'x86_64' || 'aarch64' }}
|
||||||
path: validator-bin
|
path: validator-bin
|
||||||
- name: Validate slice (expand custom g-code)
|
- name: Validate slice (expand custom g-code)
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
|
|||||||
14
.github/workflows/build_orca.yml
vendored
14
.github/workflows/build_orca.yml
vendored
@@ -508,17 +508,15 @@ jobs:
|
|||||||
retention-days: 5
|
retention-days: 5
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
# Ship the freshly-built validator so the parallel slice_check_linux job
|
# Ship the freshly-built validator so slice_check_linux (build_all.yml)
|
||||||
# (build_all.yml) can slice-sweep the shipped profiles with this PR's
|
# can slice-sweep the shipped profiles with this PR's engine. Taken from
|
||||||
# engine. Taken from the aarch64 leg so the sweep runs on arm64 (its
|
# the aarch64 leg so the sweep also exercises the arm build; x86_64 on
|
||||||
# GitHub-hosted runner is free, and it also exercises the arm build).
|
# SELF_HOSTED, which skips arm64.
|
||||||
# Stable sha-based name mirrors the tests artifact above so the
|
|
||||||
# downstream job downloads it by exact name.
|
|
||||||
- name: Upload profile validator (for slice check)
|
- name: Upload profile validator (for slice check)
|
||||||
if: runner.os == 'Linux' && inputs.arch == 'aarch64'
|
if: ${{ runner.os == 'Linux' && (vars.SELF_HOSTED && inputs.arch != 'aarch64' || !vars.SELF_HOSTED && inputs.arch == 'aarch64') }}
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
name: ${{ github.sha }}-profile-validator-linux-aarch64
|
name: ${{ github.sha }}-profile-validator-linux-${{ inputs.arch == 'aarch64' && 'aarch64' || 'x86_64' }}
|
||||||
overwrite: true
|
overwrite: true
|
||||||
path: ./build/src/Release/OrcaSlicer_profile_validator
|
path: ./build/src/Release/OrcaSlicer_profile_validator
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|||||||
Reference in New Issue
Block a user