ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CI/CD - 입문하기 쉬운 Bitrise 사용해보기
    Programming/iOS 2022. 3. 3. 13:51

    안녕하세요 BeePeach입니다.

     

    CI/CD는 개발을 하다 보면 꼭 듣게 되는 용어입니다.

    앱을 배포해보지 않으면 딱히 필요성을 느끼지 못하고 막상 시작하자니 귀찮아서 다음에 하지 뭐... 라고 생각할 수 있는데요.

    Bitrise를 이용하면 클릭 몇 번으로 간단하게 CI/CD를 쉽게 경험해 볼 수 있습니다.

    먼저 Bitrise를 이용해서 경험을 해보고 이후에 많이 사용하는 서비스인 Jenkins과 fastlane을 이용해보시면 좋은 거 같습니다!

     

    CI는 Continuous Integration, CD는 Continuous Delivery의 약자입니다.

    굳이 해석하자면 지속적 통합, 지속적 배포입니다만.. 해석을 보고 이해하기는 쉽지 않습니다.

     

     

    출처 : https://faun.pub/most-popular-ci-cd-pipelines-and-tools-ccfdce429867

    CI/CD를 아주 간단하게 설명하자면 

    CI는 새로운 코드가 추가했을 때 빌드, 테스트 프로세스를 자동(지속적)으로 해주는 것을 의미하고

    CD는 CI가 완료된 결과가 문제가 없다면 자동(지속적)으로 사용자에게 배포하는 작업을 의미합니다.

    위 사진을 보시면 이해하시기 쉬울 겁니다.

     

    CI/CD를 친구처럼 매일 같이 설명하지만 두 작업은 다른 작업입니다.

    그래서 오늘은 CI를 Bitrise를 이용해서 쉽게 하는 방법에 대해서 공부해보도록 하겠습니다.

     

     


     

    Bitrise 설정하기

     

    먼저 Bitrise를 이용하기 위해서는 회원가입을 해줘야겠죠??

     

     

    https://www.bitrise.io

     

    Bitrise - Mobile Continuous Integration and Delivery

    Continuous integration and delivery built for mobile: Automate iOS and Android builds, testing and deployment from your first install to the one millionth.

    www.bitrise.io

    공식 사이트로 이동해서 회원가입을 해줍니다.

    이후에 Github와 AppleAccount를 연결할 예정이기 때문에 github으로 가입하는 게 편합니다.

     

     

    회원가입을 하고 나면 profile setting에 가서 github와 appleAccount를 연결시켜줘야 합니다.

    만약 앱의 remote repo를 github이 아닌 다른 서비스를 이용하고 있다면 해당 서비스와 연결해주어야 합니다.

    그래야 우리가 코드 변경사항을 push 했을 때 자동적으로 CI가 진행되겠죠?

    그리고 Apple 개발자 계정이 등록되어 있어야 인증서를 통해 gjthub에 push 된 코드를 bitrise에서 빌드하고 테스트할 수 있습니다.

     

    AppleAccount를 연결하기 위해선  AppStroeConnect API Key가 필요합니다.

     

     

    https://appstoreconnect.apple.com

     

    https://appstoreconnect.apple.com

     

    appstoreconnect.apple.com

     

     

     

    앱스토어 커넥트에서 상단에 User and Access -> Keys로 이동하고 key를 생성합니다

     

     

    이름은 원하는 것을 입력하고 Access는 Admin으로 해줍니다.

     

     

    이제 Bitrise와 연결시켜주면 됩니다.

    Add connection을 누르시면 이런 화면이 나타나는데 IssuerID, KeyID, private Key file은 모두 앱스토어 커넥트 keys에 나와있습니다.

    Private Key는 다운 받으시고 꼭 따로 저장을 해두세요.

     

    기본 세팅은 끝났습니다. 

    이제 앱을 등록해보도록 하겠습니다.

     


     

    App 등록하기

     

    상단에 +를 누르고 Add New App on web UI를 클릭합니다.

     

     

    그럼 이런 화면으로 넘어가게 되는데 아주 간단하게 설정이 가능합니다.

    원하는 계정을 선택하고 private으로 할지 public으로 할지 선택해줍니다.

     

     

    Github에 올라가 있는 repo를 선택해줍니다. 여기서 원하는 앱의 코드가 있는 repo를 선택하면 됩니다.

     

     

    Repo를 선택하면 접근에 대한 설정을 하는 화면이 나옵니다.

    추가적인 private repo를 사용할 거냐고 물어보는데 딱히 필요 없으므로 No. auto-add SSH key를 선택하면

    해당 repo에 SSH key가 추가됩니다.

     

     

    branch를 선택해주시면 되는데 원하는 brach를 선택해주면 됩니다.

    저는 main - develop, fix  이렇게 사용하고 있기 때문에 마지막에 적용될 기본 branch인 main으로 해주겠습니다.

    여기서 설정한 branch의 코드로 빌드하고 테스트하게 됩니다.

     

     

    그럼 이제 bitrise에서 알아서 세팅을 하게 됩니다.

     

     

    위 작업이 완료되면 bulid configuration화면이 나오게 됩니다.

    Bitrise에서 자동적으로 인식해서 기본적인 정보는 입력해줍니다.

    만약 직접 변경하고 싶다면 우측 상단에 MANUAL을 선택해주면 됩니다.

     

    여기서 workspace와 scheme을 선택해줍니다.

     

     

    아이콘을 선택해달라고 합니다.

    특별한 이유가 없다면 앱 아이콘 그대로 사용해주면 됩니다.

     

     

    Webhook을 사용할 거냐는 문구가 나오는데 우리가 원하는 것은 main 브랜치에 새로운 commit이 push 됐을 때 자동적으로 빌드하고

    테스트하기를 원하니까 Register를 선택해줍니다.

    이후에 Trigger는 따로 설정해줄 겁니다.

     

     

    해당 버튼을 클릭하면 설정이 끝나게 됩니다.

    클릭 몇 번으로 아주 쉽게 설정이 됐죠??

     

    이제 Trigger를 설정해주어야 합니다.

     

     


     

    Triggers 설정하기

     

    어떤 작업이 실행됐을 때

    빌드와 테스트가 되도록 trigger를 설정해주어야 합니다.

     

     

    Workflows -> Triggers로 이동하여 Add Trigger를 선택해줍니다.

     

     

    우리가 원하는 것은 main 브랜치에 새로운 commit이 push가 됐을 때입니다.

    위에서 PUSH를 선택하고 branch를 선택한 후에 Done을 눌러줍니다.

     

    이제 모든 설정이 끝났습니다.

    main branch에 커밋을 push하면 자동적으로 빌드와 테스트를 하게 됩니다.

     

     


    마무리

     

    우리가 설정한 workflow입니다.

    이제 bitrise에서 main에 새로운 commit이 push 되면 이를 감지하고 Github에서 프로젝트를 clone한 뒤에

    자동적으로 빌드와 테스트를 실행합니다.

    이 작업이 바로 CI에 해당합니다.

     

    만약 문제가 없고 배포까지 하게 된다면 CD에 해당합니다.

    이번 포스팅에서는 CI까지만 진행했습니다.

     

    만약 빌드와 테스트에 실패했다면 메일로 실패 이유를 알려주게 됩니다.

     


     

    이렇게 Bitrise를 이용해서 쉽게 CI를 하는 방법에 대해서 공부해보았습니다.

    다음에는 CD를 하는 방법에 대해서 포스팅해보도록 하겠습니다.

     

     

     

     

     

     

     

    728x90

    'Programming > iOS' 카테고리의 다른 글

    iOS - URLSession과 URLSessionTask  (0) 2022.03.09
    iOS - URL과 ATS  (0) 2022.03.06
    iOS - Cell안에 delegate를 두 객체에 연결하는 방법?  (0) 2022.02.16
    iOS - UIScrollView 사용하기  (0) 2022.01.31
    iOS - Storyboard Merge Conflict  (0) 2022.01.30
Designed by Tistory.