Skip to content

Commit

Permalink
CICD (SoftFever#167)
Browse files Browse the repository at this point in the history
CICD
  • Loading branch information
SoftFever authored Jan 12, 2023
1 parent 43f4288 commit 96c861f
Show file tree
Hide file tree
Showing 14 changed files with 581 additions and 84 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: BambuStudio-SoftFever
name: Build Linux

on: [push, pull_request]

Expand All @@ -20,13 +20,19 @@ jobs:
- name: Fix permissions
shell: bash
run: sudo chown $USER -R ./
- name: Build Bambu Studio dependencies using BuildLinux.sh
shell: bash
run: ./BuildLinux.sh -dsr
- name: Build Bambu Studio AppImage using BuildLinux.sh
shell: bash
run: ./BuildLinux.sh -ir
- uses: actions/upload-artifact@v3
- name: build deps
id: cache_deps
uses: actions/cache@v3
env:
cache-name: ${{ runner.os }}-cache-bambustudio_deps_x64
with:
name: AppImage
path: './build/BambuStudio_ubu64.AppImage'
path: ${{ github.workspace }}/deps/build/destdir
key: build-${{ env.cache-name }}

- if: ${{ steps.cache_deps.outputs.cache-hit != 'true' }}
name: build deps
working-directory: ${{ github.workspace }}
continue-on-error: true
run: ./BuildLinux.sh -dsr


51 changes: 51 additions & 0 deletions .github/workflows/build_mac_arm64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Build Mac arm64

on: [pull_request, push]

jobs:
build_win64:
name: Build Mac arm64
runs-on: macos-12

steps:
- uses: actions/checkout@v3

- name: Install tools
run: |
brew install cmake git gettext zstd
- run: mkdir -p ${{ github.workspace }}/deps/build
# - run: mkdir -p ${{ github.workspace }}/deps/build/BambuStudio_dep

# - name: build deps
# id: cache_deps
# uses: actions/cache@v3
# env:
# cache-name: ${{ runner.os }}-cache-bambustudio_deps_arm64
# with:
# path: ${{ github.workspace }}/deps/build/BambuStudio_dep
# key: build-${{ env.cache-name }}

# - if: ${{ steps.cache_deps.outputs.cache-hit != 'true' }}
# name: build deps
# working-directory: ${{ github.workspace }}
# continue-on-error: true
# run: ./build_release_macos.sh -d -a arm64
- name: Download and extract deps
working-directory: ${{ github.workspace }}
run: |
curl -LJO https://github.com/SoftFever/FileSharing/releases/download/2/BambuStudio_dep_arm64.tar.gz
tar -zxvf BambuStudio_dep_arm64.tar.gz -C ${{ github.workspace }}/deps/build
chown -R $(id -u):$(id -g) ${{ github.workspace }}/deps/build/BambuStudio_dep
ls -l ${{ github.workspace }}/deps/build/BambuStudio_dep
rm BambuStudio_dep_arm64.tar.gz
- name: Build studio
working-directory: ${{ github.workspace }}
run: ./build_release_macos.sh -s -n -a arm64

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: BambuStudio-SoftFever_Mac
path: ${{ github.workspace }}/build/BambuStudio-SoftFever/BambuStudio-SoftFever*.zip
42 changes: 42 additions & 0 deletions .github/workflows/build_mac_x64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build Mac x64

on: [pull_request, push]

jobs:
build_win64:
name: Build Mac x64
runs-on: macos-latest

steps:
- uses: actions/checkout@v3

- name: Install tools
run: |
brew install cmake git gettext zstd
- run: mkdir -p ${{ github.workspace }}/deps/build
- run: mkdir -p ${{ github.workspace }}/deps/build/BambuStudio_dep

- name: build deps
id: cache_deps
uses: actions/cache@v3
env:
cache-name: ${{ runner.os }}-cache-bambustudio_deps_x64
with:
path: ${{ github.workspace }}/deps/build/BambuStudio_dep
key: build-${{ env.cache-name }}

- if: ${{ steps.cache_deps.outputs.cache-hit != 'true' }}
name: build deps
working-directory: ${{ github.workspace }}
continue-on-error: true
run: ./build_release_macos.sh -d -a x86_64

- name: Build studio
working-directory: ${{ github.workspace }}
run: ./build_release_macos.sh -s -n -a x86_64

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: BambuStudio-SoftFever_Mac
path: ${{ github.workspace }}/build/BambuStudio-SoftFever/BambuStudio-SoftFever*.zip
58 changes: 58 additions & 0 deletions .github/workflows/build_win.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Build Win64

on: [pull_request,push]

jobs:
build_win64:
name: Build Win64
runs-on: windows-2019

steps:
- uses: actions/checkout@v3
- uses: ilammy/msvc-dev-cmd@v1
# - name: Install perl
# run: |
# choco install strawberryperl
- run: mkdir ${{ github.workspace }}/deps/build
- run: mkdir ${{ github.workspace }}/deps/build/BambuStudio_dep
- name: download deps
shell: powershell
run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/SoftFever/FileSharing/releases/download/2/BambuStudio_dep.zip", "$env:temp\BambuStudio_dep.zip")'
- name: extract deps
working-directory: ${{ github.workspace }}/deps/build
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" x %temp%\BambuStudio_dep.zip'

- run: dir "${{ github.workspace }}\deps\build\BambuStudio_dep"

# - name: build deps
# id: cache_deps
# uses: actions/cache@v3
# env:
# cache-name: ${{ runner.os }}-cache-bambustudio_deps
# with:
# path: ${{ github.workspace }}/deps/build/BambuStudio_dep
# key: ${{ runner.os }}-build-${{ env.cache-name }}

# - if: ${{ steps.cache_deps.outputs.cache-hit != 'true' }}
# name: build deps
# working-directory: ${{ github.workspace }}
# continue-on-error: true
# run: .\build_release.bat deps

# - run: Get-ChildItem ${{ github.workspace }}/deps/build/ -Exclude BambuStudio_dep | Remove-Item -Recurse -Force

- name: Build studio
working-directory: ${{ github.workspace }}
run: .\build_release.bat studio

- name: pack app
working-directory: ${{ github.workspace }}/build
shell: cmd
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip BambuStudio-SoftFever_dev_build.zip ${{ github.workspace }}/build/BambuStudio-SoftFever'

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: BambuStudio-SoftFever_Win64
path: ${{ github.workspace }}/build/BambuStudio-SoftFever_dev_build.zip
17 changes: 13 additions & 4 deletions build_release.bat
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,21 @@ cd deps
mkdir build
cd build
set DEPS=%CD%/BambuStudio_dep
@REM cmake ../ -G "Visual Studio 16 2019" -DDESTDIR="%CD%/BambuStudio_dep" -DCMAKE_BUILD_TYPE=Release
@REM cmake --build . --config Release --target ALL_BUILD -- -m
if "%1"=="studio" (
GOTO :studio
)
echo "building deps.."
cmake ../ -G "Visual Studio 16 2019" -DDESTDIR="%CD%/BambuStudio_dep" -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --target ALL_BUILD -- -m

if "%1"=="deps" exit /b 0

:studio
echo "building studio..."
cd %WP%
mkdir build
cd build

cmake .. -G "Visual Studio 16 2019" -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="%DEPS%/usr/local" -DCMAKE_INSTALL_PREFIX="./BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DWIN10SDK_PATH="C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0"
@REM cmake --build . --config Release --target ALL_BUILD -- -m
@REM cmake --build . --target install --config Release
cmake --build . --config Release --target ALL_BUILD -- -m
cmake --build . --target install --config Release
68 changes: 62 additions & 6 deletions build_release_macos.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,66 @@
#!/bin/sh

while getopts ":a:sdhn" opt; do
case ${opt} in
d )
export BUILD_TARGET="deps"
;;
a )
export ARCH="$OPTARG"
;;
s )
export BUILD_TARGET="studio"
;;
n )
export NIGHTLY_BUILD="1"
;;
h ) echo "Usage: ./build_release_macos.sh [-d]"
echo " -d: Build deps only"
echo " -a: Set ARCHITECTURE (arm64 or x86_64)"
echo " -s: Build studio only"
echo " -n: Nightly build"
exit 0
;;
esac
done

