Skip to content

Commit ea93a5a

Browse files
committed
Update CI
1 parent 90e6e3f commit ea93a5a

File tree

9 files changed

+174
-23
lines changed

9 files changed

+174
-23
lines changed

Diff for: .github/workflows/Archive.yml renamed to .github/workflows/Archive-CN.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
name: Archive
1+
name: Archive-CN
22

33
on:
44
push:
55
branches: [ main ]
66
pull_request:
77
branches: [ main ]
88
workflow_dispatch:
9-
9+
1010

1111
jobs:
1212
build:
@@ -78,7 +78,7 @@ jobs:
7878
sh test.sh Flat_Release_Test test_flat_$RUN_NUMBER.log
7979
- name: Archive
8080
run: |
81-
sh archive.sh
81+
sh archive.sh Flat-PROD Flat_Release export_release.plist
8282
- name: Clean up keychain and provisioning profile
8383
if: ${{ always() }}
8484
run: |

Diff for: .github/workflows/Archive-SG.yml

+122
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
name: Archive-SG
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
workflow_dispatch:
9+
10+
11+
jobs:
12+
build:
13+
name: Export iPa
14+
runs-on: self-hosted
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v2
18+
- name: Install the Apple certificate and provisioning profile
19+
env:
20+
BUILD_CERTIFICATE_BASE64: ${{ secrets.FLINT_BUILD_CERTIFICATE_BASE64 }}
21+
P12_PASSWORD: ${{ secrets.FLINT_P12_PASSWORD }}
22+
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.FLINT_BUILD_PROVISION_PROFILE_BASE64 }}
23+
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
24+
run: |
25+
# create variables
26+
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
27+
PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
28+
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
29+
30+
# import certificate and provisioning profile from secrets
31+
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
32+
echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
33+
34+
# create temporary keychain
35+
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
36+
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
37+
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
38+
39+
# import certificate to keychain
40+
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
41+
security list-keychain -d user -s $KEYCHAIN_PATH
42+
43+
# apply provisioning profile
44+
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
45+
cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
46+
- name: FillSLSSec
47+
env:
48+
SLS_AK: ${{ secrets.SLS_AK }}
49+
SLS_SK: ${{ secrets.SLS_SK }}
50+
run: |
51+
sh FillSecret.sh SLS_AK $SLS_AK ./Flat/EnvConfigs/Release.xcconfig
52+
sh FillSecret.sh SLS_SK $SLS_SK ./Flat/EnvConfigs/Release.xcconfig
53+
- name: PodInstall
54+
run: |
55+
pod repo update
56+
pod install
57+
- name: BuildNumber
58+
uses: yanamura/ios-bump-version@v1
59+
with:
60+
version: ''
61+
build-number: ${{github.run_number}}
62+
- name: GenerateGooglePlist
63+
env:
64+
S: ${{ secrets.FLINT_GOOGLE_SERVICE_BASE64 }}
65+
run: |
66+
echo $S | base64 -d > Flat/GoogleService-Info.plist
67+
- name: Create action log
68+
env:
69+
RUN_ID: ${{github.run_id}}
70+
RUN_NUMBER: ${{github.run_number}}
71+
run: |
72+
touch "archive_$RUN_NUMBER.log"
73+
echo "url: https://github.com/netless-io/flat-ios/actions/runs/$RUN_ID" >> archive_$RUN_NUMBER.log
74+
- name: Test
75+
env:
76+
RUN_NUMBER: ${{github.run_number}}
77+
run: |
78+
sh test.sh Flint_Release_Test test_flat_sg_$RUN_NUMBER.log
79+
- name: Archive
80+
run: |
81+
sh archive.sh Flint-PROD Flint_Release export_release_sg.plist
82+
- name: Clean up keychain and provisioning profile
83+
if: ${{ always() }}
84+
run: |
85+
security delete-keychain $RUNNER_TEMP/app-signing.keychain-db
86+
rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision
87+
continue-on-error: true
88+
- name: Upload to appstore
89+
env:
90+
APPSTOREACCOUNT: ${{ secrets.APPSTOREACCOUNT }}
91+
APPSTOREPASSWORD: ${{ secrets.APPSTOREPASSWORD }}
92+
RUN_NUMBER: ${{github.run_number}}
93+
run: |
94+
# upload to appstore using altool
95+
sh upload.sh "$APPSTOREACCOUNT" "$APPSTOREPASSWORD"
96+
IPA=$(find . -name '*.ipa')
97+
SHA=$(shasum -a 256 $IPA)
98+
echo "sha: $SHA" >> archive_$RUN_NUMBER.log
99+
- name: BlackDuck
100+
env:
101+
BLACK_DUCK_TOKEN: ${{ secrets.BLACK_DUCK_TOKEN }}
102+
BD_HOST: ${{ secrets.BD_HOST }}
103+
RUN_NUMBER: ${{github.run_number}}
104+
BD_COMMAND: ${{secrets.BLACK_DUCK_COMMAND}}
105+
run: |
106+
sh blackduck.sh "$BLACK_DUCK_TOKEN" "$BD_COMMAND"
107+
echo "blackduck: $BD_HOST/api/projects/888fe533-a493-45d1-adfd-9e4765793731/versions/ae27340f-0807-4fb0-93a4-5ee322ece657/components" >> archive_$RUN_NUMBER.log
108+
- name: Upload Test Result
109+
uses: actions/upload-artifact@v2
110+
with:
111+
name: test
112+
path: test_flat_sg_${{github.run_number}}.log
113+
- name: Upload artifacts
114+
uses: actions/upload-artifact@v2
115+
with:
116+
name: output
117+
path: iPa/
118+
- name: Upload Report
119+
uses: actions/upload-artifact@v2
120+
with:
121+
name: report
122+
path: archive_${{github.run_number}}.log

