Skip to content

Commit 0c0d6de

Browse files
Use shared gh-actions
1 parent 0c6b02c commit 0c0d6de

File tree

2 files changed

+20
-93
lines changed

2 files changed

+20
-93
lines changed

.github/workflows/ci.yaml

Lines changed: 20 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -129,50 +129,20 @@ jobs:
129129
- run: make sdk-build
130130
- run: make react-native-npm-ci
131131
- run: make react-native-pod-install
132-
- name: Install the Apple certificate and provisioning profile
133-
env:
134-
IOS_CERTIFICATE_BASE64: ${{ secrets.REACT_NATIVE_IOS_CERTIFICATE_BASE64 }}
135-
IOS_PROVISIONING_PROFILE_BASE64: ${{ secrets.REACT_NATIVE_IOS_PROVISIONING_PROFILE_BASE64 }}
136-
run: |
137-
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
138-
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
139-
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
140-
141-
echo -n "$IOS_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
142-
echo -n "$IOS_PROVISIONING_PROFILE_BASE64" | base64 --decode -o $PP_PATH
143-
144-
security create-keychain -p "" $KEYCHAIN_PATH
145-
security set-keychain-settings $KEYCHAIN_PATH
146-
security unlock-keychain -p "" $KEYCHAIN_PATH
147-
148-
security import $CERTIFICATE_PATH -P "" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
149-
security list-keychain -d user -s $KEYCHAIN_PATH
150-
151-
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
152-
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
153-
- name: Install App Store Connect API key
154-
env:
155-
IOS_API_KEY_BASE64: ${{ secrets.IOS_API_KEY_BASE64 }}
156-
IOS_API_KEY_ID: ${{ secrets.IOS_API_KEY_ID }}
157-
run: |
158-
API_KEY_PATH=$RUNNER_TEMP/AuthKey_${IOS_API_KEY_ID}.p8
159-
echo -n "$IOS_API_KEY_BASE64" | base64 --decode -o $API_KEY_PATH
160-
- name: Create fastlane api key json
161-
env:
162-
API_ISSUER: ${{ secrets.IOS_API_KEY_ISSUER }}
163-
API_KEY: ${{ secrets.IOS_API_KEY_ID }}
164-
run: |
165-
export API_KEY_PATH=$RUNNER_TEMP/AuthKey_${API_KEY}.p8
166-
make fastlane-api-key-json
132+
- uses: authgear/gh-actions-install-apple-certificate-and-provisioning-profile@v1
133+
with:
134+
certificate_base64: ${{ secrets.REACT_NATIVE_IOS_CERTIFICATE_BASE64 }}
135+
provisioning_profile_base64: ${{ secrets.REACT_NATIVE_IOS_PROVISIONING_PROFILE_BASE64 }}
136+
- uses: authgear/gh-actions-create-fastlane-api-key-json-file@v1
137+
with:
138+
api_key_id: ${{ secrets.IOS_API_KEY_ID }}
139+
api_key_issuer: ${{ secrets.IOS_API_KEY_ISSUER }}
140+
api_key_base64: ${{ secrets.IOS_API_KEY_BASE64 }}
141+
output_path: ./build/fastlane-api-key.json
167142
- run: make react-native-build-ios-app
168143
- name: Upload to TestFlight
169144
if: ${{ github.ref == 'refs/heads/master' }}
170145
run: make react-native-upload-ios-app
171-
- name: Clean up keychain and provisioning profile
172-
if: ${{ always() }}
173-
run: |
174-
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
175-
rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
176146

