Skip to content

Commit ac98b4a

Browse files
authored
Merge pull request #89 from Central-MakeUs/development
main <- development
2 parents 1ee2321 + 1d0a5b4 commit ac98b4a

726 files changed

Lines changed: 35527 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ios-cicd.yml

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
name: iOS CI/CD
2+
3+
on:
4+
push:
5+
tags:
6+
- "dev/**"
7+
- "prod/**"
8+
- "demo/**"
9+
- "design/**"
10+
11+
jobs:
12+
cicd-start:
13+
name: CI/CD Start
14+
runs-on: macos-26
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v6
18+
19+
- name: Validate deployment tag
20+
id: validate-tag
21+
env:
22+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
23+
run: ci_scripts/github/pre-build/validate_deployment_tag.sh
24+
25+
- name: Define CI/CD environment
26+
id: define-cicd-environment
27+
run: ci_scripts/github/pre-build/define_cicd_environment.sh
28+
29+
- name: Send Slack start notification
30+
if: steps.define-cicd-environment.outcome == 'success'
31+
env:
32+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
33+
run: |
34+
ci_scripts/github/webhook/send_slack.sh \
35+
--status started \
36+
--message "CI/CD started" \
37+
--step workflow-start
38+
39+
- name: Setup XCConfig
40+
id: setup-xcconfig
41+
if: steps.define-cicd-environment.outcome == 'success'
42+
env:
43+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
44+
API_BASE_URL_DEV: ${{ secrets.API_BASE_URL_DEV }}
45+
API_BASE_URL_PROD: ${{ secrets.API_BASE_URL_PROD }}
46+
KAKAO_NATIVE_APP_KEY_DEV: ${{ secrets.KAKAO_NATIVE_APP_KEY_DEV }}
47+
KAKAO_NATIVE_APP_KEY_PROD: ${{ secrets.KAKAO_NATIVE_APP_KEY_PROD }}
48+
run: ci_scripts/github/pre-build/setup_xcconfig.sh
49+
50+
- name: Setup Firebase
51+
id: setup-firebase
52+
if: steps.setup-xcconfig.outcome == 'success'
53+
env:
54+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
55+
FIREBASE_API_KEY_DEV: ${{ secrets.FIREBASE_API_KEY_DEV }}
56+
FIREBASE_API_KEY_PROD: ${{ secrets.FIREBASE_API_KEY_PROD }}
57+
FIREBASE_GOOGLE_APP_ID_DEV: ${{ secrets.FIREBASE_GOOGLE_APP_ID_DEV }}
58+
FIREBASE_GOOGLE_APP_ID_PROD: ${{ secrets.FIREBASE_GOOGLE_APP_ID_PROD }}
59+
FIREBASE_GCM_SENDER_ID_DEV: ${{ secrets.FIREBASE_GCM_SENDER_ID_DEV }}
60+
FIREBASE_GCM_SENDER_ID_PROD: ${{ secrets.FIREBASE_GCM_SENDER_ID_PROD }}
61+
FIREBASE_PROJECT_ID_DEV: ${{ secrets.FIREBASE_PROJECT_ID_DEV }}
62+
FIREBASE_PROJECT_ID_PROD: ${{ secrets.FIREBASE_PROJECT_ID_PROD }}
63+
FIREBASE_STORAGE_BUCKET_DEV: ${{ secrets.FIREBASE_STORAGE_BUCKET_DEV }}
64+
FIREBASE_STORAGE_BUCKET_PROD: ${{ secrets.FIREBASE_STORAGE_BUCKET_PROD }}
65+
FIREBASE_BUNDLE_ID_DEV: ${{ secrets.FIREBASE_BUNDLE_ID_DEV }}
66+
FIREBASE_BUNDLE_ID_PROD: ${{ secrets.FIREBASE_BUNDLE_ID_PROD }}
67+
run: ci_scripts/github/pre-build/setup_firebase.sh
68+
69+
- name: Setup Tuist
70+
id: setup-tuist
71+
if: steps.setup-firebase.outcome == 'success'
72+
env:
73+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
74+
GITHUB_TOKEN: ${{ github.token }}
75+
run: ci_scripts/github/pre-build/setup_tuist.sh
76+
77+
- name: Setup Ruby
78+
id: setup-ruby
79+
if: steps.setup-tuist.outcome == 'success'
80+
env:
81+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
82+
run: ci_scripts/github/distribution/setup_ruby.sh
83+
84+
- name: Install iOS signing assets
85+
id: install-ios-signing-assets
86+
if: steps.setup-ruby.outcome == 'success'
87+
env:
88+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
89+
IOS_DISTRIBUTION_CERTIFICATE_BASE64: ${{ secrets.IOS_DISTRIBUTION_CERTIFICATE_BASE64 }}
90+
IOS_DISTRIBUTION_CERTIFICATE_PASSWORD: ${{ secrets.IOS_DISTRIBUTION_CERTIFICATE_PASSWORD }}
91+
IOS_SIGNING_KEYCHAIN_PASSWORD: ${{ secrets.IOS_SIGNING_KEYCHAIN_PASSWORD }}
92+
DEMO_IOS_ADHOC_PROFILE_BASE64: ${{ secrets.DEMO_IOS_ADHOC_PROFILE_BASE64 }}
93+
DEV_IOS_APPSTORE_PROFILE_BASE64: ${{ secrets.DEV_IOS_APPSTORE_PROFILE_BASE64 }}
94+
PROD_IOS_APPSTORE_PROFILE_BASE64: ${{ secrets.PROD_IOS_APPSTORE_PROFILE_BASE64 }}
95+
run: ci_scripts/github/distribution/install_ios_signing_assets.sh
96+
97+
- name: Build and distribute app
98+
id: build-and-distribute-app
99+
if: steps.setup-ruby.outcome == 'success' && steps.install-ios-signing-assets.outcome == 'success'
100+
env:
101+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
102+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
103+
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}
104+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
105+
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
106+
FIREBASE_APP_ID_DEMO: ${{ secrets.FIREBASE_APP_ID_DEMO }}
107+
FIREBASE_APP_ID_DESIGN: ${{ secrets.FIREBASE_APP_ID_DESIGN }}
108+
FIREBASE_APP_ID_CHALLENGEDEMO: ${{ secrets.FIREBASE_APP_ID_CHALLENGEDEMO }}
109+
FIREBASE_APP_ID_FEEDDEMO: ${{ secrets.FIREBASE_APP_ID_FEEDDEMO }}
110+
FIREBASE_APP_ID_MYPAGEDEMO: ${{ secrets.FIREBASE_APP_ID_MYPAGEDEMO }}
111+
FIREBASE_APP_ID_ONBOARDINGDEMO: ${{ secrets.FIREBASE_APP_ID_ONBOARDINGDEMO }}
112+
FIREBASE_APP_ID_SIGNINDEMO: ${{ secrets.FIREBASE_APP_ID_SIGNINDEMO }}
113+
FIREBASE_APP_ID_SIGNUPDONEDEMO: ${{ secrets.FIREBASE_APP_ID_SIGNUPDONEDEMO }}
114+
FIREBASE_APP_ID_SPLASHDEMO: ${{ secrets.FIREBASE_APP_ID_SPLASHDEMO }}
115+
FIREBASE_DISTRIBUTION_GROUPS: ${{ secrets.FIREBASE_DISTRIBUTION_GROUPS }}
116+
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
117+
APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}
118+
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
119+
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
120+
APP_STORE_CONNECT_API_KEY_IS_BASE64: ${{ secrets.APP_STORE_CONNECT_API_KEY_IS_BASE64 }}
121+
run: ci_scripts/github/distribution/build_app.sh