Diff for: Flat.xcodeproj/project.pbxproj

+6-3
Original file line numberDiff line numberDiff line change
@@ -2724,11 +2724,13 @@
27242724
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = NO;
27252725
CLANG_ENABLE_MODULES = YES;
27262726
CODE_SIGN_ENTITLEMENTS = Flat/FlatFlint_Release.entitlements;
2727-
CODE_SIGN_IDENTITY = "iPhone Developer";
2727+
CODE_SIGN_IDENTITY = "Apple Development";
2728+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
27282729
CODE_SIGN_STYLE = Manual;
27292730
CURRENT_PROJECT_VERSION = 1;
27302731
DEFINES_MODULE = YES;
2731-
DEVELOPMENT_TEAM = 48TB6ZZL5S;
2732+
DEVELOPMENT_TEAM = "";
2733+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 48TB6ZZL5S;
27322734
EXCLUDED_ARCHS = "$(inherited)";
27332735
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "$(inherited)";
27342736
GENERATE_INFOPLIST_FILE = YES;
@@ -2753,7 +2755,8 @@
27532755
MARKETING_VERSION = 2.7.2;
27542756
PRODUCT_BUNDLE_IDENTIFIER = io.agora.flint;
27552757
PRODUCT_NAME = "$(inherited)";
2756-
PROVISIONING_PROFILE_SPECIFIER = Flint;
2758+
PROVISIONING_PROFILE_SPECIFIER = "";
2759+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Flint Release";
27572760
SWIFT_EMIT_LOC_STRINGS = YES;
27582761
SWIFT_OBJC_BRIDGING_HEADER = Flat/bridgingHeader.h;
27592762
SWIFT_VERSION = 5.0;

Diff for: Flat.xcodeproj/xcshareddata/xcschemes/Flint-PROD.xcscheme

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494
buildConfiguration = "Release">
9595
</AnalyzeAction>
9696
<ArchiveAction
97-
buildConfiguration = "Release"
97+
buildConfiguration = "Flint_Release"
9898
revealArchiveInOrganizer = "YES">
9999
</ArchiveAction>
100100
</Scheme>

Diff for: Flat/EnvConfigs/Flint_Develop.xcconfig

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ NETLESS_APP_ID = n9q1oBxDEeyuBMn1qc0iFw/fLgNSEvdwKjlig
1919
AGORA_APP_ID = 931b86d6781e49a2a255db4ce6e8e804
2020
OSS_ACCESS_KEY_ID = LTAI5tMwHQ1xyroeneA9XLh4
2121
OTHER_SWIFT_FLAGS = $(inherited) -D Flint
22-
PRODUCT_NAME = Flint-DEV
23-
TEST_HOST_PRODUCT_NAME = Flint-DEV
22+
PRODUCT_NAME = Flat-DEV
23+
TEST_HOST_PRODUCT_NAME = Flat-DEV
2424
CREATE_WHITEBOARD_REGION = sg
2525
REGION = US
2626
FORCE_BIND_PHONE = 0

Diff for: Flat/EnvConfigs/Flint_Release.xcconfig

