diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0b0234..c889820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,8 +55,6 @@ jobs: - name: Install cargo-make run: | cargo install --force cargo-make - # - name: Run test suite - # run: cargo make test-binary --env BUILD_ARCH=aarch64-apple-darwin - name: Build run: | cargo make build-macos-arm-binary diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ede163d..afd7beb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,7 +99,7 @@ jobs: macos-intel: needs: ["extract-version"] - runs-on: macos-latest + runs-on: macos-11 steps: - uses: actions/checkout@v2 @@ -129,6 +129,49 @@ jobs: - name: Upload artifacts to Github Releases run: | gh release upload ${{ needs.extract-version.outputs.espanso_version }} Espanso-Mac-Intel.zip Espanso-Mac-Intel.zip.sha256.txt + + macos-m1: + needs: ["extract-version"] + runs-on: macos-11 + + steps: + - uses: actions/checkout@v2 + - name: Print target version + run: | + echo Using version ${{ needs.extract-version.outputs.espanso_version }} + - name: Install cargo-make + run: | + cargo install --force cargo-make + - name: Build + run: cargo make create-bundle --profile release --env BUILD_ARCH=aarch64-apple-darwin + - name: Codesign executable + env: + MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} + MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} + MACOS_CI_KEYCHAIN_PWD: ${{ secrets.MACOS_CI_KEYCHAIN_PWD }} + run: | + echo $MACOS_CERTIFICATE | base64 —decode > certificate.p12 + security create-keychain -p $MACOS_CI_KEYCHAIN_PWD build.keychain security default-keychain -s build.keychain + security unlock-keychain -p $MACOS_CI_KEYCHAIN_PWD build.keychain + security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $MACOS_CI_KEYCHAIN_PWD build.keychain + /usr/bin/codesign --force -s "Espanso CI Self-Signed" target/mac/Espanso.app -v + - name: Create ZIP archive + run: | + ditto -c -k --sequesterRsrc --keepParent target/mac/Espanso.app Espanso-Mac-M1.zip + - name: Calculate hashes + run: | + shasum -a 256 Espanso-Mac-M1.zip > Espanso-Mac-M1.zip.sha256.txt + - uses: actions/upload-artifact@v2 + name: "Upload artifacts" + with: + name: Mac M1 Artifacts + path: | + Espanso-Mac-M1.zip + Espanso-Mac-M1.zip.sha256.txt + - name: Upload artifacts to Github Releases + run: | + gh release upload ${{ needs.extract-version.outputs.espanso_version }} Espanso-Mac-M1.zip Espanso-Mac-M1.zip.sha256.txt # macos-intel: # runs-on: macos-11 diff --git a/scripts/create_bundle.sh b/scripts/create_bundle.sh index e6d119e..e1ee867 100644 --- a/scripts/create_bundle.sh +++ b/scripts/create_bundle.sh @@ -1,5 +1,11 @@ set -e +FINAL_EXEC_PATH=$EXEC_PATH + +if [ $BUILD_ARCH != "current" ]; then + FINAL_EXEC_PATH=$(echo $EXEC_PATH | sed "s/target\//target\/$BUILD_ARCH\//g") +fi + TARGET_DIR=target/mac/Espanso.app rm -Rf $TARGET_DIR @@ -15,4 +21,4 @@ sed -e "s/VERSION/$VERSION/" espanso/src/res/macos/Info.plist > $TARGET_DIR/Cont /bin/echo "APPL????" > $TARGET_DIR/Contents/PkgInfo cp -f espanso/src/res/macos/icon.icns $TARGET_DIR/Contents/Resources/icon.icns -cp -f $EXEC_PATH $TARGET_DIR/Contents/MacOS/espanso \ No newline at end of file +cp -f $FINAL_EXEC_PATH $TARGET_DIR/Contents/MacOS/espanso \ No newline at end of file