Github Actions
* 이 글은 Swift 5를 기준으로 작성했다.
* 글의 목적: "클라이언트 개발자의 TDD" 매거진은 그동안 바카라를 위해 학습을 했던 것을 공유하고자 한다.
바카라 자동화에 대해 살펴보자.
바카라 작성을 팀 단위로 실천하기 위해서 즉각 고려해야 했던 것은자동화 바카라였다.
프로젝트 크기가 크지 않은 상황에서는 로컬 빌드와 바카라 수행에 비용이 얼마 들지 않을 것이지만 이는 곧 한계에 다다른다. PR 과정에서 자동화 바카라가 없다면, 로컬에서 항상 모든 바카라를 확인해야 한다.
( Xcode의 경우 ) 바카라 타겟이 하나라면 그래도 해볼 만하겠지만타겟이 2개만 되어도 바카라를 모두 확인하는 건꽤나 높은 비용이 든다.
팀 단위로 바카라를 작성하기 위해 적어도 어느 단계에서는 ( PR 이든, Commit 이든 ) 바카라 자동화가 필수적으로 구성해야 된다고 생각한다.
*주CI 관련해서는나중에 한 번 더 글을 작성하려 한다. 여기서는바카라 자동화에 집중한다.
Github Actions는 오픈소스의 경우 비용이 무료이기 때문에 :)
Github Actions로 구현해보자. ( 다른 서비스도 무료가 있긴 하지만 github actions 가 제일 편한 것 같다 )
Actions 메뉴로 들어가자
친절하게도 추천해준다. Swift를 골라본다.
사용 방법은 Github Actions Document를보면 여러 기능들이 있으니 참고하자.
- 작성하려는 workflow는master branch에 commit 이 올라오면 바카라를 돌리도록 했다.
- PR은 지금은 고려 대상이 아니어서 작성하지 않았다.
commit에 트리거 되고 TLLogerTest 수행
커밋으로 workflow가 수행되면 아래와 같이 Actions에서 확인 가능하다
수행된 workflow 들의 결과들을 볼 수 있다.
콘솔로그등 수행과정의세부 내용들도 실시간으로 볼 수 있다.
위 결과 링크 :https://github.com/tilltue/TLLogger/runs/4998273590?check_suite_focus=true
이와 같이 github actions에서 자동화 바카라는 아주 쉽게 구성이 가능하다.
유명 오픈소스들의 workflow를 보는 것도 재미가 있을 것 같다. :D
https://github.com/firebase/firebase-ios-sdk/actions
파이어베이스 ios SDK워크플로우의 경우 종류도 엄청 많다.
정적 분석, 배포 관련 확인 절차, 바카라 수행등등을 진행한다.
진행 시간을 보니 하루에도 50회 이상의 workflow 가 수행된다.
https://github.com/Alamofire/Alamofire/actions
알라모파이어의 CI workflow는 macOS, iOS, tvOS등등 os버전별여러 환경에서 바카라를 돌려서 검증한다.
https://github.com/onevcat/Kingfisher/actions
킹 피셔도 마찬가지로 여러 환경에서 바카라를 돌려서 검증한다.
( fastlane 으로 바카라를 수행하는 모습)
https://github.com/ReactiveX/RxSwift/actions
RxSwift 또한 여러 타겟의 바카라를 수행한다.
오픈소스들의 workflow 구성을 보면서 참고할 것들이 많이 있을것 같아관심이 있다면 한번 살펴보는 것도 좋을것 같다.
마침.