177147
react_native_android:
178148
if: ${{ github.repository == 'authgear/authgear-sdk-js' }}
@@ -231,50 +201,20 @@ jobs:
231201
- run: make capacitor-npm-ci
232202
- run: make capacitor-npm-audit
233203
- run: make capacitor-build-js
234-
- name: Install the Apple certificate and provisioning profile
235-
env:
236-
IOS_CERTIFICATE_BASE64: ${{ secrets.CAPACITOR_IOS_CERTIFICATE_BASE64 }}
237-
IOS_PROVISIONING_PROFILE_BASE64: ${{ secrets.CAPACITOR_IOS_PROVISIONING_PROFILE_BASE64 }}
238-
run: |
239-
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
240-
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
241-
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
242-
243-
echo -n "$IOS_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
244-
echo -n "$IOS_PROVISIONING_PROFILE_BASE64" | base64 --decode -o $PP_PATH
245-
246-
security create-keychain -p "" $KEYCHAIN_PATH
247-
security set-keychain-settings $KEYCHAIN_PATH
248-
security unlock-keychain -p "" $KEYCHAIN_PATH
249-
250-
security import $CERTIFICATE_PATH -P "" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
251-
security list-keychain -d user -s $KEYCHAIN_PATH
252-
253-
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
254-
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
255-
- name: Install App Store Connect API key
256-
env:
257-
IOS_API_KEY_BASE64: ${{ secrets.IOS_API_KEY_BASE64 }}
258-
IOS_API_KEY_ID: ${{ secrets.IOS_API_KEY_ID }}
259-
run: |
260-
API_KEY_PATH=$RUNNER_TEMP/AuthKey_${IOS_API_KEY_ID}.p8
261-
echo -n "$IOS_API_KEY_BASE64" | base64 --decode -o $API_KEY_PATH
262-
- name: Create fastlane api key json
263-
env:
264-
API_ISSUER: ${{ secrets.IOS_API_KEY_ISSUER }}
265-
API_KEY: ${{ secrets.IOS_API_KEY_ID }}
266-
run: |
267-
export API_KEY_PATH=$RUNNER_TEMP/AuthKey_${API_KEY}.p8
268-
make fastlane-api-key-json
204+
- uses: authgear/gh-actions-install-apple-certificate-and-provisioning-profile@v1
205+
with:
206+
certificate_base64: ${{ secrets.CAPACITOR_IOS_CERTIFICATE_BASE64 }}
207+
provisioning_profile_base64: ${{ secrets.CAPACITOR_IOS_PROVISIONING_PROFILE_BASE64 }}
208+
- uses: authgear/gh-actions-create-fastlane-api-key-json-file@v1
209+
with:
210+
api_key_id: ${{ secrets.IOS_API_KEY_ID }}
211+
api_key_issuer: ${{ secrets.IOS_API_KEY_ISSUER }}
212+
api_key_base64: ${{ secrets.IOS_API_KEY_BASE64 }}
213+
output_path: ./build/fastlane-api-key.json
269214
- run: make capacitor-build-ios-app
270215
- name: Upload to TestFlight
271216
if: ${{ github.ref == 'refs/heads/master' }}
272217
run: make capacitor-upload-ios-app
273-
- name: Clean up keychain and provisioning profile
274-
if: ${{ always() }}
275-
run: |
276-
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
277-
rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
278218

279219
capacitor_android:
280220
if: ${{ github.repository == 'authgear/authgear-sdk-js' }}

Makefile

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ REF := $(shell git describe --all --exact-match | sed -e "s|^heads/||")
22
GIT_HASH ?= git-$(shell git rev-parse --short=12 HEAD)
33
IMAGE ?= quay.io/theauthgear/authgear-demo-webapp:$(GIT_HASH)
44

5-
API_ISSUER ?= "invalid"
6-
API_KEY ?= "invalid"
7-
API_KEY_PATH ?= ./AuthKey_invalid.p8
8-
95
# The documentation build pipeline works in the following way.
106
#
117
# 1. Generate individual .d.ts with tsc.
@@ -74,15 +70,6 @@ push-image:
7470
clean:
7571
rm -rf ./build
7672

77-
.PHONY: fastlane-api-key-json
78-
fastlane-api-key-json:
79-
mkdir -p ./build
80-
jq --slurp --raw-input > ./build/fastlane-api-key.json \
81-
--arg key_id $(API_KEY) \
82-
--arg issuer_id $(API_ISSUER) \
83-
'{key_id: $$key_id, issuer_id: $$issuer_id, key: .}' \
84-
$(API_KEY_PATH)
85-
8673
.PHONY: sdk-build
8774
sdk-build:
8875
npm ci

0 commit comments

Comments
 (0)