์ผ์ ์ ์์ฑํ ํ ์คํธ ์ฝ๋๋ฅผ Github Action์ ์ด์ฉํด์ ์๋ํํด ๋ณด์.
ํ์ฌ ํ๋ก์ ํธ์๋
develop์ด๋ release ๋ธ๋์น๊ฐ ์์ด main ๋ธ๋์น ํ๋๋ง ์๋ค.
๋ฐ๋ผ์ main ๋ธ๋์น์ Push ํน์ PR ์์ฒญ ์ ํ ์คํธ๋ฅผ ์งํํ๋ค.
1. ๋ ํฌ์งํ ๋ฆฌ์ Action์ ๋ค์ด๊ฐ [ Set up this workflow ]๋ฅผ ํด๋ฆญ
2. yml ํ์ผ์ ์์ฑํด ๋ณด์.
name: Build & Test
on:
# main ๋ธ๋์น์ push ๋ pull request ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํ์ workflow ์คํ
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs: # workflow๋ ํ๋ ์ด์์ jobs๋ก ๋ง๋ค์ด์ง
build:
runs-on: macos-latest
steps:
# uses ํค์๋๋ฅผ ํตํด Github Actions์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ์ก์
์ ์ฌ์ฉ ๊ฐ๋ฅ.
# repository์ ์ฒดํฌ์์
- uses: actions/checkout@v2
# Package.resolved์์ ์ค๋ฅ๊ฐ ๋ฐ์ / ์ ๊ฑฐํ๊ณ , resolve
- name: Delete Package.resolved
run: rm -f usket.RandomUser/usket.RandomUser/usket.RandomUser/usket.RandomUser.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
- name: Clean package cache
run: rm -rf ~/Library/Caches/org.swift.swiftpm
- name: Resolve package dependencies
run: xcodebuild -resolvePackageDependencies -project usket.RandomUser/usket.RandomUser.xcodeproj
- name: Start xcode build ๐
run: |
xcodebuild clean test -project usket.RandomUser/usket.RandomUser.xcodeproj -scheme usket.RandomUser -destination 'platform=iOS Simulator,name=iPhone 14,OS=17.2'
main ๋ธ๋์น์ push ํ๊ฑฐ๋ pr ์์ฒญ์ด ๋ค์ด์์ ๋ workflow๋ฅผ ์งํํ๊ธฐ ์ํด on ํค์๋์ ์์ ๊ฐ์ด ์์ฑํด์ผ ํ๋ค.
on์ workflow๋ฅผ ์คํํ๊ธฐ ์ํ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ค์ ํ๋ ํค์๋๋ค.
์ดํ jobs๋ฅผ ์ค์ ํด์ผ ํ๋ค.
jobs๋ workflow์ ๊ตฌ์ฑ์์๋ค.
์ง๊ธ์ ๋น๋ ๋ฐ ํ ์คํธ๋ง ์งํํ์ง๋ง ๋ ๋ค๋ฅธ CI๋ฅผ ์งํํด์ผ ํ๋ค๋ฉด ์ฌ์ฉํ ์ ์๋ค.
โPackage.resolved๋ฅผ ์ ๊ฑฐํ๊ณ resolve ํ๋ ์ฝ๋๊ฐ ์๋ ๊ฑธ ๋ณผ ์ ์๋ค.
PinsStore์ ๋ฒ์ ์ด 3์ด๋ผ์ ์งํํ ์ ์๋ค๋ ๋ฑ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์๋๋ฐ
swiftpm ํด๋์ ๋ค์ด๊ฐ Package.resolved์ ๊ฐ์ฅ ํ๋จ์ version์ 3์์ 2๋ก ๋ฐ๊พธ์๋๋ ์ ์์ ์ผ๋ก ๋์ํ๋ค.
ํน์ ๊ด๋ จํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์๋ํด ๋ณด์.
3. ์์ ๊ฐ์ด ์์ฑํ๊ณ Commit ํ๋ค๋ฉด ์๋์ ๊ฐ์ด ํด๋๊ฐ ์๊ธฐ๊ณ , yml ํ์ผ์ด ๋ค์ด์์ ๊ฒ์ด๋ค.
4. ์ดํ push๋ pr์ ์์ฒญํ ๋ค์ Actions์ ๋ค์ ๋ค์ด๊ฐ ๋ณด๋ฉด ์๋์ฒ๋ผ ์ ์์ ์ผ๋ก ๋์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ถ๊ฐ์ ์ผ๋ก iPhone ๊ธฐ์ข ๊ณผ version์ด ํ๋ก์ ํธ์ minimum target๊ณผ ๋ง์ง ์์์ ์คํจํ ์๋ ์์ผ๋ ํ์ธํด ๋ณด๊ณ ์งํํ์.
์๋ ๋ฐฐํฌ๊น์ง ํด๋ณด๊ณ ์ถ๋ค๋ฉด ์๋์ ํฌ์คํ ์ ํ์ธํ์.