From dc74f46b502c397935834f83d54df17a4231da9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EA=B0=95=ED=98=B8?= Date: Sat, 18 Oct 2025 21:54:45 +0900 Subject: [PATCH] Add TestFlight deployment workflow Updated the GitHub Actions workflow to include a testflight job that builds the project and executes Fastlane for deployment. --- .github/workflows/swift.yml | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/swift.yml diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml new file mode 100644 index 00000000..706a8a56 --- /dev/null +++ b/.github/workflows/swift.yml @@ -0,0 +1,54 @@ +# This workflow will build a Swift project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift + +name: Swift + +on: + push: + branches: [ "dev" ] + +jobs: + testflight: + + runs-on: macos-latest + + steps: + # 레파지토리 체크인 + - name: Checkout + uses: actions/checkout@v4 + + # XCConfig / GoogleService 등의 파일을 클론 + - name: Clone Secret file + uses: actions/checkout@v4 + with: + repository: ESTiOSAI/Secrets + path: temp/ + token: ${{ secrets.SECRET_TOKEN }} + + # 가져온 파일 이동 + - name: Move config + run: | + mv temp/XCConfig/Secrets.xcconfig AIProject/iCo/App/Resource/ + mv temp/GoogleServices/GoogleService-Info.plist AIProject/iCo/App/Resource/ + + - uses: actions/checkout@v4 + - name: Build + run: fastlane testflight + env: + GIT_TOKEN: ${{ secrets.GIT_TOKEN }} + + - name: install fastlane + run: brew install fastlane + + - name: execute lane + working-directory: iCo + run: fastlane testflight + env: + MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} + MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }} + GIT_TOKEN: ${{ secrets.GIT_TOKEN }} + APP_STORE_CONNECT_KEY_ID: ${{ secrets.APP_STORE_CONNECT_KEY_ID }} + APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }} + APP_STORE_CONNECT_KEY_CONTENT: ${{ secrets.APP_STORE_CONNECT_KEY_CONTENT }} + KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }} + KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}