.gitignore

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
### macOS ###
2+
# General
3+
.DS_Store
4+
.AppleDouble
5+
.LSOverride
6+
7+
# Icon must end with two
8+
Icon
9+
10+
# Thumbnails
11+
._*
12+
13+
# Files that might appear in the root of a volume
14+
.DocumentRevisions-V100
15+
.fseventsd
16+
.Spotlight-V100
17+
.TemporaryItems
18+
.Trashes
19+
.VolumeIcon.icns
20+
.com.apple.timemachine.donotpresent
21+
22+
# Directories potentially created on remote AFP share
23+
.AppleDB
24+
.AppleDesktop
25+
Network Trash Folder
26+
Temporary Items
27+
.apdisk
28+
29+
### Xcode ###
30+
# Xcode
31+
#
32+
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
33+
34+
## User settings
35+
xcuserdata/
36+
37+
## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
38+
*.xcscmblueprint
39+
*.xccheckout
40+
41+
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
42+
build/
43+
DerivedData/
44+
*.moved-aside
45+
*.pbxuser
46+
!default.pbxuser
47+
*.mode1v3
48+
!default.mode1v3
49+
*.mode2v3
50+
!default.mode2v3
51+
*.perspectivev3
52+
!default.perspectivev3
53+
54+
### Xcode Patch ###
55+
*.xcodeproj/*
56+
!*.xcodeproj/project.pbxproj
57+
!*.xcodeproj/xcshareddata/
58+
!*.xcworkspace/contents.xcworkspacedata
59+
/*.gcno
60+
61+
### Projects ###
62+
*.xcodeproj
63+
*.xcworkspace
64+
65+
### Tuist derived files ###
66+
graph.dot
67+
Derived/
68+
69+
### Tuist managed dependencies ###
70+
Tuist/.build
71+
.build/*
72+
73+
XCConfig/
74+
GoogleService-info*

Gemfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
source "https://rubygems.org"
2+
3+
gem "CFPropertyList", "3.0.8"
4+
gem "fastlane"
5+
gem "ostruct", "0.6.3"
6+
7+
plugins_path = File.join(__dir__, "fastlane", "Pluginfile")
8+
eval_gemfile(plugins_path) if File.exist?(plugins_path)

0 commit comments

Comments
 (0)