Revert "Extend self-hosted runner support to all platforms"

This commit is contained in:
SoftFever
2026-03-19 00:07:12 +08:00
committed by GitHub
parent 7565b279ad
commit dc90dda976
4 changed files with 83 additions and 79 deletions

View File

@@ -55,7 +55,7 @@ jobs:
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:
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} os: ubuntu-24.04
build-deps-only: ${{ inputs.build-deps-only || false }} build-deps-only: ${{ inputs.build-deps-only || false }}
secrets: inherit secrets: inherit
build_windows: build_windows:
@@ -63,7 +63,7 @@ jobs:
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:
os: ${{ vars.SELF_HOSTED && 'orca-win-server' || 'windows-latest' }} os: windows-latest
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' }}
secrets: inherit secrets: inherit
@@ -95,7 +95,7 @@ jobs:
secrets: inherit secrets: inherit
unit_tests: unit_tests:
name: Unit Tests name: Unit Tests
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }} runs-on: ubuntu-24.04
needs: build_linux needs: build_linux
if: ${{ !cancelled() && success() }} if: ${{ !cancelled() && success() }}
steps: steps:
@@ -107,7 +107,6 @@ jobs:
scripts scripts
tests tests
- name: Apt-Install Dependencies - name: Apt-Install Dependencies
if: ${{ !vars.SELF_HOSTED }}
uses: ./.github/actions/apt-install-deps uses: ./.github/actions/apt-install-deps
- name: Restore Test Artifact - name: Restore Test Artifact
uses: actions/download-artifact@v7 uses: actions/download-artifact@v7
@@ -149,19 +148,17 @@ jobs:
variant: variant:
- arch: x86_64 - arch: x86_64
runner: ubuntu-24.04 runner: ubuntu-24.04
self-hosted-runner: orca-lnx-server
- arch: aarch64 - arch: aarch64
runner: ubuntu-24.04-arm runner: ubuntu-24.04-arm
# Don't run scheduled builds on forks; skip aarch64 on self-hosted (no ARM runner) # Don't run scheduled builds on forks:
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') && (!vars.SELF_HOSTED || matrix.variant.self-hosted-runner) }} if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
runs-on: ${{ vars.SELF_HOSTED && matrix.variant.self-hosted-runner || matrix.variant.runner }} runs-on: ${{ matrix.variant.runner }}
env: env:
date: date:
ver: ver:
ver_pure: ver_pure:
steps: steps:
- name: "Remove unneeded stuff to free disk space" - name: "Remove unneeded stuff to free disk space"
if: ${{ !vars.SELF_HOSTED }}
run: run:
rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" /opt/hostedtoolcache1/* rm -rf /usr/local/lib/android/* /usr/share/dotnet/* /opt/ghc1/* "/usr/local/share/boost1/*" /opt/hostedtoolcache1/*
- uses: actions/checkout@v6 - uses: actions/checkout@v6
@@ -218,7 +215,7 @@ jobs:
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/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 - name: Deploy Flatpak to nightly release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main'
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}

View File

@@ -30,16 +30,16 @@ jobs:
with: with:
lfs: 'true' lfs: 'true'
- name: set outputs - name: set outputs
id: set_outputs id: set_outputs
env: env:
# Keep macOS cache keys and paths architecture-specific. # Keep macOS cache keys and paths architecture-specific.
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || 'linux') }} cache-os: ${{ contains(inputs.os, 'macos') && format('macos-{0}', inputs.arch) || inputs.os }}
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }} dep-folder-name: ${{ contains(inputs.os, 'macos') && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}} output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
run: | run: |
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }} 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 }} echo cache-path=${{ github.workspace }}/deps/build${{ env.dep-folder-name }} >> ${{ env.output-cmd }}
- name: load cache - name: load cache
id: cache_deps id: cache_deps

View File

@@ -49,34 +49,32 @@ jobs:
cmakeVersion: "~3.28.0" # use most recent 3.28.x version cmakeVersion: "~3.28.0" # use most recent 3.28.x version
- name: setup dev on Windows - name: setup dev on Windows
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: microsoft/setup-msbuild@v2 uses: microsoft/setup-msbuild@v2
- name: Get the date on Ubuntu and macOS - name: Get the date on Ubuntu and macOS
if: runner.os != 'Windows' if: inputs.os != 'windows-latest'
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
shell: bash shell: bash
- name: Get the date on Windows - name: Get the date on Windows
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
run: echo "date=$(Get-Date -Format 'yyyyMMdd')" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8 run: echo "date=$(Get-Date -Format 'yyyyMMdd')" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
shell: pwsh shell: pwsh
# Build Dependencies # Build Dependencies
- name: Build on Windows - name: Build on Windows
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
if (-not "${{ vars.SELF_HOSTED }}") { choco install strawberryperl
choco install strawberryperl
}
.\build_release_vs.bat deps .\build_release_vs.bat deps
.\build_release_vs.bat pack .\build_release_vs.bat pack
shell: pwsh cd ${{ github.workspace }}/deps/build
- name: Build on Mac ${{ inputs.arch }} - name: Build on Mac ${{ inputs.arch }}
if: runner.os == 'macOS' if: contains(inputs.os, 'macos')
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
if [ -z "${{ vars.SELF_HOSTED }}" ]; then if [ -z "${{ vars.SELF_HOSTED }}" ]; then
@@ -88,11 +86,11 @@ jobs:
- name: Apt-Install Dependencies - name: Apt-Install Dependencies
if: runner.os == 'Linux' && !vars.SELF_HOSTED if: inputs.os == 'ubuntu-24.04'
uses: ./.github/actions/apt-install-deps uses: ./.github/actions/apt-install-deps
- name: Build on Ubuntu - name: Build on Ubuntu
if: runner.os == 'Linux' if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
mkdir -p ${{ github.workspace }}/deps/build/destdir mkdir -p ${{ github.workspace }}/deps/build/destdir
@@ -103,23 +101,23 @@ jobs:
# Upload Artifacts # Upload Artifacts
# - name: Upload Mac ${{ inputs.arch }} artifacts # - name: Upload Mac ${{ inputs.arch }} artifacts
# if: runner.os == 'macOS' # if: contains(inputs.os, 'macos')
# uses: actions/upload-artifact@v6 # uses: actions/upload-artifact@v6
# with: # with:
# name: OrcaSlicer_dep_mac_${{ env.date }} # name: OrcaSlicer_dep_mac_${{ env.date }}
# path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.tar.gz # path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.tar.gz
- name: Upload Windows artifacts - name: Upload Windows artifacts
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_dep_win64_${{ env.date }} name: OrcaSlicer_dep_win64_${{ env.date }}
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip
- name: Upload Ubuntu artifacts - name: Upload Ubuntu artifacts
if: runner.os == 'Linux' && !env.ACT if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env: env:
ubuntu-ver: '2404' ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }} name: OrcaSlicer_dep_ubuntu_${{ env.ubuntu-ver }}_${{ env.date }}

View File

@@ -26,8 +26,6 @@ jobs:
date: date:
ver: ver:
ver_pure: ver_pure:
ubuntu-ver: '2404'
ubuntu-ver-str: '_Ubuntu2404'
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }} ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
steps: steps:
@@ -37,7 +35,7 @@ jobs:
lfs: 'true' lfs: 'true'
- name: load cached deps - name: load cached deps
if: ${{ !(runner.os == 'macOS' && inputs.macos-combine-only) }} if: ${{ !(contains(inputs.os, 'macos') && inputs.macos-combine-only) }}
uses: actions/cache@v5 uses: actions/cache@v5
with: with:
path: ${{ inputs.cache-path }} path: ${{ inputs.cache-path }}
@@ -49,7 +47,7 @@ jobs:
cmakeVersion: "~3.28.0" # use most recent 3.28.x version cmakeVersion: "~3.28.0" # use most recent 3.28.x version
- name: Get the version and date on Ubuntu and macOS - name: Get the version and date on Ubuntu and macOS
if: runner.os != 'Windows' if: inputs.os != 'windows-latest'
run: | run: |
ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2) ver_pure=$(grep 'set(SoftFever_VERSION' version.inc | cut -d '"' -f2)
if [[ "${{ github.event_name }}" == "pull_request" ]]; then if [[ "${{ github.event_name }}" == "pull_request" ]]; then
@@ -66,7 +64,7 @@ jobs:
shell: bash shell: bash
- name: Get the version and date on Windows - name: Get the version and date on Windows
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
run: | run: |
$date = Get-Date -Format 'yyyyMMdd' $date = Get-Date -Format 'yyyyMMdd'
$ref = "${{ github.ref }}" $ref = "${{ github.ref }}"
@@ -93,7 +91,7 @@ jobs:
# Mac # Mac
- name: Install tools mac - name: Install tools mac
if: runner.os == 'macOS' && !inputs.macos-combine-only if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
run: | run: |
if [ -z "${{ vars.SELF_HOSTED }}" ]; then if [ -z "${{ vars.SELF_HOSTED }}" ]; then
brew install libtool brew install libtool
@@ -102,7 +100,7 @@ jobs:
mkdir -p ${{ github.workspace }}/deps/build/${{ inputs.arch }} mkdir -p ${{ github.workspace }}/deps/build/${{ inputs.arch }}
- name: Free disk space - name: Free disk space
if: runner.os == 'macOS' && !inputs.macos-combine-only && !vars.SELF_HOSTED if: contains(inputs.os, 'macos') && !inputs.macos-combine-only && !vars.SELF_HOSTED
run: | run: |
df -hI /dev/disk3s1s1 df -hI /dev/disk3s1s1
sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "Xcode_15.4.app" -exec rm -rf {} + sudo find /Applications -maxdepth 1 -type d -name "Xcode_*.app" ! -name "Xcode_15.4.app" -exec rm -rf {} +
@@ -110,40 +108,40 @@ jobs:
df -hI /dev/disk3s1s1 df -hI /dev/disk3s1s1
- name: Build slicer mac - name: Build slicer mac
if: runner.os == 'macOS' && !inputs.macos-combine-only if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15 ./build_release_macos.sh -s -n -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a ${{ inputs.arch }} -t 10.15
- name: Pack macOS app bundle ${{ inputs.arch }} - name: Pack macOS app bundle ${{ inputs.arch }}
if: runner.os == 'macOS' && !inputs.macos-combine-only if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
tar -czvf OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz -C build/${{ inputs.arch }} OrcaSlicer tar -czvf OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz -C build/${{ inputs.arch }} OrcaSlicer
- name: Upload macOS app bundle ${{ inputs.arch }} - name: Upload macOS app bundle ${{ inputs.arch }}
if: runner.os == 'macOS' && !inputs.macos-combine-only if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }} name: OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}
path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz path: ${{ github.workspace }}/OrcaSlicer_Mac_bundle_${{ inputs.arch }}_${{ github.sha }}.tar.gz
- name: Download macOS arm64 app bundle - name: Download macOS arm64 app bundle
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: actions/download-artifact@v7 uses: actions/download-artifact@v7
with: with:
name: OrcaSlicer_Mac_bundle_arm64_${{ github.sha }} name: OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}
path: ${{ github.workspace }}/mac_bundles/arm64 path: ${{ github.workspace }}/mac_bundles/arm64
- name: Download macOS x86_64 app bundle - name: Download macOS x86_64 app bundle
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: actions/download-artifact@v7 uses: actions/download-artifact@v7
with: with:
name: OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }} name: OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}
path: ${{ github.workspace }}/mac_bundles/x86_64 path: ${{ github.workspace }}/mac_bundles/x86_64
- name: Extract macOS app bundles - name: Extract macOS app bundles
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
mkdir -p build/arm64 build/x86_64 mkdir -p build/arm64 build/x86_64
@@ -153,13 +151,13 @@ jobs:
tar -xzvf "$x86_bundle" -C "${{ github.workspace }}/build/x86_64" tar -xzvf "$x86_bundle" -C "${{ github.workspace }}/build/x86_64"
- name: Build universal mac app bundle - name: Build universal mac app bundle
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15 ./build_release_macos.sh -u -x ${{ !vars.SELF_HOSTED && '-1' || '' }} -a universal -t 10.15
- name: Delete intermediate per-arch artifacts - name: Delete intermediate per-arch artifacts
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: geekyeggo/delete-artifact@v5 uses: geekyeggo/delete-artifact@v5
with: with:
name: | name: |
@@ -168,7 +166,7 @@ jobs:
# Thanks to RaySajuuk, it's working now # Thanks to RaySajuuk, it's working now
- name: Sign app and notary - name: Sign app and notary
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && contains(inputs.os, 'macos') && inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
env: env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
@@ -222,7 +220,7 @@ jobs:
fi fi
- name: Create DMG without notary - name: Create DMG without notary
if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only if: github.ref != 'refs/heads/main' && contains(inputs.os, 'macos') && inputs.macos-combine-only
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
run: | run: |
mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg mkdir -p ${{ github.workspace }}/build/universal/OrcaSlicer_dmg
@@ -241,14 +239,14 @@ jobs:
fi fi
- name: Upload artifacts mac - name: Upload artifacts mac
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_Mac_universal_${{ env.ver }} name: OrcaSlicer_Mac_universal_${{ env.ver }}
path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
- name: Upload OrcaSlicer_profile_validator DMG mac - name: Upload OrcaSlicer_profile_validator DMG mac
if: runner.os == 'macOS' && inputs.macos-combine-only if: contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_profile_validator_Mac_universal_DMG_${{ env.ver }} name: OrcaSlicer_profile_validator_Mac_universal_DMG_${{ env.ver }}
@@ -256,7 +254,7 @@ jobs:
if-no-files-found: ignore if-no-files-found: ignore
- name: Deploy Mac release - name: Deploy Mac release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -267,7 +265,7 @@ jobs:
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
- name: Deploy Mac OrcaSlicer_profile_validator DMG release - name: Deploy Mac OrcaSlicer_profile_validator DMG release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && contains(inputs.os, 'macos') && inputs.macos-combine-only
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -279,17 +277,17 @@ jobs:
# Windows # Windows
- name: setup MSVC - name: setup MSVC
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: microsoft/setup-msbuild@v2 uses: microsoft/setup-msbuild@v2
- name: Install nsis - name: Install nsis
if: runner.os == 'Windows' && !vars.SELF_HOSTED if: inputs.os == 'windows-latest'
run: | run: |
dir "C:/Program Files (x86)/Windows Kits/10/Include" dir "C:/Program Files (x86)/Windows Kits/10/Include"
choco install nsis choco install nsis
- name: Build slicer Win - name: Build slicer Win
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
working-directory: ${{ github.workspace }} working-directory: ${{ github.workspace }}
env: env:
WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\' WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
@@ -297,53 +295,53 @@ jobs:
run: .\build_release_vs.bat slicer run: .\build_release_vs.bat slicer
- name: Create installer Win - name: Create installer Win
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
working-directory: ${{ github.workspace }}/build working-directory: ${{ github.workspace }}/build
run: | run: |
cpack -G NSIS cpack -G NSIS
- name: Pack app - name: Pack app
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
working-directory: ${{ github.workspace }}/build working-directory: ${{ github.workspace }}/build
shell: cmd shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer' run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer'
- name: Pack PDB - name: Pack PDB
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
working-directory: ${{ github.workspace }}/build/src/Release working-directory: ${{ github.workspace }}/build/src/Release
shell: cmd shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb' run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb'
- name: Upload artifacts Win zip - name: Upload artifacts Win zip
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_Windows_${{ env.ver }}_portable name: OrcaSlicer_Windows_${{ env.ver }}_portable
path: ${{ github.workspace }}/build/OrcaSlicer path: ${{ github.workspace }}/build/OrcaSlicer
- name: Upload artifacts Win installer - name: Upload artifacts Win installer
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_Windows_${{ env.ver }} name: OrcaSlicer_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/OrcaSlicer*.exe path: ${{ github.workspace }}/build/OrcaSlicer*.exe
- name: Upload artifacts Win PDB - name: Upload artifacts Win PDB
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: PDB name: PDB
path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z
- name: Upload OrcaSlicer_profile_validator Win - name: Upload OrcaSlicer_profile_validator Win
if: runner.os == 'Windows' if: inputs.os == 'windows-latest'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_profile_validator_Windows_${{ env.ver }} name: OrcaSlicer_profile_validator_Windows_${{ env.ver }}
path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
- name: Deploy Windows release portable - name: Deploy Windows release portable
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -354,7 +352,7 @@ jobs:
max_releases: 1 max_releases: 1
- name: Deploy Windows release installer - name: Deploy Windows release installer
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -365,7 +363,7 @@ jobs:
max_releases: 1 max_releases: 1
- name: Deploy Windows OrcaSlicer_profile_validator release - name: Deploy Windows OrcaSlicer_profile_validator release
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -377,14 +375,16 @@ jobs:
# Ubuntu # Ubuntu
- name: Apt-Install Dependencies - name: Apt-Install Dependencies
if: runner.os == 'Linux' && !vars.SELF_HOSTED if: inputs.os == 'ubuntu-24.04'
uses: ./.github/actions/apt-install-deps uses: ./.github/actions/apt-install-deps
# Tests must built at the same time as the slicer; # Tests must built at the same time as the slicer;
# if you untangle them feel free to separate them here too # if you untangle them feel free to separate them here too
- name: Build slicer and tests - name: Build slicer and tests
if: runner.os == 'Linux' if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
shell: bash shell: bash
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
run: | run: |
./build_linux.sh -istr ./build_linux.sh -istr
mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage mv -n ./build/OrcaSlicer_Linux_V${{ env.ver_pure }}.AppImage ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
@@ -394,7 +394,7 @@ jobs:
# Use tar because upload-artifacts won't always preserve directory structure # Use tar because upload-artifacts won't always preserve directory structure
# and doesn't preserve file permissions # and doesn't preserve file permissions
- name: Upload Test Artifact - name: Upload Test Artifact
if: runner.os == 'Linux' if: inputs.os == 'ubuntu-24.04'
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: ${{ github.sha }}-tests name: ${{ github.sha }}-tests
@@ -404,7 +404,7 @@ jobs:
if-no-files-found: error if-no-files-found: error
- name: Build orca_custom_preset_tests - name: Build orca_custom_preset_tests
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04'
working-directory: ${{ github.workspace }}/build/src/Release working-directory: ${{ github.workspace }}/build/src/Release
shell: bash shell: bash
run: | run: |
@@ -413,21 +413,28 @@ jobs:
zip -r orca_custom_preset_tests.zip user/ zip -r orca_custom_preset_tests.zip user/
- name: Upload artifacts Ubuntu - name: Upload artifacts Ubuntu
if: ${{ ! env.ACT && runner.os == 'Linux' }} if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env:
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }} name: OrcaSlicer_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage' path: './build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage'
- name: Upload OrcaSlicer_profile_validator Ubuntu - name: Upload OrcaSlicer_profile_validator Ubuntu
if: ${{ ! env.ACT && runner.os == 'Linux' }} if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
env:
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: OrcaSlicer_profile_validator_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }} name: OrcaSlicer_profile_validator_Linux_ubuntu_${{ env.ubuntu-ver }}_${{ env.ver }}
path: './build/src/Release/OrcaSlicer_profile_validator' path: './build/src/Release/OrcaSlicer_profile_validator'
- name: Deploy Ubuntu release - name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }} if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -437,7 +444,7 @@ jobs:
asset_content_type: application/octet-stream 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 max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
- name: Deploy Ubuntu release - name: Deploy Ubuntu release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }} if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }}
uses: rickstaa/action-create-tag@v1 uses: rickstaa/action-create-tag@v1
with: with:
tag: "nightly-builds" tag: "nightly-builds"
@@ -446,7 +453,9 @@ jobs:
message: "nightly-builds" message: "nightly-builds"
- name: Deploy Ubuntu OrcaSlicer_profile_validator release - name: Deploy Ubuntu OrcaSlicer_profile_validator release
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }} if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
env:
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
@@ -457,7 +466,7 @@ jobs:
max_releases: 1 max_releases: 1
- name: Deploy orca_custom_preset_tests - name: Deploy orca_custom_preset_tests
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }} if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-24.04' }}
uses: WebFreak001/deploy-nightly@v3.2.0 uses: WebFreak001/deploy-nightly@v3.2.0
with: with:
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label} upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}