if [ -z "$ARCH" ]
then
export ARCH=$(uname -m)
fi

echo "Arch: $ARCH"
echo "BUILD_TARGET: $BUILD_TARGET"

brew --prefix libiconv
brew --prefix zstd
export LIBRARY_PATH=$LIBRARY_PATH:$(brew --prefix zstd)/lib/

WD="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd $WD/deps
mkdir -p build
cd build
DEPS=$PWD/BambuStudio_dep
mkdir -p $DEPS
cmake ../ -DDESTDIR="$DEPS" -DOPENSSL_ARCH="darwin64-$(uname -m)-cc" -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release --target all
if [ "studio." != $BUILD_TARGET. ];
then
echo "building deps..."
echo "cmake ../ -DDESTDIR=$DEPS -DOPENSSL_ARCH=darwin64-${ARCH}-cc -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH}"
cmake ../ -DDESTDIR="$DEPS" -DOPENSSL_ARCH="darwin64-${ARCH}-cc" -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES:STRING=${ARCH}
cmake --build . --config Release --target all
fi


if [ "deps." == "$BUILD_TARGET". ];
then
exit 0
fi

cd $WD
mkdir -p build
cd build
cmake .. -GXcode -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON
echo "building studio..."
cmake .. -GXcode -DBBL_RELEASE_TO_PUBLIC=1 -DCMAKE_PREFIX_PATH="$DEPS/usr/local" -DCMAKE_INSTALL_PREFIX="$PWD/BambuStudio-SoftFever" -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH="$DEPS/usr/local" -DCMAKE_MACOSX_BUNDLE=ON -DCMAKE_OSX_ARCHITECTURES=${ARCH}
cmake --build . --config Release --target ALL_BUILD
mkdir -p BambuStudio-SoftFever
cd BambuStudio-SoftFever
Expand All @@ -21,7 +70,14 @@ resources_path=$(readlink ./BambuStudio-SoftFever.app/Contents/Resources)
rm ./BambuStudio-SoftFever.app/Contents/Resources
cp -R $resources_path ./BambuStudio-SoftFever.app/Contents/Resources
# extract version
ver=$(grep '^#define SoftFever_VERSION' ../src/libslic3r/libslic3r_version.h | cut -d ' ' -f3)
ver="${ver//\"}"
zip -FSr BambuStudio-SoftFever_V${ver}_Mac_$(uname -m).zip BambuStudio-SoftFever.app
export ver="_dev"
echo $PWD
if [ "1." != "$NIGHTLY_BUILD". ];
then
ver=$(grep '^#define SoftFever_VERSION' ../src/libslic3r/libslic3r_version.h | cut -d ' ' -f3)
ver="_V${ver//\"}"
fi