+9-9
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,20 @@
1010
// Configuration settings file format documentation can be found at:
1111
// https://help.apple.com/xcode/#/dev745c5c974
1212

13-
API_URL = flat-api.whiteboard.agora.io
14-
FLAT_WEB_BASE_URL = flat-web.whiteboard.agora.io
15-
GITHUB_CLIENT_ID = 0ac608815326aead5db7
13+
API_URL = api.flat.agora.io
14+
FLAT_WEB_BASE_URL = web.flat.agora.io
15+
GITHUB_CLIENT_ID = da83d7e14217594fba46
1616
GOOGLE_CLIENT_ID = 273996094508-2rpraucen77a1o5dul5ftrua5k3og157.apps.googleusercontent.com
1717
WECHAT_APP_ID = wx09437693798bc108
18-
NETLESS_APP_ID = cFjxAJjiEeuUQ0211QCRBw/mO9uJB_DiCIqug
19-
AGORA_APP_ID = 931b86d6781e49a2a255db4ce6e8e804
20-
OSS_ACCESS_KEY_ID = LTAI5t9Gb6tzQzzLmB6cTVf7
18+
NETLESS_APP_ID = cFjxAJjiEeuUQ0211QCRBw/kndLTOWdG2qYcQ
19+
AGORA_APP_ID = 549c8a24c1e64852bd163f853f5fe14f
20+
OSS_ACCESS_KEY_ID = LTAI5tMwHQ1xyroeneA9XLh4
2121
OTHER_SWIFT_FLAGS = $(inherited) -D Flint
22-
PRODUCT_NAME = Flint
23-
TEST_HOST_PRODUCT_NAME = Flint
22+
PRODUCT_NAME = Flat
23+
TEST_HOST_PRODUCT_NAME = Flat
2424
CREATE_WHITEBOARD_REGION = sg
2525
REGION = US
2626
FORCE_BIND_PHONE = 0
2727
PREFER_PHONE_ACCOUNT = 0
2828
DISABLE_LOGIN_TYPES = wechat
29-
SERVER_GROUP = [{"classroomInviteCode": 1, "apiURL": "flat-api.whiteboard.agora.io", "classroomUUIDPrefix": "CN-"},{"classroomInviteCode": 2, "apiURL": "flat-api-sg.whiteboard.agora.io", "classroomUUIDPrefix": "SG-"}]
29+
SERVER_GROUP = [{"classroomInviteCode": 1, "apiURL": "flat-api.whiteboard.agora.io", "classroomUUIDPrefix": "CN-"},{"classroomInviteCode": 2, "apiURL": "api.flat.agora.io", "classroomUUIDPrefix": "SG-"}]

Diff for: archive.sh

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ buildname=$(date +%s)
22
archivename=$buildname.xcarchive
33
archivepath=./Archive/$archivename
44
ipapath=./iPa
5-
scheme=Flat-PROD
6-
configuration=Flat_Release
5+
scheme=$1
6+
configuration=$2
7+
exportOptionsPlist=$3
78
xcodebuild archive -workspace Flat.xcworkspace -scheme $scheme -configuration $configuration -archivePath $archivepath -destination generic/platform=iOS
8-
xcodebuild -exportArchive -archivePath $archivepath -exportOptionsPlist export_release.plist -exportPath $ipapath
9+
xcodebuild -exportArchive -archivePath $archivepath -exportOptionsPlist $exportOptionsPlist -exportPath $ipapath

Diff for: export_release.plist

-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
<true/>
2222
<key>teamID</key>
2323
<string>48TB6ZZL5S</string>
24-
<key>uploadBitcode</key>
25-
<true/>
2624
<key>uploadSymbols</key>
2725
<true/>
2826
</dict>

Diff for: export_release_sg.plist

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>destination</key>
6+
<string>export</string>
7+
<key>manageAppVersionAndBuildNumber</key>
8+
<false/>
9+
<key>method</key>
10+
<string>app-store</string>
11+
<key>provisioningProfiles</key>
12+
<dict>
13+
<key>io.agora.flint</key>
14+
<string>Flint Release</string>
15+
</dict>
16+
<key>signingCertificate</key>
17+
<string>Apple Distribution</string>
18+
<key>signingStyle</key>
19+
<string>manual</string>
20+
<key>stripSwiftSymbols</key>
21+
<true/>
22+
<key>teamID</key>
23+
<string>48TB6ZZL5S</string>
24+
<key>uploadSymbols</key>
25+
<true/>
26+
</dict>
27+
</plist>

0 commit comments

Comments
 (0)