1212 osx-build :
1313 name : Build macOS
1414 runs-on : macos-latest
15+ strategy :
16+ matrix :
17+ runtime : [ osx-x64, osx-arm64 ]
1518 steps :
1619 - uses : actions/checkout@v3
1720 with :
@@ -27,15 +30,19 @@ jobs:
2730
2831 - name : Build
2932 run : |
30- dotnet build --configuration=MacRelease
33+ dotnet build src/osx/Installer.Mac/*.csproj \
34+ --configuration=MacRelease --no-self-contained \
35+ --runtime=${{ matrix.runtime }}
3136
3237 - name : Run macOS unit tests
3338 run : |
3439 dotnet test --configuration=MacRelease
3540
3641 - name : Lay out payload and symbols
3742 run : |
38- src/osx/Installer.Mac/layout.sh --configuration=MacRelease --output=payload --symbol-output=symbols
43+ src/osx/Installer.Mac/layout.sh \
44+ --configuration=MacRelease --output=payload \
45+ --symbol-output=symbols --runtime=${{ matrix.runtime }}
3946
4047 - name : Create keychain
4148 env :
5865 - name : Upload macOS artifacts
5966 uses : actions/upload-artifact@v3
6067 with :
61- name : tmp.osx -build
68+ name : tmp.${{ matrix.runtime }} -build
6269 path : |
6370 payload
6471 symbols
6774 name : Sign macOS payload
6875 # ESRP service requires signing to run on Windows
6976 runs-on : windows-latest
77+ strategy :
78+ matrix :
79+ runtime : [ osx-x64, osx-arm64 ]
7080 needs : osx-build
7181 steps :
7282 - name : Check out repository
7585 - name : Download payload
7686 uses : actions/download-artifact@v3
7787 with :
78- name : tmp.osx -build
88+ name : tmp.${{ matrix.runtime }} -build
7989
8090 - name : Zip unsigned payload
8191 shell : pwsh
@@ -109,7 +119,9 @@ jobs:
109119 APPLE_KEY_CODE : ${{ secrets.APPLE_KEY_CODE }}
110120 APPLE_SIGNING_OP_CODE : ${{ secrets.APPLE_SIGNING_OPERATION_CODE }}
111121 run : |
112- python .github\run_esrp_signing.py payload $env:APPLE_KEY_CODE $env:APPLE_SIGNING_OP_CODE --params 'Hardening' '--options=runtime'
122+ python .github\run_esrp_signing.py payload `
123+ $env:APPLE_KEY_CODE $env:APPLE_SIGNING_OP_CODE `
124+ --params 'Hardening' '--options=runtime'
113125
114126 - name : Unzip signed payload
115127 shell : pwsh
@@ -120,13 +132,16 @@ jobs:
120132 - name : Upload signed payload
121133 uses : actions/upload-artifact@v3
122134 with :
123- name : osx -payload-sign
135+ name : ${{ matrix.runtime }} -payload-sign
124136 path : |
125137 signed
126138
127139 osx-pack :
128140 name : Package macOS payload
129141 runs-on : macos-latest
142+ strategy :
143+ matrix :
144+ runtime : [ osx-x64, osx-arm64 ]
130145 needs : osx-payload-sign
131146 steps :
132147 - name : Check out repository
@@ -147,27 +162,34 @@ jobs:
147162 - name : Download signed payload
148163 uses : actions/download-artifact@v3
149164 with :
150- name : osx -payload-sign
165+ name : ${{ matrix.runtime }} -payload-sign
151166
152167 - name : Create component package
153168 run : |
154- src/osx/Installer.Mac/pack.sh --payload=payload --version=$GitBuildVersionSimple --output=components/com.microsoft.gitcredentialmanager.component.pkg
169+ src/osx/Installer.Mac/pack.sh --payload=payload \
170+ --version=$GitBuildVersionSimple \
171+ --output=components/com.microsoft.gitcredentialmanager.component.pkg
155172
156173 - name : Create product archive
157174 run : |
158- src/osx/Installer.Mac/dist.sh --package-path=components --version=$GitBuildVersionSimple --output=pkg/gcm-osx-x64-$GitBuildVersionSimple.pkg || exit 1
175+ src/osx/Installer.Mac/dist.sh --package-path=components \
176+ --version=$GitBuildVersionSimple --runtime=${{ matrix.runtime }} \
177+ --output=pkg/gcm-${{ matrix.runtime }}-$GitBuildVersionSimple.pkg || exit 1
159178
160179 - name : Upload package
161180 uses : actions/upload-artifact@v3
162181 with :
163- name : tmp.osx -pack
182+ name : tmp.${{ matrix.runtime }} -pack
164183 path : |
165184 pkg
166185
167186 osx-sign :
168187 name : Sign and notarize macOS package
169188 # ESRP service requires signing to run on Windows
170189 runs-on : windows-latest
190+ strategy :
191+ matrix :
192+ runtime : [ osx-x64, osx-arm64 ]
171193 needs : osx-pack
172194 steps :
173195 - name : Check out repository
@@ -176,7 +198,7 @@ jobs:
176198 - name : Download unsigned package
177199 uses : actions/download-artifact@v3
178200 with :
179- name : tmp.osx -pack
201+ name : tmp.${{ matrix.runtime }} -pack
180202 path : pkg
181203
182204 - name : Zip unsigned package
@@ -236,7 +258,7 @@ jobs:
236258 - name : Publish signed package
237259 uses : actions/upload-artifact@v3
238260 with :
239- name : osx -sign
261+ name : ${{ matrix.runtime }} -sign
240262 path : signed/*.pkg
241263
242264# ================================
@@ -468,8 +490,12 @@ jobs:
468490 - name : Archive macOS payload and symbols
469491 run : |
470492 mkdir osx-payload-and-symbols
471- tar -C osx-payload-sign -czf osx-payload-and-symbols/gcm-osx-x64-$GitBuildVersionSimple.tar.gz .
472- tar -C tmp.osx-build/symbols -czf osx-payload-and-symbols/gcm-osx-x64-$GitBuildVersionSimple-symbols.tar.gz .
493+
494+ tar -C osx-x64-payload-sign -czf osx-payload-and-symbols/gcm-osx-x64-$GitBuildVersionSimple.tar.gz .
495+ tar -C tmp.osx-x64-build/symbols -czf osx-payload-and-symbols/gcm-osx-x64-$GitBuildVersionSimple-symbols.tar.gz .
496+
497+ tar -C osx-arm64-payload-sign -czf osx-payload-and-symbols/gcm-osx-arm64-$GitBuildVersionSimple.tar.gz .
498+ tar -C tmp.osx-arm64-build/symbols -czf osx-payload-and-symbols/gcm-osx-arm64-$GitBuildVersionSimple-symbols.tar.gz .
473499
474500 - name : Archive Windows payload and symbols
475501 shell : pwsh
@@ -527,7 +553,8 @@ jobs:
527553 uploadDirectoryToRelease('win-x86-payload-and-symbols'),
528554
529555 // Upload macOS artifacts
530- uploadDirectoryToRelease('osx-sign'),
556+ uploadDirectoryToRelease('osx-x64-sign'),
557+ uploadDirectoryToRelease('osx-arm64-sign'),
531558 uploadDirectoryToRelease('osx-payload-and-symbols'),
532559
533560 // Upload Linux artifacts
0 commit comments