zip -FSr BambuStudio-SoftFever${ver}_Mac_${ARCH}.zip BambuStudio-SoftFever.app

54 changes: 37 additions & 17 deletions deps/Blosc/Blosc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,43 @@ else()
set(_build_static ON)
endif()

bambustudio_add_cmake_project(Blosc
#URL https://github.com/Blosc/c-blosc/archive/refs/tags/v1.17.0.zip
#URL_HASH SHA256=7463a1df566704f212263312717ab2c36b45d45cba6cd0dccebf91b2cc4b4da9
URL https://github.com/tamasmeszaros/c-blosc/archive/refs/heads/v1.17.0_tm.zip
URL_HASH SHA256=dcb48bf43a672fa3de6a4b1de2c4c238709dad5893d1e097b8374ad84b1fc3b3
DEPENDS ${ZLIB_PKG}
# Patching upstream does not work this way with git version 2.28 installed on mac worker
# PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/blosc-mods.patch
CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_SHARED=${_build_shared}
-DBUILD_STATIC=${_build_static}
-DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF
-DPREFER_EXTERNAL_ZLIB=ON
)

if(IS_CROSS_COMPILE AND APPLE)
bambustudio_add_cmake_project(Blosc
#URL https://github.com/Blosc/c-blosc/archive/refs/tags/v1.17.0.zip
#URL_HASH SHA256=7463a1df566704f212263312717ab2c36b45d45cba6cd0dccebf91b2cc4b4da9
URL https://github.com/tamasmeszaros/c-blosc/archive/refs/heads/v1.17.0_tm.zip
URL_HASH SHA256=dcb48bf43a672fa3de6a4b1de2c4c238709dad5893d1e097b8374ad84b1fc3b3
DEPENDS ${ZLIB_PKG}
# Patching upstream does not work this way with git version 2.28 installed on mac worker
# PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/blosc-mods.patch
CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_SHARED=${_build_shared}
-DBUILD_STATIC=${_build_static}
-DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF
-DPREFER_EXTERNAL_ZLIB=ON
-DDEACTIVATE_SSE2=ON
-DDEACTIVATE_AVX2=ON
)
else()
bambustudio_add_cmake_project(Blosc
#URL https://github.com/Blosc/c-blosc/archive/refs/tags/v1.17.0.zip
#URL_HASH SHA256=7463a1df566704f212263312717ab2c36b45d45cba6cd0dccebf91b2cc4b4da9
URL https://github.com/tamasmeszaros/c-blosc/archive/refs/heads/v1.17.0_tm.zip
URL_HASH SHA256=dcb48bf43a672fa3de6a4b1de2c4c238709dad5893d1e097b8374ad84b1fc3b3
DEPENDS ${ZLIB_PKG}
# Patching upstream does not work this way with git version 2.28 installed on mac worker
# PATCH_COMMAND ${GIT_EXECUTABLE} apply --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/blosc-mods.patch
CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_SHARED=${_build_shared}
-DBUILD_STATIC=${_build_static}
-DBUILD_TESTS=OFF
-DBUILD_BENCHMARKS=OFF
-DPREFER_EXTERNAL_ZLIB=ON
)
endif()
if (MSVC)
add_debug_dep(dep_Blosc)
endif ()
Loading

0 comments on commit 96c861f

Please sign in to comment.