8686 path : src/target/release/packager/*.msi
8787 retention-days : 30
8888
89- build-macos :
90- name : Build macOS Installers
91- runs-on : macos-latest
89+ build-macos-x86_64 :
90+ name : Build macOS Installers (x86_64)
91+ runs-on : macos-15-intel
9292
9393 steps :
9494 - name : Checkout code
@@ -108,7 +108,7 @@ jobs:
108108 - name : Install Rust toolchain
109109 uses : dtolnay/rust-toolchain@stable
110110 with :
111- targets : x86_64-apple-darwin, aarch64-apple-darwin
111+ targets : x86_64-apple-darwin
112112
113113 - name : Set up Apple notarization key
114114 run : |
@@ -144,26 +144,80 @@ jobs:
144144 APPLE_API_KEY : ${{ secrets.GWS_APPLE_API_KEY }}
145145 APPLE_API_ISSUER : ${{ secrets.GWS_APPLE_API_ISSUER }}
146146
147+ - name : Upload DMG installer (x86_64)
148+ uses : actions/upload-artifact@v4
149+ with :
150+ name : ggsql-macos-dmg-x86_64
151+ path : src/target/release/packager/*.dmg
152+ retention-days : 30
153+
154+ build-macos-aarch64 :
155+ name : Build macOS Installers (aarch64)
156+ runs-on : macos-15
157+
158+ steps :
159+ - name : Checkout code
160+ uses : actions/checkout@v4
161+
162+ - name : Install Node.js
163+ uses : actions/setup-node@v4
164+ with :
165+ node-version : " 22"
166+
167+ - name : Install tree-sitter-cli
168+ run : npm install -g tree-sitter-cli
169+
170+ - name : Install ODBC
171+ run : brew install unixodbc
172+
173+ - name : Install Rust toolchain
174+ uses : dtolnay/rust-toolchain@stable
175+ with :
176+ targets : aarch64-apple-darwin
177+
178+ - name : Set up Apple notarization key
179+ run : |
180+ mkdir -p ~/.private_keys
181+ echo -n "$APPLE_API_KEY_BASE64" | base64 --decode -o ~/.private_keys/AuthKey_${APPLE_API_KEY}.p8
182+ chmod 600 ~/.private_keys/AuthKey_${APPLE_API_KEY}.p8
183+ env :
184+ APPLE_API_KEY_BASE64 : ${{ secrets.GWS_APPLE_API_KEY_BASE64 }}
185+ APPLE_API_KEY : ${{ secrets.GWS_APPLE_API_KEY }}
186+
187+ - name : Configure macOS installer signing
188+ env :
189+ APPLE_SIGN_IDENTITY : ${{ secrets.GWS_APPLE_SIGN_IDENTITY }}
190+ run : |
191+ cat <<EOF >> src/Cargo.toml
192+
193+ [package.metadata.packager.macos]
194+ signing-identity = "${APPLE_SIGN_IDENTITY}"
195+ entitlements = "entitlements.plist"
196+ EOF
197+
198+ - name : Install cargo-packager
199+ run : cargo install cargo-packager --locked
200+
147201 - name : Build ggsql binary (aarch64)
148- run : cargo build --release --bin ggsql --bin ggsql-jupyter --target aarch64-apple-darwin
202+ run : cargo build --release --bin ggsql --bin ggsql-jupyter
149203
150204 - name : Build DMG installer (aarch64)
151- run : cargo packager --release --target aarch64-apple-darwin -- formats dmg
205+ run : cargo packager --release --formats dmg
152206 env :
153207 APPLE_CERTIFICATE : ${{ secrets.GWS_APPLE_SIGN_P12 }}
154208 APPLE_CERTIFICATE_PASSWORD : ${{ secrets.GWS_APPLE_SIGN_PW }}
155209 APPLE_API_KEY : ${{ secrets.GWS_APPLE_API_KEY }}
156210 APPLE_API_ISSUER : ${{ secrets.GWS_APPLE_API_ISSUER }}
157211
158- - name : Upload DMG installers
212+ - name : Upload DMG installer (aarch64)
159213 uses : actions/upload-artifact@v4
160214 with :
161- name : ggsql-macos-dmg
215+ name : ggsql-macos-dmg-aarch64
162216 path : src/target/release/packager/*.dmg
163217 retention-days : 30
164218
165- build-linux :
166- name : Build Linux Installers
219+ build-linux-x86_64 :
220+ name : Build Linux Installers (x86_64)
167221 runs-on : ubuntu-latest
168222
169223 steps :
@@ -197,16 +251,64 @@ jobs:
197251 - name : Install cargo-packager
198252 run : cargo install cargo-packager --locked
199253
200- - name : Build ggsql binary
254+ - name : Build ggsql binary (x86_64)
255+ run : cargo build --release --bin ggsql --bin ggsql-jupyter
256+
257+ - name : Build Debian package (x86_64)
258+ run : cargo packager --release --formats deb
259+
260+ - name : Upload Debian package (x86_64)
261+ uses : actions/upload-artifact@v4
262+ with :
263+ name : ggsql-linux-deb-x86_64
264+ path : src/target/release/packager/*.deb
265+ retention-days : 30
266+
267+ build-linux-aarch64 :
268+ name : Build Linux Installers (aarch64)
269+ runs-on : ubuntu-24.04-arm
270+
271+ steps :
272+ - name : Checkout code
273+ uses : actions/checkout@v4
274+
275+ - name : Install Node.js
276+ uses : actions/setup-node@v4
277+ with :
278+ node-version : " 22"
279+
280+ - name : Install tree-sitter-cli
281+ run : npm install -g tree-sitter-cli
282+
283+ - name : Install Rust toolchain
284+ uses : dtolnay/rust-toolchain@stable
285+ with :
286+ targets : aarch64-unknown-linux-gnu
287+
288+ - name : Install system dependencies
289+ run : |
290+ sudo apt-get update
291+ sudo apt-get install -y \
292+ libgtk-3-dev \
293+ libwebkit2gtk-4.1-dev \
294+ libappindicator3-dev \
295+ librsvg2-dev \
296+ patchelf \
297+ unixodbc-dev
298+
299+ - name : Install cargo-packager
300+ run : cargo install cargo-packager --locked
301+
302+ - name : Build ggsql binary (aarch64)
201303 run : cargo build --release --bin ggsql --bin ggsql-jupyter
202304
203- - name : Build Debian package
305+ - name : Build Debian package (aarch64)
204306 run : cargo packager --release --formats deb
205307
206- - name : Upload Debian package
308+ - name : Upload Debian package (aarch64)
207309 uses : actions/upload-artifact@v4
208310 with :
209- name : ggsql-linux-deb
311+ name : ggsql-linux-deb-aarch64
210312 path : src/target/release/packager/*.deb
211313 retention-days : 30
212314
@@ -265,7 +367,7 @@ jobs:
265367
266368 create-release :
267369 name : Create GitHub Release
268- needs : [build-windows, build-macos, build-linux, build-cargo]
370+ needs : [build-windows, build-macos-x86_64 , build-macos-aarch64, build- linux-x86_64, build-linux-aarch64 , build-cargo]
269371 runs-on : ubuntu-latest
270372 permissions :
271373 contents : write
0 commit comments