Skip to content

Commit 7471b0c

Browse files
authored
Merge pull request #1635 from scottjasso/scottjasso/universal
Build universal binary for Mac
2 parents 10f393c + d794b7b commit 7471b0c

File tree

5 files changed

+26
-66
lines changed

5 files changed

+26
-66
lines changed

.github/workflows/release.yml

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -37,40 +37,22 @@ jobs:
3737
macos:
3838
name: Build - MacOS
3939
runs-on: macos-latest
40-
steps:
41-
- name: Check out code
42-
uses: actions/checkout@v3
43-
- name: Set up cargo
44-
uses: actions-rust-lang/setup-rust-toolchain@v1
45-
- name: Cargo Cache
46-
uses: Swatinem/rust-cache@v2
47-
- name: Compile and package Volta
48-
run: ./ci/build-macos-x86_64.sh volta-macos
49-
- name: Upload release artifact
50-
uses: actions/upload-artifact@v3
51-
with:
52-
name: macos
53-
path: target/release/volta-macos.tar.gz
54-
55-
macos-aarch64:
56-
name: Build - MacOS (ARM)
57-
runs-on: macos-latest
5840
steps:
5941
- name: Check out code
6042
uses: actions/checkout@v3
6143
- name: Set up cargo
6244
uses: actions-rust-lang/setup-rust-toolchain@v1
6345
with:
64-
target: aarch64-apple-darwin
46+
target: aarch64-apple-darwin,x86_64-apple-darwin
6547
- name: Cargo Cache
6648
uses: Swatinem/rust-cache@v2
6749
- name: Compile and package Volta
68-
run: ./ci/build-macos-arm.sh volta-macos-aarch64
50+
run: ./ci/build-macos.sh volta-macos
6951
- name: Upload release artifact
7052
uses: actions/upload-artifact@v3
7153
with:
72-
name: macos-aarch64
73-
path: target/aarch64-apple-darwin/release/volta-macos-aarch64.tar.gz
54+
name: macos
55+
path: target/universal-apple-darwin/release/volta-macos.tar.gz
7456

7557
windows:
7658
name: Build - Windows
@@ -107,7 +89,6 @@ jobs:
10789
needs:
10890
- linux
10991
- macos
110-
- macos-aarch64
11192
- windows
11293
if: github.event_name == 'push'
11394
steps:
@@ -128,11 +109,6 @@ jobs:
128109
with:
129110
name: macos
130111
path: release
131-
- name: Fetch MacOS (ARM) artifact
132-
uses: actions/download-artifact@v2
133-
with:
134-
name: macos-aarch64
135-
path: release
136112
- name: Fetch Windows installer
137113
uses: actions/download-artifact@v2
138114
with:
@@ -172,15 +148,6 @@ jobs:
172148
asset_path: ./release/volta-macos.tar.gz
173149
asset_name: volta-${{ steps.release_info.outputs.version }}-macos.tar.gz
174150
asset_content_type: application/gzip
175-
- name: Upload MacOS (ARM) artifact
176-
uses: actions/upload-release-asset@v1
177-
env:
178-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
179-
with:
180-
upload_url: ${{ steps.create_release.outputs.upload_url }}
181-
asset_path: ./release/volta-macos-aarch64.tar.gz
182-
asset_name: volta-${{ steps.release_info.outputs.version }}-macos-aarch64.tar.gz
183-
asset_content_type: application/gzip
184151
- name: Upload Windows installer
185152
uses: actions/upload-release-asset@v1
186153
env:

ci/build-macos-arm.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

ci/build-macos-x86_64.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

ci/build-macos.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
echo "Building Volta"
6+
7+
MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --release --target=aarch64-apple-darwin
8+
MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --release --target=x86_64-apple-darwin
9+
10+
echo "Packaging Binaries"
11+
12+
mkdir -p target/universal-apple-darwin/release
13+
14+
for exe in volta volta-shim volta-migrate
15+
do
16+
lipo -create -output target/universal-apple-darwin/release/$exe target/x86_64-apple-darwin/release/$exe target/aarch64-apple-darwin/release/$exe
17+
done
18+
19+
cd target/universal-apple-darwin/release
20+
21+
tar -zcvf "$1.tar.gz" volta volta-shim volta-migrate

dev/unix/volta-install.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,7 @@ parse_os_info() {
135135
fi
136136
;;
137137
Darwin)
138-
if [ "$(uname -m)" == "arm64" ]; then
139-
echo "macos-aarch64"
140-
else
141-
echo "macos"
142-
fi
138+
echo "macos"
143139
;;
144140
*)
145141
return 1

0 commit comments

Comments
 (0)