깃랩 프로젝트 안드로이드,IOS 빌드자동화 하기 (CICD)
깃랩으로 프로젝트를 자동으로 안드로이드,IOS로 빌드하고 배포까지 한번에 하는 법을 알아냈다..
안드로이드
1️⃣ 서버에 패키지 설치
서버 관리자는 러너에 다음 패키지들을 설치해야 해요
- JDK
- Android SDK
- Gradle
- Cordova
- Build Tools
2️⃣ .yml 구성
#텍스트#로 표시된 부분은 사용자가 직접 수정해야 합니다. (경로, 폴더명 등)
build-android:
stage: mobile-build
variables:
ANDROID_HOME: #"SDK 경로"#
PATH: #"SDK의 cmdline-tools와 platform-tools를 포함한 경로"#
dependencies:
- build-job
before_script:
- cd #Cordova 폴더#
- npm install
- rm -rf www
- mkdir www
- cp -R ../#스파이더젠 프로젝트 폴더#/bin/* www/
script:
- cordova platform add android || true
- npx cordova build android
- find platforms/android/app/build/outputs/apk -name "*.apk" -exec cp {} ./output.apk \;
- ls -la output.apk
artifacts:
paths: - #Cordova 폴더#/output.apk
expire_in: 1 week
3️⃣ 각 코드 내용은?
3.1 Variables 설정
- ANDROID_HOME: Android SDK의 경로를 설정합니다.
- PATH: SDK 내 cmdline-tools 및 platform-tools 경로를 추가해 필요한 명령어를 사용할 수 있게 합니다.
3.2 dependencies
- build-job 단계의 결과물(아티팩트)을 가져옵니다.
3.3 before_script
- cd #Cordova 폴더#: Cordova 프로젝트 디렉터리로 이동합니다.
- npm install: 필요한 Node.js 패키지를 설치합니다.
- rm -rf www: 기존 www 폴더를 삭제합니다.
- mkdir www: 새로운 www 폴더를 생성합니다.
- cp -R ../#스파이더젠 프로젝트 폴더#/bin/* www/: 이전 빌드 파일을 복사합니다.
3.4 script
- cordova platform add android || true: 안드로이드 플랫폼을 추가합니다. 이미 추가된 경우 무시합니다.
- npx cordova build android: 안드로이드 앱을 빌드합니다.
- find platforms/android/app/build/outputs/apk -name "*.apk" -exec cp {} ./output.apk \;: 생성된 APK 파일을 프로젝트 루트로 복사합니다.
- ls -la output.apk: APK 파일이 정상적으로 복사되었는지 확인합니다.
3.5 artifacts
- 빌드 완료 후 생성된 output.apk를 저장합니다.
- 저장된 아티팩트는 1주일간 보관됩니다.
4️⃣ 예시 (스파이더젠 빌드 -> 안드로이드 빌드 단계)
IOS
1️⃣ .yml 구성
#텍스트#로 표시된 부분은 사용자가 직접 수정해야 합니다. (경로, 폴더명 등)
build-ios:
stage: mobile-build
tags:
- macos
dependencies:
- build-job
before_script:
- cd #Cordova 폴더#
- npm install
- rm -rf www - mkdir www - cp -R ../#프로젝트 폴더#/bin/* www/
script:
- cordova platform add ios || true
- npx cordova build ios --no-prepare
- ls -al platforms/ios
artifacts:
paths: - #Cordova 폴더#/platforms/ios
expire_in: 1 week
2️⃣ 각 코드 내용은?
2.1 Variables 설정
- tags:
- macos 태그를 설정하여, macOS 환경에서 빌드가 수행되도록 합니다.
- iOS 빌드는 반드시 macOS 환경에서만 가능합니다.
2.2 dependencies
- build-job 단계의 결과물(아티팩트)을 참조하여, 이 단계에서 iOS 빌드를 진행합니다.
2.3 before_script
- cd #Cordova 폴더#: Cordova 프로젝트 디렉터리로 이동합니다.
- npm install: Node.js 패키지를 설치합니다.
- rm -rf www: 기존 www 폴더를 삭제합니다.
- mkdir www: 새로운 www 폴더를 생성합니다.
- cp -R ../#프로젝트 폴더#/bin/* www/: 프로젝트의 빌드 파일을 www 폴더에 복사합니다.
2.4 script
- cordova platform add ios || true:
iOS 플랫폼을 프로젝트에 추가합니다. 이미 추가되어 있는 경우 에러를 무시하고 넘어갑니다. - npx cordova build ios --no-prepare:
iOS 앱을 빌드합니다. --no-prepare 옵션을 사용하여 prepare 단계를 생략합니다. - ls -al platforms/ios:
빌드된 iOS 프로젝트 폴더를 출력하여, 빌드 결과를 확인합니다.
2.5 artifacts
- 빌드가 완료된 후 platforms/ios 폴더를 저장합니다.
- 저장된 아티팩트는 1주일간 보관됩니다.