Skip to content

Commit a6d5a5f

Browse files
committed
universal macOS
1 parent e566db8 commit a6d5a5f

File tree

2 files changed

+131
-122
lines changed

2 files changed

+131
-122
lines changed

.github/workflows/build.yml

-122
Original file line numberDiff line numberDiff line change
@@ -403,125 +403,3 @@ jobs:
403403
name: void-darwin-${{ matrix.arch }}-hash
404404
path: ${{ env.SIGNED_DOTAPP_DIR }}/Void-UpdJSON-darwin-${{ matrix.arch }}.json
405405

406-
create-universal-macos:
407-
needs: build-macos
408-
runs-on: macos-latest-large
409-
if: ${{ github.event_name != 'pull_request' && github.repository == 'voideditor/void' }}
410-
steps:
411-
- name: Checkout
412-
uses: actions/checkout@v3
413-
414-
- name: Download x64 DMG
415-
uses: actions/download-artifact@v4
416-
with:
417-
name: void-darwin-x64-dmg
418-
path: .build/darwin-x64
419-
420-
- name: Download arm64 DMG
421-
uses: actions/download-artifact@v4
422-
with:
423-
name: void-darwin-arm64-dmg
424-
path: .build/darwin-arm64
425-
426-
- name: Download x64 App
427-
uses: actions/download-artifact@v4
428-
with:
429-
name: void-darwin-x64-rawapp
430-
path: .build/darwin-x64-app
431-
432-
- name: Download arm64 App
433-
uses: actions/download-artifact@v4
434-
with:
435-
name: void-darwin-arm64-rawapp
436-
path: .build/darwin-arm64-app
437-
438-
- name: Create Universal App working dir
439-
run: |
440-
mkdir -p .build/darwin-universal/{x64,arm64,universal}
441-
442-
- name: Extract Apps
443-
run: |
444-
unzip -o .build/darwin-x64-app/Void-RawApp-darwin-x64.zip -d .build/darwin-universal/x64
445-
unzip -o .build/darwin-arm64-app/Void-RawApp-darwin-arm64.zip -d .build/darwin-universal/arm64
446-
447-
- name: Install dependencies for universal app
448-
run: |
449-
cd build/
450-
# Set npm config to use GitHub token for authentication to avoid rate limits
451-
npm config set //github.com/:_authToken=${{ github.token }}
452-
npm config set //api.github.com/:_authToken=${{ github.token }}
453-
npm config set //npm.pkg.github.com/:_authToken=${{ github.token }}
454-
# Configure npm to use the GitHub token for all requests to github.com domains
455-
npm config set @microsoft:registry https://npm.pkg.github.com
456-
npm config set @vscode:registry https://npm.pkg.github.com
457-
# Increase network timeout to handle slow connections
458-
npm config set fetch-timeout 300000
459-
npm config set fetch-retry-mintimeout 20000
460-
npm config set fetch-retry-maxtimeout 120000
461-
462-
npm install
463-
npm install -g create-dmg
464-
npm run compile
465-
466-
467-
- name: Create Universal App
468-
run: |
469-
# Script to create universal binary
470-
cd build/darwin
471-
node create-universal-app.js \
472-
"$(pwd)/../../.build/darwin-universal/arm64/Void.app" \
473-
"$(pwd)/../../.build/darwin-universal/x64/Void.app" \
474-
"$(pwd)/../../.build/darwin-universal/universal/Void.app"
475-
476-
- name: Setup Node.js
477-
uses: actions/setup-node@v3
478-
with:
479-
node-version-file: '.nvmrc'
480-
481-
- name: Create Universal DMG
482-
run: |
483-
cd .build/darwin-universal/universal
484-
create-dmg --volname "Void Installer" Void.app . || true
485-
GENERATED_DMG=$(ls *.dmg)
486-
mv "${GENERATED_DMG}" "../../Void-Installer-darwin-universal.dmg"
487-
cd ../..
488-
shasum -a 256 Void-Installer-darwin-universal.dmg > Void-Installer-darwin-universal.dmg.sha256
489-
490-
- name: Upload Universal DMG
491-
uses: actions/upload-artifact@v4
492-
with:
493-
name: void-darwin-universal
494-
path: |
495-
.build/Void-Installer-darwin-universal.dmg
496-
.build/Void-Installer-darwin-universal.dmg.sha256
497-
498-
create-release:
499-
needs: [build-linux, build-linux-arm64, build-windows, build-windows-arm64, build-macos, create-universal-macos]
500-
runs-on: ubuntu-latest
501-
if: startsWith(github.ref, 'refs/tags/v')
502-
steps:
503-
- name: Download all artifacts
504-
uses: actions/download-artifact@v4
505-
with:
506-
path: release-artifacts
507-
508-
- name: Create GitHub Release
509-
uses: softprops/action-gh-release@v1
510-
with:
511-
files: |
512-
release-artifacts/void-linux-x64/void-linux-x64.tar.gz
513-
release-artifacts/void-linux-x64/void-linux-x64.tar.gz.sha256
514-
release-artifacts/void-linux-arm64/void-linux-arm64.tar.gz
515-
release-artifacts/void-linux-arm64/void-linux-arm64.tar.gz.sha256
516-
release-artifacts/void-win32-x64/void-win32-x64.zip
517-
release-artifacts/void-win32-x64/void-win32-x64.zip.sha256
518-
release-artifacts/void-win32-arm64/void-win32-arm64.zip
519-
release-artifacts/void-win32-arm64/void-win32-arm64.zip.sha256
520-
release-artifacts/void-darwin-x64-dmg/Void-Installer-darwin-x64.dmg
521-
release-artifacts/void-darwin-x64-dmg/Void-Installer-darwin-x64.dmg.sha256
522-
release-artifacts/void-darwin-arm64-dmg/Void-Installer-darwin-arm64.dmg
523-
release-artifacts/void-darwin-arm64-dmg/Void-Installer-darwin-arm64.dmg.sha256
524-
release-artifacts/void-darwin-universal/Void-Installer-darwin-universal.dmg
525-
release-artifacts/void-darwin-universal/Void-Installer-darwin-universal.dmg.sha256
526-
draft: true
527-
generate_release_notes: true

