Skip to content

Commit 287b9d7

Browse files
committed
ci(appstore-release): set ASC env vars globally in workflow
- Add step to decode and export ASC credentials for all steps - Remove redundant per-step ASC_KEY_ID, ASC_ISSUER_ID, ASC_PRIVATE_KEY env duplication
1 parent 51e7b36 commit 287b9d7

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

.github/workflows/appstore-release.yml

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,24 @@ jobs:
140140
- name: Install asc CLI
141141
run: brew tap tddworks/tap && brew install asccli
142142

143+
- name: Setup ASC credentials
144+
# Decode the base64-encoded .p8 key into raw PEM that asc CLI expects via ASC_PRIVATE_KEY.
145+
# Setting all three vars in $GITHUB_ENV avoids repeating them in every asc step.
146+
env:
147+
ASC_PRIVATE_KEY_B64: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
148+
run: |
149+
echo "ASC_KEY_ID=${{ secrets.APP_STORE_CONNECT_KEY_ID }}" >> $GITHUB_ENV
150+
echo "ASC_ISSUER_ID=${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}" >> $GITHUB_ENV
151+
{
152+
echo 'ASC_PRIVATE_KEY<<EOF'
153+
echo "$ASC_PRIVATE_KEY_B64" | base64 --decode
154+
echo 'EOF'
155+
} >> $GITHUB_ENV
156+
143157
- name: Download & Install Provisioning Profile
144158
# Downloads the MAC_APP_STORE profile directly from App Store Connect via `asc`.
145159
# No MAS_PROVISIONING_PROFILE secret needed — always fetches the latest version.
146-
env:
147-
ASC_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
148-
ASC_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
149-
ASC_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
160+
# ASC_KEY_ID / ASC_ISSUER_ID / ASC_PRIVATE_KEY are set globally by "Setup ASC credentials".
150161
run: |
151162
# Resolve the bundle ID resource ID for this app
152163
BUNDLE_ID_ID=$(asc bundle-ids list --identifier "$BUNDLE_ID" --platform macos \
@@ -225,10 +236,6 @@ jobs:
225236
echo "Exported: $PKG_FILE"
226237
227238
- name: Upload to App Store Connect
228-
env:
229-
ASC_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
230-
ASC_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
231-
ASC_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
232239
run: |
233240
asc builds upload \
234241
--app-id "$APP_ID" \
@@ -238,20 +245,12 @@ jobs:
238245
--wait
239246
240247
- name: Get Build ID
241-
env:
242-
ASC_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
243-
ASC_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
244-
ASC_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
245248
run: |
246249
BUILD_ID=$(asc builds list --app-id "$APP_ID" | jq -r '.data[0].id')
247250
echo "BUILD_ID=$BUILD_ID" >> $GITHUB_ENV
248251
echo "Build ID: $BUILD_ID"
249252
250253
- name: Distribute to TestFlight
251-
env:
252-
ASC_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
253-
ASC_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
254-
ASC_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
255254
run: |
256255
asc builds add-beta-group \
257256
--build-id "$BUILD_ID" \
@@ -264,10 +263,6 @@ jobs:
264263
265264
- name: Submit for App Store Review
266265
if: ${{ inputs.submit_for_review }}
267-
env:
268-
ASC_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }}
269-
ASC_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
270-
ASC_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_P8 }}
271266
run: |
272267
VERSION_ID=$(asc versions list --app-id "$APP_ID" | jq -r '.data[0].id')
273268
asc versions set-build --version-id "$VERSION_ID" --build-id "$BUILD_ID"

0 commit comments

Comments
 (0)