Git & Github

[CI] Github Action์œผ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ธฐ

๊ฒฝํ‘ธ 2024. 7. 17. 19:20
๋ฐ˜์‘ํ˜•

์ผ์ „์— ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ Github Action์„ ์ด์šฉํ•ด์„œ ์ž๋™ํ™”ํ•ด ๋ณด์ž.

 

[ReactorKit] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ (feat.expectation)

ReactorKit์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ž ์‹œ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋‹ค. GitHub - 9oHigh/usket.RandomUser: Random User Generator๋ฅผ ํ™œ์šฉํ•œ ReactorKit & RxDataSource ํ•™์ŠตRandom User Generator๋ฅผ ํ™œ์šฉํ•œ ReactorKit & RxDataSource ํ•™์Šต - 9oHigh/usk

pooh-footprints.tistory.com

 

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—๋Š” 

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๊ณผ ๋งž์ง€ ์•Š์•„์„œ ์‹คํŒจํ•  ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ํ™•์ธํ•ด ๋ณด๊ณ  ์ง„ํ–‰ํ•˜์ž.

 


 

์ž๋™ ๋ฐฐํฌ๊นŒ์ง€ ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์„ ํ™•์ธํ•˜์ž.

 

[Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(1)

์•ˆ๋…•ํ•˜์„ธ์š”~ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Github Action์— ๋Œ€ํ•œ ์„ค๋ช…๊ณผ Github์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Github Action ์ด๋ž€? - Github ์ €์žฅ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ Workflow๋ฅผ ์ž๋™ํ™”

pooh-footprints.tistory.com

 

 

[Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(2)

์•ˆ๋…•ํ•˜์„ธ์š” ~ ์ €๋ฒˆ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ TestFlight์— ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค : ) ์‚ฌ์ „ ์ค€๋น„ Github Action - Build - (Unit Test) - Archive - ipa ์ƒ์„ฑ ๋ฐ TestFlight์— ์—…๋กœ๋“œ ์œ„์˜ 3~4๊ฐ€์ง€์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ

pooh-footprints.tistory.com

 

[Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(3)

์•ˆ๋…•ํ•˜์„ธ์š”~ ์˜ค๋Š˜์€ Github Action์œผ๋กœ TestFlight์— ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์˜ ๋งˆ๋ฌด๋ฆฌ ํฌ์ŠคํŒ…์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค : ) [ ์ผ๋‹จ ์ง€๋‚œ ํฌ์ŠคํŒ… - ์‚ฌ์ „ ์ค€๋น„ ] [Git & Github] Github Action์œผ๋กœ TestFlight ์—…๋กœ๋“œ ํ•ด๋ณด๊ธฐ(2) ์•ˆ๋…•ํ•˜

pooh-footprints.tistory.com

 

๋ฐ˜์‘ํ˜•