Skip to content

Commit aaea7a4

Browse files
committed
Merge feature/(#343)-Ci_Error into develop
- Setup GitHub Actions for CI/CD - Add SwiftLint workflow for develop branch - Add release workflow for main branch - Move fastlane to private submodule
2 parents cd46ed2 + 5fd6605 commit aaea7a4

File tree

8 files changed

+163
-22
lines changed

8 files changed

+163
-22
lines changed

.github/workflows/lint.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
branches: [ develop ]
6+
push:
7+
branches: [ develop ]
8+
9+
jobs:
10+
swiftlint:
11+
runs-on: macos-15
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Setup Xcode
18+
uses: maxim-lobanov/setup-xcode@v1
19+
with:
20+
xcode-version: '16.2'
21+
22+
- name: Install SwiftLint
23+
run: brew install swiftlint
24+
25+
- name: Run SwiftLint
26+
run: swiftlint lint --strict

.github/workflows/release.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Release to App Store
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
7+
jobs:
8+
release:
9+
runs-on: macos-15
10+
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v4
14+
with:
15+
submodules: recursive
16+
token: ${{ secrets.GITHUB_TOKEN }}
17+
18+
- name: Setup XCConfig Files
19+
run: |
20+
echo "${{ secrets.XCCONFIG_BASE64 }}" | base64 --decode | tar -xz
21+
22+
- name: Setup Firebase Config Files
23+
run: |
24+
mkdir -p Projects/App/Resources/Firebase
25+
echo "${{ secrets.GOOGLE_SERVICE_DEV_INFO }}" > Projects/App/Resources/Firebase/GoogleService-Dev-Info.plist
26+
echo "${{ secrets.GOOGLE_SERVICE_STAGE_INFO }}" > Projects/App/Resources/Firebase/GoogleService-Stage-Info.plist
27+
echo "${{ secrets.GOOGLE_SERVICE_PROD_INFO }}" > Projects/App/Resources/Firebase/GoogleService-Prod-Info.plist
28+
29+
- name: Setup Xcode
30+
uses: maxim-lobanov/setup-xcode@v1
31+
with:
32+
xcode-version: '16.2'
33+
34+
- name: Cache SPM
35+
uses: actions/cache@v4
36+
with:
37+
path: |
38+
.build
39+
~/Library/Developer/Xcode/DerivedData/**/SourcePackages
40+
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
41+
restore-keys: |
42+
${{ runner.os }}-spm-
43+
44+
- name: Install mise
45+
uses: jdx/mise-action@v2
46+
with:
47+
install: true
48+
49+
- name: Install Fastlane
50+
run: brew install fastlane
51+
52+
- name: Generate Xcode project with Tuist
53+
run: |
54+
mise exec -- tuist fetch
55+
mise exec -- tuist generate --xcframeworks
56+
env:
57+
TUIST_CI: "1"
58+
59+
- name: Run Fastlane Release
60+
run: fastlane release
61+
env:
62+
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
63+
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

.gitignore

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,23 @@ Tuist/Dependencies
7272
### Tuist cache ###
7373
Tuist/Cache/
7474

75+
### Secrets (handled via GitHub Secrets in CI) ###
7576
XCConfig/
7677
Projects/App/Resources/Firebase/
78+
79+
### Fastlane ###
80+
fastlane/report.xml
81+
fastlane/Preview.html
82+
fastlane/screenshots
83+
fastlane/test_output
84+
fastlane/.env
85+
test_output/
86+
*.ipa
87+
*.dSYM.zip
88+
*.mobileprovision
89+
90+
### Ruby/Bundler ###
91+
.bundle/
92+
vendor/bundle/
93+
Gemfile.lock
94+
.claude/

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "fastlane"]
2+
path = fastlane
3+
url = https://github.com/Team-return/JOBIS_fastlane.git

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source "https://rubygems.org"
2+
3+
gem "fastlane", ">= 2.220"

Scripts/print-github-secrets.sh

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
3+
# GitHub Secrets 설정을 위한 모든 내용 출력 스크립트
4+
# XCConfig 및 Firebase 설정 파일 내용을 출력
5+
6+
echo "========================================="
7+
echo "GitHub Secrets 설정을 위한 파일 내용"
8+
echo "총 4개의 Secret이 필요합니다"
9+
echo "========================================="
10+
echo ""
11+
12+
echo "=== 1. XCCONFIG_BASE64 ==="
13+
echo "이 내용을 전체 복사하여 GitHub Secret 'XCCONFIG_BASE64'에 추가하세요"
14+
echo "---"
15+
tar -czf - XCConfig | base64
16+
echo ""
17+
echo ""
18+
19+
echo "=== 2. GOOGLE_SERVICE_DEV_INFO ==="
20+
echo "이 내용을 전체 복사하여 GitHub Secret 'GOOGLE_SERVICE_DEV_INFO'에 추가하세요"
21+
echo "---"
22+
cat Projects/App/Resources/Firebase/GoogleService-Dev-Info.plist
23+
echo ""
24+
echo ""
25+
26+
echo "=== 3. GOOGLE_SERVICE_STAGE_INFO ==="
27+
echo "이 내용을 전체 복사하여 GitHub Secret 'GOOGLE_SERVICE_STAGE_INFO'에 추가하세요"
28+
echo "---"
29+
cat Projects/App/Resources/Firebase/GoogleService-Stage-Info.plist
30+
echo ""
31+
echo ""
32+
33+
echo "=== 4. GOOGLE_SERVICE_PROD_INFO ==="
34+
echo "이 내용을 전체 복사하여 GitHub Secret 'GOOGLE_SERVICE_PROD_INFO'에 추가하세요"
35+
echo "---"
36+
cat Projects/App/Resources/Firebase/GoogleService-Prod-Info.plist
37+
echo ""
38+
echo ""
39+
40+
echo "========================================="
41+
echo "다음 단계:"
42+
echo "1. GitHub 저장소 → Settings → Secrets and variables → Actions"
43+
echo "2. New repository secret 클릭"
44+
echo "3. 위 4개 내용을 각각 복사하여 추가"
45+
echo " - XCCONFIG_BASE64"
46+
echo " - GOOGLE_SERVICE_DEV_INFO"
47+
echo " - GOOGLE_SERVICE_STAGE_INFO"
48+
echo " - GOOGLE_SERVICE_PROD_INFO"
49+
echo "========================================="

ci_scripts/ci_post_clone.sh

Lines changed: 0 additions & 22 deletions
This file was deleted.

fastlane

Submodule fastlane added at f6b9cde

0 commit comments

Comments
 (0)