mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-18 11:02:08 +00:00
Feature/cicd selfhost2 (#12840)
# Description <!-- > Please provide a summary of the changes made in this PR. Include details such as: > * What issue does this PR address or fix? > * What new features or enhancements does this PR introduce? > * Are there any breaking changes or dependencies that need to be considered? --> # Screenshots/Recordings/Graphs <!-- > Please attach relevant screenshots to showcase the UI changes. > Please attach images that can help explain the changes. --> ## Tests <!-- > Please describe the tests that you have conducted to verify the changes made in this PR. -->
This commit is contained in:
16
.github/workflows/build_all.yml
vendored
16
.github/workflows/build_all.yml
vendored
@@ -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: ubuntu-24.04
|
os: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || '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: windows-latest
|
os: ${{ vars.SELF_HOSTED && 'orca-win-server' || '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: ubuntu-24.04
|
runs-on: ${{ vars.SELF_HOSTED && 'orca-lnx-server' || 'ubuntu-24.04' }}
|
||||||
needs: build_linux
|
needs: build_linux
|
||||||
if: ${{ !cancelled() && success() }}
|
if: ${{ !cancelled() && success() }}
|
||||||
steps:
|
steps:
|
||||||
@@ -107,6 +107,7 @@ 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
|
||||||
@@ -133,6 +134,11 @@ jobs:
|
|||||||
uses: EnricoMi/publish-unit-test-result-action@v2
|
uses: EnricoMi/publish-unit-test-result-action@v2
|
||||||
with:
|
with:
|
||||||
files: "ctest_results.xml"
|
files: "ctest_results.xml"
|
||||||
|
- name: Delete Test Artifact
|
||||||
|
if: success()
|
||||||
|
uses: geekyeggo/delete-artifact@v5
|
||||||
|
with:
|
||||||
|
name: ${{ github.sha }}-tests
|
||||||
flatpak:
|
flatpak:
|
||||||
name: "Flatpak"
|
name: "Flatpak"
|
||||||
container:
|
container:
|
||||||
@@ -152,8 +158,8 @@ jobs:
|
|||||||
runner: ubuntu-24.04
|
runner: ubuntu-24.04
|
||||||
- arch: aarch64
|
- arch: aarch64
|
||||||
runner: ubuntu-24.04-arm
|
runner: ubuntu-24.04-arm
|
||||||
# Don't run scheduled builds on forks:
|
# Don't run scheduled builds on forks; skip entirely on self-hosted runners
|
||||||
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
if: ${{ !cancelled() && !vars.SELF_HOSTED && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
||||||
runs-on: ${{ matrix.variant.runner }}
|
runs-on: ${{ matrix.variant.runner }}
|
||||||
env:
|
env:
|
||||||
date:
|
date:
|
||||||
|
|||||||
20
.github/workflows/build_check_cache.yml
vendored
20
.github/workflows/build_check_cache.yml
vendored
@@ -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: ${{ contains(inputs.os, 'macos') && format('macos-{0}', inputs.arch) || inputs.os }}
|
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || 'linux-clang') }}
|
||||||
dep-folder-name: ${{ contains(inputs.os, 'macos') && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
|
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
|
||||||
output-cmd: ${{ inputs.os == 'windows-latest' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
|
output-cmd: ${{ runner.os == 'Windows' && '$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
|
||||||
|
|||||||
52
.github/workflows/build_deps.yml
vendored
52
.github/workflows/build_deps.yml
vendored
@@ -51,32 +51,34 @@ jobs:
|
|||||||
useCloudCache: true
|
useCloudCache: true
|
||||||
|
|
||||||
- name: setup dev on Windows
|
- name: setup dev on Windows
|
||||||
if: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
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: inputs.os != 'windows-latest'
|
if: runner.os != 'Windows'
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
working-directory: ${{ github.workspace }}
|
working-directory: ${{ github.workspace }}
|
||||||
run: |
|
run: |
|
||||||
choco install strawberryperl
|
if (-not "${{ vars.SELF_HOSTED }}") {
|
||||||
|
choco install strawberryperl
|
||||||
|
}
|
||||||
.\build_release_vs.bat deps
|
.\build_release_vs.bat deps
|
||||||
.\build_release_vs.bat pack
|
.\build_release_vs.bat pack
|
||||||
cd ${{ github.workspace }}/deps/build
|
shell: pwsh
|
||||||
|
|
||||||
- name: Build on Mac ${{ inputs.arch }}
|
- name: Build on Mac ${{ inputs.arch }}
|
||||||
if: contains(inputs.os, 'macos')
|
if: runner.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,42 +90,42 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
- name: Apt-Install Dependencies
|
- name: Apt-Install Dependencies
|
||||||
if: inputs.os == 'ubuntu-24.04'
|
if: runner.os == 'Linux' && !vars.SELF_HOSTED
|
||||||
uses: ./.github/actions/apt-install-deps
|
uses: ./.github/actions/apt-install-deps
|
||||||
|
|
||||||
- name: Build on Ubuntu
|
- name: Build on Ubuntu
|
||||||
if: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
if: runner.os == 'Linux'
|
||||||
working-directory: ${{ github.workspace }}
|
working-directory: ${{ github.workspace }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ${{ github.workspace }}/deps/build/destdir
|
mkdir -p ${{ github.workspace }}/deps/build/destdir
|
||||||
./build_linux.sh -dr
|
./build_linux.sh -drlL
|
||||||
cd deps/build
|
cd deps/build
|
||||||
tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir
|
tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir
|
||||||
|
|
||||||
|
|
||||||
# Upload Artifacts
|
# Upload Artifacts
|
||||||
# - name: Upload Mac ${{ inputs.arch }} artifacts
|
# - name: Upload Mac ${{ inputs.arch }} artifacts
|
||||||
# if: contains(inputs.os, 'macos')
|
# if: runner.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: inputs.os == 'windows-latest'
|
# if: runner.os == 'Windows'
|
||||||
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: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
|
# if: runner.os == 'Linux' && !env.ACT
|
||||||
env:
|
# env:
|
||||||
ubuntu-ver: ${{ (inputs.os == 'ubuntu-20.04' && '2004') || (inputs.os == 'ubuntu-24.04' && '2404') || '' }}
|
# ubuntu-ver: '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 }}
|
||||||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
|
# path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
|
||||||
|
|
||||||
build_orca:
|
build_orca:
|
||||||
name: Build OrcaSlicer
|
name: Build OrcaSlicer
|
||||||
|
|||||||
114
.github/workflows/build_orca.yml
vendored
114
.github/workflows/build_orca.yml
vendored
@@ -26,6 +26,8 @@ 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:
|
||||||
@@ -35,7 +37,7 @@ jobs:
|
|||||||
lfs: 'true'
|
lfs: 'true'
|
||||||
|
|
||||||
- name: load cached deps
|
- name: load cached deps
|
||||||
if: ${{ !(contains(inputs.os, 'macos') && inputs.macos-combine-only) }}
|
if: ${{ !(runner.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 +51,7 @@ jobs:
|
|||||||
useCloudCache: true
|
useCloudCache: true
|
||||||
|
|
||||||
- name: Get the version and date on Ubuntu and macOS
|
- name: Get the version and date on Ubuntu and macOS
|
||||||
if: inputs.os != 'windows-latest'
|
if: runner.os != 'Windows'
|
||||||
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 +68,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Get the version and date on Windows
|
- name: Get the version and date on Windows
|
||||||
if: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
run: |
|
run: |
|
||||||
$date = Get-Date -Format 'yyyyMMdd'
|
$date = Get-Date -Format 'yyyyMMdd'
|
||||||
$ref = "${{ github.ref }}"
|
$ref = "${{ github.ref }}"
|
||||||
@@ -93,7 +95,7 @@ jobs:
|
|||||||
|
|
||||||
# Mac
|
# Mac
|
||||||
- name: Install tools mac
|
- name: Install tools mac
|
||||||
if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
|
if: runner.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 +104,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: contains(inputs.os, 'macos') && !inputs.macos-combine-only && !vars.SELF_HOSTED
|
if: runner.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,56 +112,49 @@ jobs:
|
|||||||
df -hI /dev/disk3s1s1
|
df -hI /dev/disk3s1s1
|
||||||
|
|
||||||
- name: Build slicer mac
|
- name: Build slicer mac
|
||||||
if: contains(inputs.os, 'macos') && !inputs.macos-combine-only
|
if: runner.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: contains(inputs.os, 'macos') && !inputs.macos-combine-only
|
if: runner.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: contains(inputs.os, 'macos') && !inputs.macos-combine-only
|
if: runner.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 app bundles
|
||||||
if: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.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 }}
|
pattern: OrcaSlicer_Mac_bundle_*_${{ github.sha }}
|
||||||
path: ${{ github.workspace }}/mac_bundles/arm64
|
path: ${{ github.workspace }}/mac_bundles
|
||||||
|
|
||||||
- name: Download macOS x86_64 app bundle
|
|
||||||
if: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
|
||||||
uses: actions/download-artifact@v7
|
|
||||||
with:
|
|
||||||
name: OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}
|
|
||||||
path: ${{ github.workspace }}/mac_bundles/x86_64
|
|
||||||
|
|
||||||
- name: Extract macOS app bundles
|
- name: Extract macOS app bundles
|
||||||
if: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.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
|
||||||
arm_bundle=$(find "${{ github.workspace }}/mac_bundles/arm64" -name '*.tar.gz' -print -quit)
|
arm_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_arm64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
|
||||||
x86_bundle=$(find "${{ github.workspace }}/mac_bundles/x86_64" -name '*.tar.gz' -print -quit)
|
x86_bundle=$(find "${{ github.workspace }}/mac_bundles/OrcaSlicer_Mac_bundle_x86_64_${{ github.sha }}" -name '*.tar.gz' -print -quit)
|
||||||
tar -xzvf "$arm_bundle" -C "${{ github.workspace }}/build/arm64"
|
tar -xzvf "$arm_bundle" -C "${{ github.workspace }}/build/arm64"
|
||||||
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: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.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: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.os == 'macOS' && inputs.macos-combine-only
|
||||||
uses: geekyeggo/delete-artifact@v5
|
uses: geekyeggo/delete-artifact@v5
|
||||||
with:
|
with:
|
||||||
name: |
|
name: |
|
||||||
@@ -168,7 +163,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/')) && contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.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 +217,7 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Create DMG without notary
|
- name: Create DMG without notary
|
||||||
if: github.ref != 'refs/heads/main' && contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: github.ref != 'refs/heads/main' && runner.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 +236,14 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Upload artifacts mac
|
- name: Upload artifacts mac
|
||||||
if: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.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: contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||||
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 +251,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' && contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||||
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 +262,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' && contains(inputs.os, 'macos') && inputs.macos-combine-only
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||||
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 +274,17 @@ jobs:
|
|||||||
|
|
||||||
# Windows
|
# Windows
|
||||||
- name: setup MSVC
|
- name: setup MSVC
|
||||||
if: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
uses: microsoft/setup-msbuild@v2
|
uses: microsoft/setup-msbuild@v2
|
||||||
|
|
||||||
- name: Install nsis
|
- name: Install nsis
|
||||||
if: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
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 +292,53 @@ jobs:
|
|||||||
run: .\build_release_vs.bat slicer
|
run: .\build_release_vs.bat slicer
|
||||||
|
|
||||||
- name: Create installer Win
|
- name: Create installer Win
|
||||||
if: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows'
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'windows-latest'
|
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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' && inputs.os == 'windows-latest'
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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 +349,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' && inputs.os == 'windows-latest'
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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 +360,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' && inputs.os == 'windows-latest'
|
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||||
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,18 +372,16 @@ jobs:
|
|||||||
|
|
||||||
# Ubuntu
|
# Ubuntu
|
||||||
- name: Apt-Install Dependencies
|
- name: Apt-Install Dependencies
|
||||||
if: inputs.os == 'ubuntu-24.04'
|
if: runner.os == 'Linux' && !vars.SELF_HOSTED
|
||||||
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: inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04'
|
if: runner.os == 'Linux'
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
|
||||||
ubuntu-ver-str: ${{ (inputs.os == 'ubuntu-24.04' && '_Ubuntu2404') || '' }}
|
|
||||||
run: |
|
run: |
|
||||||
./build_linux.sh -istr
|
./build_linux.sh -istrlL
|
||||||
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
|
||||||
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
chmod +x ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}_${{ env.ver }}.AppImage
|
||||||
tar -cvpf build_tests.tar build/tests
|
tar -cvpf build_tests.tar build/tests
|
||||||
@@ -396,7 +389,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: inputs.os == 'ubuntu-24.04'
|
if: runner.os == 'Linux'
|
||||||
uses: actions/upload-artifact@v6
|
uses: actions/upload-artifact@v6
|
||||||
with:
|
with:
|
||||||
name: ${{ github.sha }}-tests
|
name: ${{ github.sha }}-tests
|
||||||
@@ -406,7 +399,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' && inputs.os == 'ubuntu-24.04'
|
if: github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
|
||||||
working-directory: ${{ github.workspace }}/build/src/Release
|
working-directory: ${{ github.workspace }}/build/src/Release
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -415,28 +408,21 @@ 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 && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
|
if: ${{ ! env.ACT && runner.os == 'Linux' }}
|
||||||
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 && inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04' }}
|
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||||
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' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
|
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||||
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}
|
||||||
@@ -446,7 +432,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' && inputs.os == 'ubuntu-24.04' }}
|
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||||
uses: rickstaa/action-create-tag@v1
|
uses: rickstaa/action-create-tag@v1
|
||||||
with:
|
with:
|
||||||
tag: "nightly-builds"
|
tag: "nightly-builds"
|
||||||
@@ -455,9 +441,7 @@ 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' && (inputs.os == 'ubuntu-20.04' || inputs.os == 'ubuntu-24.04') }}
|
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||||
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}
|
||||||
@@ -468,7 +452,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' && inputs.os == 'ubuntu-24.04' }}
|
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||||
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}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
# Based on the GitHub Actions workflow in .github/workflows/build_all.yml
|
# Based on the GitHub Actions workflow in .github/workflows/build_all.yml
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
SECONDS=0
|
||||||
|
|
||||||
# Colors for output
|
# Colors for output
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
@@ -371,3 +372,6 @@ if [[ "$FORCE_CLEAN" != true ]]; then
|
|||||||
echo -e "• To force a clean build: $0 -f"
|
echo -e "• To force a clean build: $0 -f"
|
||||||
echo -e "• To clean cache manually: rm -rf $CACHE_DIR"
|
echo -e "• To clean cache manually: rm -rf $CACHE_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
elapsed=$SECONDS
|
||||||
|
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e # Exit immediately if a command exits with a non-zero status.
|
set -e # Exit immediately if a command exits with a non-zero status.
|
||||||
|
SECONDS=0
|
||||||
|
|
||||||
SCRIPT_NAME=$(basename "$0")
|
SCRIPT_NAME=$(basename "$0")
|
||||||
SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
|
SCRIPT_PATH=$(dirname "$(readlink -f "${0}")")
|
||||||
@@ -266,4 +267,7 @@ if [[ -n "${BUILD_IMAGE}" || -n "${BUILD_ORCA}" ]] ; then
|
|||||||
popd > /dev/null # build
|
popd > /dev/null # build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
elapsed=$SECONDS
|
||||||
|
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))
|
||||||
|
|
||||||
popd > /dev/null # ${SCRIPT_PATH}
|
popd > /dev/null # ${SCRIPT_PATH}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
SECONDS=0
|
||||||
|
|
||||||
while getopts ":dpa:snt:xbc:i:1Tuh" opt; do
|
while getopts ":dpa:snt:xbc:i:1Tuh" opt; do
|
||||||
case "${opt}" in
|
case "${opt}" in
|
||||||
@@ -342,3 +343,6 @@ fi
|
|||||||
if [ "1." == "$PACK_DEPS". ]; then
|
if [ "1." == "$PACK_DEPS". ]; then
|
||||||
pack_deps
|
pack_deps
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
elapsed=$SECONDS
|
||||||
|
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
@REM OrcaSlicer build script for Windows with VS auto-detect
|
@REM OrcaSlicer build script for Windows with VS auto-detect
|
||||||
@echo off
|
@echo off
|
||||||
set WP=%CD%
|
set WP=%CD%
|
||||||
|
set _START_TIME=%TIME%
|
||||||
|
|
||||||
@REM Check for Ninja Multi-Config option (-x)
|
@REM Check for Ninja Multi-Config option (-x)
|
||||||
set USE_NINJA=0
|
set USE_NINJA=0
|
||||||
@@ -73,7 +74,7 @@ if "%1"=="pack" (
|
|||||||
echo packing deps: OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip
|
echo packing deps: OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip
|
||||||
|
|
||||||
%WP%/tools/7z.exe a OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
|
%WP%/tools/7z.exe a OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
|
||||||
exit /b 0
|
goto :done
|
||||||
)
|
)
|
||||||
|
|
||||||
set debug=OFF
|
set debug=OFF
|
||||||
@@ -120,7 +121,7 @@ if "%USE_NINJA%"=="1" (
|
|||||||
)
|
)
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
if "%1"=="deps" exit /b 0
|
if "%1"=="deps" goto :done
|
||||||
|
|
||||||
:slicer
|
:slicer
|
||||||
echo "building Orca Slicer..."
|
echo "building Orca Slicer..."
|
||||||
@@ -142,3 +143,16 @@ cd ..
|
|||||||
call scripts/run_gettext.bat
|
call scripts/run_gettext.bat
|
||||||
cd %build_dir%
|
cd %build_dir%
|
||||||
cmake --build . --target install --config %build_type%
|
cmake --build . --target install --config %build_type%
|
||||||
|
|
||||||
|
:done
|
||||||
|
@echo off
|
||||||
|
for /f "tokens=1-3 delims=:.," %%a in ("%_START_TIME: =0%") do set /a "_start_s=%%a*3600+%%b*60+%%c"
|
||||||
|
for /f "tokens=1-3 delims=:.," %%a in ("%TIME: =0%") do set /a "_end_s=%%a*3600+%%b*60+%%c"
|
||||||
|
set /a "_elapsed=_end_s - _start_s"
|
||||||
|
if %_elapsed% lss 0 set /a "_elapsed+=86400"
|
||||||
|
set /a "_hours=_elapsed / 3600"
|
||||||
|
set /a "_remainder=_elapsed - _hours * 3600"
|
||||||
|
set /a "_mins=_remainder / 60"
|
||||||
|
set /a "_secs=_remainder - _mins * 60"
|
||||||
|
echo.
|
||||||
|
echo Build completed in %_hours%h %_mins%m %_secs%s
|
||||||
|
|||||||
2
deps/GMP/GMP.cmake
vendored
2
deps/GMP/GMP.cmake
vendored
@@ -65,7 +65,7 @@ else ()
|
|||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/GMP
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/GMP
|
||||||
PATCH_COMMAND git apply ${GMP_DIRECTORY_FLAG} --verbose ${CMAKE_CURRENT_LIST_DIR}/0001-GMP_GCC15.patch
|
PATCH_COMMAND git apply ${GMP_DIRECTORY_FLAG} --verbose ${CMAKE_CURRENT_LIST_DIR}/0001-GMP_GCC15.patch
|
||||||
BUILD_IN_SOURCE ON
|
BUILD_IN_SOURCE ON
|
||||||
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}" ${_gmp_build_tgt}
|
CONFIGURE_COMMAND env "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}" ${_gmp_build_tgt}
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
)
|
)
|
||||||
|
|||||||
2
deps/MPFR/MPFR.cmake
vendored
2
deps/MPFR/MPFR.cmake
vendored
@@ -31,7 +31,7 @@ else ()
|
|||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/MPFR
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/MPFR
|
||||||
BUILD_IN_SOURCE ON
|
BUILD_IN_SOURCE ON
|
||||||
CONFIGURE_COMMAND autoreconf -f -i &&
|
CONFIGURE_COMMAND autoreconf -f -i &&
|
||||||
env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR} --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR} ${_gmp_build_tgt}
|
env "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}" "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR} --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR} ${_gmp_build_tgt}
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make -j
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
DEPENDS dep_GMP
|
DEPENDS dep_GMP
|
||||||
|
|||||||
2
deps/OpenSSL/OpenSSL.cmake
vendored
2
deps/OpenSSL/OpenSSL.cmake
vendored
@@ -21,7 +21,7 @@ else()
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
|
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET})
|
||||||
else()
|
else()
|
||||||
set(_conf_cmd "./config")
|
set(_conf_cmd env "CC=${CMAKE_C_COMPILER}" "LDFLAGS=${CMAKE_EXE_LINKER_FLAGS}" "./config")
|
||||||
endif()
|
endif()
|
||||||
set(_cross_comp_prefix_line "")
|
set(_cross_comp_prefix_line "")
|
||||||
set(_make_cmd make -j${NPROC})
|
set(_make_cmd make -j${NPROC})
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# as the CI (build_all.yml).
|
# as the CI (build_all.yml).
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# ./scripts/build_flatpak_with_docker.sh [--arch <x86_64|aarch64>] [--no-debug-info]
|
# ./scripts/build_flatpak_with_docker.sh [--arch <x86_64|aarch64>] [--no-debug-info] [--pull]
|
||||||
#
|
#
|
||||||
# Requirements:
|
# Requirements:
|
||||||
# - Docker (or Podman with docker compatibility)
|
# - Docker (or Podman with docker compatibility)
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
# The resulting .flatpak bundle is placed in the project root.
|
# The resulting .flatpak bundle is placed in the project root.
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
SECONDS=0
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||||
@@ -19,9 +20,8 @@ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|||||||
# ---------- defaults ----------
|
# ---------- defaults ----------
|
||||||
ARCH="$(uname -m)"
|
ARCH="$(uname -m)"
|
||||||
NO_DEBUG_INFO=false
|
NO_DEBUG_INFO=false
|
||||||
NO_PULL=false
|
FORCE_PULL=false
|
||||||
FORCE_CLEAN=true
|
FORCE_CLEAN=true
|
||||||
PRIVILEGED=false
|
|
||||||
CONTAINER_IMAGE="ghcr.io/flathub-infra/flatpak-github-actions:gnome-49"
|
CONTAINER_IMAGE="ghcr.io/flathub-infra/flatpak-github-actions:gnome-49"
|
||||||
|
|
||||||
normalize_arch() {
|
normalize_arch() {
|
||||||
@@ -45,16 +45,18 @@ while [[ $# -gt 0 ]]; do
|
|||||||
ARCH="$2"; shift 2 ;;
|
ARCH="$2"; shift 2 ;;
|
||||||
--no-debug-info)
|
--no-debug-info)
|
||||||
NO_DEBUG_INFO=true; shift ;;
|
NO_DEBUG_INFO=true; shift ;;
|
||||||
|
--pull)
|
||||||
|
FORCE_PULL=true; shift ;;
|
||||||
--no-pull)
|
--no-pull)
|
||||||
NO_PULL=true; shift ;;
|
FORCE_PULL=false; shift ;; # kept for backward compat (now default)
|
||||||
--keep-build)
|
--keep-build)
|
||||||
FORCE_CLEAN=false; shift ;;
|
FORCE_CLEAN=false; shift ;;
|
||||||
--privileged)
|
|
||||||
PRIVILEGED=true; shift ;;
|
|
||||||
--image)
|
--image)
|
||||||
CONTAINER_IMAGE="$2"; shift 2 ;;
|
CONTAINER_IMAGE="$2"; shift 2 ;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
echo "Usage: $0 [--arch <x86_64|aarch64>] [--no-debug-info] [--no-pull] [--keep-build] [--privileged] [--image <image>]"
|
echo "Usage: $0 [--arch <x86_64|aarch64>] [--no-debug-info] [--pull] [--keep-build] [--image <image>]"
|
||||||
|
echo " --pull Force pull the container image (default: use cached, auto-pull if missing)"
|
||||||
|
echo " --no-pull Do not force pull (default, kept for backward compat)"
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown option: $1" >&2; exit 1 ;;
|
echo "Unknown option: $1" >&2; exit 1 ;;
|
||||||
@@ -91,7 +93,7 @@ echo " Arch: ${ARCH}"
|
|||||||
echo " Image: ${CONTAINER_IMAGE}"
|
echo " Image: ${CONTAINER_IMAGE}"
|
||||||
echo " Bundle: ${BUNDLE_NAME}"
|
echo " Bundle: ${BUNDLE_NAME}"
|
||||||
echo " Debug info: $([ "$NO_DEBUG_INFO" = true ] && echo "disabled" || echo "enabled")"
|
echo " Debug info: $([ "$NO_DEBUG_INFO" = true ] && echo "disabled" || echo "enabled")"
|
||||||
echo " Privileged: $([ "$PRIVILEGED" = true ] && echo "enabled" || echo "disabled")"
|
echo " Pull mode: $([ "$FORCE_PULL" = true ] && echo "force" || echo "auto (cached if available)")"
|
||||||
echo " ccache: enabled"
|
echo " ccache: enabled"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -123,9 +125,14 @@ sed "/name: OrcaSlicer/{
|
|||||||
# ---------- run build in Docker ----------
|
# ---------- run build in Docker ----------
|
||||||
DOCKER="${DOCKER:-docker}"
|
DOCKER="${DOCKER:-docker}"
|
||||||
|
|
||||||
if [ "$NO_PULL" = false ]; then
|
if [ "$FORCE_PULL" = true ]; then
|
||||||
echo "=== Pulling container image ==="
|
echo "=== Pulling container image (--pull requested) ==="
|
||||||
"$DOCKER" pull "$CONTAINER_IMAGE"
|
"$DOCKER" pull "$CONTAINER_IMAGE"
|
||||||
|
elif ! "$DOCKER" image inspect "$CONTAINER_IMAGE" &>/dev/null; then
|
||||||
|
echo "=== Pulling container image (not found locally) ==="
|
||||||
|
"$DOCKER" pull "$CONTAINER_IMAGE"
|
||||||
|
else
|
||||||
|
echo "=== Using cached container image (use --pull to update) ==="
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FORCE_CLEAN_FLAG=""
|
FORCE_CLEAN_FLAG=""
|
||||||
@@ -133,10 +140,7 @@ if [ "$FORCE_CLEAN" = true ]; then
|
|||||||
FORCE_CLEAN_FLAG="--force-clean"
|
FORCE_CLEAN_FLAG="--force-clean"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DOCKER_RUN_ARGS=(run --rm)
|
DOCKER_RUN_ARGS=(run --rm -i --privileged)
|
||||||
if [ "$PRIVILEGED" = true ]; then
|
|
||||||
DOCKER_RUN_ARGS+=(--privileged)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Pass build parameters as env vars so the inner script doesn't need
|
# Pass build parameters as env vars so the inner script doesn't need
|
||||||
# variable expansion from the outer shell (avoids quoting issues).
|
# variable expansion from the outer shell (avoids quoting issues).
|
||||||
@@ -215,4 +219,7 @@ echo "=== Flatpak bundle ready ==="
|
|||||||
echo " ${PROJECT_ROOT}/${BUNDLE_NAME}"
|
echo " ${PROJECT_ROOT}/${BUNDLE_NAME}"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Install with:"
|
echo "Install with:"
|
||||||
echo " flatpak install --user ${BUNDLE_NAME}"
|
echo " flatpak install --user ${BUNDLE_NAME}"
|
||||||
|
|
||||||
|
elapsed=$SECONDS
|
||||||
|
printf "\nBuild completed in %dh %dm %ds\n" $((elapsed/3600)) $((elapsed%3600/60)) $((elapsed%60))
|
||||||
@@ -21,6 +21,8 @@ REQUIRED_DEV_PACKAGES=(
|
|||||||
libssl-dev
|
libssl-dev
|
||||||
libtool
|
libtool
|
||||||
libudev-dev
|
libudev-dev
|
||||||
|
clang
|
||||||
|
lld
|
||||||
ninja-build
|
ninja-build
|
||||||
texinfo
|
texinfo
|
||||||
wget
|
wget
|
||||||
|
|||||||
Reference in New Issue
Block a user