.github/workflows/test.yml

+131
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
name: Create Universal MacOS
2+
3+
on:
4+
push:
5+
branches: [ main, release/*, github-workflow ]
6+
pull_request:
7+
branches: [ main ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
create-universal-macos:
12+
runs-on: macos-latest-large
13+
if: ${{ github.event_name != 'pull_request' && github.repository == 'voideditor/void' }}
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v3
17+
18+
- name: Download x64 DMG
19+
uses: actions/download-artifact@v4
20+
with:
21+
name: void-darwin-x64-dmg
22+
path: .build/darwin-x64
23+
24+
- name: Download arm64 DMG
25+
uses: actions/download-artifact@v4
26+
with:
27+
name: void-darwin-arm64-dmg
28+
path: .build/darwin-arm64
29+
30+
- name: Download x64 App
31+
uses: actions/download-artifact@v4
32+
with:
33+
name: void-darwin-x64-rawapp
34+
path: .build/darwin-x64-app
35+
36+
- name: Download arm64 App
37+
uses: actions/download-artifact@v4
38+
with:
39+
name: void-darwin-arm64-rawapp
40+
path: .build/darwin-arm64-app
41+
42+
- name: Create Universal App working dir
43+
run: |
44+
mkdir -p .build/darwin-universal/{x64,arm64,universal}
45+
46+
- name: Extract Apps
47+
run: |
48+
unzip -o .build/darwin-x64-app/Void-RawApp-darwin-x64.zip -d .build/darwin-universal/x64
49+
unzip -o .build/darwin-arm64-app/Void-RawApp-darwin-arm64.zip -d .build/darwin-universal/arm64
50+
51+
- name: Install dependencies for universal app
52+
run: |
53+
cd build/
54+
# Set npm config to use GitHub token for authentication to avoid rate limits
55+
npm config set //github.com/:_authToken=${{ github.token }}
56+
npm config set //api.github.com/:_authToken=${{ github.token }}
57+
npm config set //npm.pkg.github.com/:_authToken=${{ github.token }}
58+
# Configure npm to use the GitHub token for all requests to github.com domains
59+
npm config set @microsoft:registry https://npm.pkg.github.com
60+
npm config set @vscode:registry https://npm.pkg.github.com
61+
# Increase network timeout to handle slow connections
62+
npm config set fetch-timeout 300000
63+
npm config set fetch-retry-mintimeout 20000
64+
npm config set fetch-retry-maxtimeout 120000
65+
66+
npm install
67+
npm install -g create-dmg
68+
npm run compile
69+
70+
71+
- name: Create Universal App
72+
run: |
73+
# Script to create universal binary
74+
cd build/darwin
75+
node create-universal-app.js \
76+
"$(pwd)/../../.build/darwin-universal/arm64/Void.app" \
77+
"$(pwd)/../../.build/darwin-universal/x64/Void.app" \
78+
"$(pwd)/../../.build/darwin-universal/universal/Void.app"
79+
80+
- name: Setup Node.js
81+
uses: actions/setup-node@v3
82+
with:
83+
node-version-file: '.nvmrc'
84+
85+
- name: Create Universal DMG
86+
run: |
87+
cd .build/darwin-universal/universal
88+
create-dmg --volname "Void Installer" Void.app . || true
89+
GENERATED_DMG=$(ls *.dmg)
90+
mv "${GENERATED_DMG}" "../../Void-Installer-darwin-universal.dmg"
91+
cd ../..
92+
shasum -a 256 Void-Installer-darwin-universal.dmg > Void-Installer-darwin-universal.dmg.sha256
93+
94+
- name: Upload Universal DMG
95+
uses: actions/upload-artifact@v4
96+
with:
97+
name: void-darwin-universal
98+
path: |
99+
.build/Void-Installer-darwin-universal.dmg
100+
.build/Void-Installer-darwin-universal.dmg.sha256
101+
102+
create-release:
103+
needs: [create-universal-macos]
104+
runs-on: ubuntu-latest
105+
if: startsWith(github.ref, 'refs/tags/v')
106+
steps:
107+
- name: Download all artifacts
108+
uses: actions/download-artifact@v4
109+
with:
110+
path: release-artifacts
111+
112+
- name: Create GitHub Release
113+
uses: softprops/action-gh-release@v1
114+
with:
115+
files: |
116+
release-artifacts/void-linux-x64/void-linux-x64.tar.gz
117+
release-artifacts/void-linux-x64/void-linux-x64.tar.gz.sha256
118+
release-artifacts/void-linux-arm64/void-linux-arm64.tar.gz
119+
release-artifacts/void-linux-arm64/void-linux-arm64.tar.gz.sha256
120+
release-artifacts/void-win32-x64/void-win32-x64.zip
121+
release-artifacts/void-win32-x64/void-win32-x64.zip.sha256
122+
release-artifacts/void-win32-arm64/void-win32-arm64.zip
123+
release-artifacts/void-win32-arm64/void-win32-arm64.zip.sha256
124+
release-artifacts/void-darwin-x64-dmg/Void-Installer-darwin-x64.dmg
125+
release-artifacts/void-darwin-x64-dmg/Void-Installer-darwin-x64.dmg.sha256
126+
release-artifacts/void-darwin-arm64-dmg/Void-Installer-darwin-arm64.dmg
127+
release-artifacts/void-darwin-arm64-dmg/Void-Installer-darwin-arm64.dmg.sha256
128+
release-artifacts/void-darwin-universal/Void-Installer-darwin-universal.dmg
129+
release-artifacts/void-darwin-universal/Void-Installer-darwin-universal.dmg.sha256
130+
draft: true
131+
generate_release_notes: true

0 commit comments

Comments
 (0)