name: Build Mac AppleSilicon on: push: branches: - main paths: - 'src/**' - '**/CMakeLists.txt' - 'version.inc' - 'bbl/**' - 'resources/**' pull_request: branches: - main paths: - 'src/**' - '**/CMakeLists.txt' - 'version.inc' - 'bbl/**' - 'resources/**' jobs: build_osx_arm64: name: Build Mac AppleSilicon 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_arm64 - run: mkdir -p ${{ github.workspace }}/deps/build_arm64/OrcaSlicer_dep_arm64 # - name: build deps # id: cache_deps # uses: actions/cache@v3 # env: # cache-name: ${{ runner.os }}-cache-orcaslicer_deps_arm64 # with: # path: ${{ github.workspace }}/deps/build/OrcaSlicer_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/2023.08.2/OrcaSlicer_dep_mac_arm64_06-08-2023.tar.gz tar -zxfOrcaSlicer_dep_mac_arm64_06-08-2023.tar.gz -C ${{ github.workspace }}/deps/build_arm64 chown -R $(id -u):$(id -g) ${{ github.workspace }}/deps/build_arm64/OrcaSlicer_dep_arm64 ls -l ${{ github.workspace }}/deps/build_arm64/OrcaSlicer_dep_arm64 rm OrcaSlicer_dep_mac_arm64_06-08-2023.tar.gz - name: Build studio working-directory: ${{ github.workspace }} run: | ./build_release_macos.sh -s -n -a arm64 - name: Sign app working-directory: ${{ github.workspace }} if: github.event_name != 'pull_request' env: BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} CERTIFICATE_ID: ${{ secrets.MACOS_CERTIFICATE_ID }} run: | CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH security create-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH security set-keychain-settings -lut 21600 $KEYCHAIN_PATH security unlock-keychain -p $KEYCHAIN_PASSWORD $KEYCHAIN_PATH security import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_PATH security list-keychain -d user -s $KEYCHAIN_PATH security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $P12_PASSWORD $KEYCHAIN_PATH codesign --deep --force --verbose --sign "$CERTIFICATE_ID" ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer.app - name: Pack app working-directory: ${{ github.workspace }} run: | export ver=$(grep '^#define SoftFever_VERSION' ./build_arm64/src/libslic3r/libslic3r_version.h | cut -d ' ' -f3) ver="_V${ver//\"}" cd ${{ github.workspace }}/build_arm64/OrcaSlicer zip -FSrq OrcaSlicer${ver}_Mac_AppleSilicon_signed.zip ./OrcaSlicer.app # (wip: staple failed, error 65) # - name: Notarize the app # run: | # cd ${{ github.workspace }}/build_arm64/OrcaSlicer # xcrun notarytool store-credentials "notarytool-profile" --apple-id "${{ secrets.APPLE_DEV_ACCOUNT }}" --team-id "${{ secrets.TEAM_ID }}" --password "${{ secrets.APP_PWD }}" # ditto -c -k --keepParent "OrcaSlicer.app" "OrcaSlicer.zip" # xcrun notarytool submit "OrcaSlicer.zip" --keychain-profile "notarytool-profile" --wait # xcrun stapler staple OrcaSlicer.app # zip -FSrq OrcaSlicer_Mac_notarized.zip OrcaSlicer.app - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: OrcaSlicer_Mac_AppleSilicon path: ${{ github.workspace }}/build_arm64/OrcaSlicer/OrcaSlicer*.zip