[개발] Github Actions Workflow를 활용한 TDD 적용기 - 빌드서버 구축

 

현업에서 Android, iOS 둘을 다 개발하기 때문에 개발 외적으로 들어가는 리소스를 최소화 하기 위하여 이 글을 남긴다.

 

이전에 Gitlab을 사용할때에도 gitlab CI/CD를 활용하여 어느정도 자동화는 구축하였지만 따로 관련 자료를 정리해 놓은것이 없어서 신규로 빌드서버를 구축하려 했을때 참고할만한 자료가 아무것도 없더라...

 

이번에는 이렇게 글이라도 남겨 놓아서 나중에 나에게 또는, 이를 필요로 하는 어느 누군가에게 도움이 되길 바란다.

 

 

빌드서버 구축

 

github action과 관련된 공식 링크는 여기를 참고하자.

 

gitlab과는 다르게 github은 클라우드로 빌드서버를 지원하는것으로 확인되나 필자는 self-hosted로 따로 빌드서버를 구축하여 사용하도록 하겠다. 

 

이곳을 클릭하면 self-hosted 로 runner를 추가하는 방법이 나와 있으니 참고하자 runner 설치는 이곳을 클릭하여 다운 받도록 하자.

참고로 필자는 Mac 을 사용하기 때문에 이곳을 참고하여 아래명령으로 다운로드 받았다.

1
2
3
4
5
6
# Create a folder
mkdir actions-runner && cd actions-runner
# Download the latest runner package
curl --L https://github.com/actions/runner/releases/download/v2.292.0/actions-runner-osx-x64-2.292.0.tar.gz
# Extract the installer
tar xzf ./actions-runner-osx-x64-2.292.0.tar.gz
cs

위 repo를 통해 업데이트를 지원하는것 같은데 필자의 경우 최신 버전이 2.292.0이었으므로 참고하도록 하자.

 

 

Fastlane

runner를 통해 앱을 빌드 하려면 기존에 사용하던 개발도구가 아닌 쉘 스크립트를 통해 빌드가 가능하여야 한다.

쉘 스크립트 작성에 익숙하다면 상관 없으나 작성자는 이에 익숙치 않고 더욱이 개발도구 업데이트마다 빌드 명령이 바뀌는 꼬라지(특히 Apple iOS 씨벌넘들)를 보다가 버티지 못하고 방법을 찾은것이 Fastlane이다.

빌드를 위한 쉘 스크립트를 단순하게 변경해주고 특히 Android, iOS 둘다 지원 하므로 필자에게는 선택의 여지가 없었다.

 

ruby를 이용한 설치법도 있지만 필자는 mac을 사용하기 때문에 패키지 관리를 위해 homebrew를 사용하였다.

아래의 명령으로 설치한다.

1
brew install fastlane
cs

iOS 앱 배포를 위한 빌드를 위해서는 get_certificates를 통한 사용자 인증이 필요한데 이를 위해서는 계정 정보가 필요하다. 계정 정보 제공을 위한 여러가지 방법이 있지만 필자는 아래처럼 환경변수에 숨겨 놓았다.

1
2
3
export FASTLANE_USER="이곳에 애플 개발자 계정을..."
export FASTLANE_PASSWORD="이곳에 애플 개발자 계정 패스워드를.."
export FASTLANE_SESSION="fastlane spaceauth를 통한 session(위 계정이 2FA를 사용한다면 필요)"
cs

2차 인증을 사용하는 경우에는 FASTLANE_SESSION이 추가로 필요한데 이를 갱신하려면 아래의 명령어로 갱신한다.

1
2
rm -rf ~/.fastlane/spaceship/name@gmail.com
fastlane spaceauth -u name@gmail.com
cs

 

 

배포버전을 빌드하려면 team_id와 team_name이 필요할것이다.

애플 개발자 사이트에 접속하여 아래 화면을 참고하자

 

 

App store에 배포할때 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 환경변수 필요함. 이거는 appleid.apple.com에서 발급

댓글