— CI/CD — 1 min read
앱이 수정될 떄 마다 APK FTP 서버에 올리는 것은 매우 귀찮다 .. 자동으로 배포하는 방법을 찾다가 Fastlane 을 발견했다.
Fastlane은 Google play console과 연계하여 앱의 자동배포를 도와주는데,
플러그인을 이용하면 FTP 업로드도 가능하다.터미널에서 명령어를 입력하여 Fastlane을 설치한다.
1sudo gem install fastlane -NV
1brew cask install fastlane
프로젝트 폴더로 진입한뒤 fastlane을 초기화한다. 성공했다면 프로젝트 폴더 아래에 fastlane 폴더가 생긴다.
1fastlane init
ftp upload plugin을 설치한다. 플러그인 링크 : https://github.com/fastlane-community/fastlane-ftp-plugin/tree/master/fastlane
1fastlane add_plugin ftp
.env 파일을 생성하여 FTP 정보를 입력한다.
1touch .env
1FTP_HOST=""2FTP_USER=""3FTP_PASSWORD=""4FTP_PORT=""5
6FTP_UPLOAD_SRC="./xxxx.apk"7FTP_UPLOAD_DEST="/aos/"
프로젝트 경로아래에 생성된 fastlane 폴더의 fastfile을 수정하여 ftp upload 함수를 추가한다.
1desc "Upload to FTP Server"2 lane :ftpupload do3
4
5//apk build6
7
8 gradle(task: "assemble",9 build_type: "debug")10
11
12//ftp upload13
14 ftp(15 host: ENV['FTP_HOST'],16 username: ENV['FTP_USER'],17 password: ENV['FTP_PASSWORD'],18 port: ENV['FTP_PORT'].to_i,19 upload:{20 src: ENV['FTP_UPLOAD_SRC'],21 dest: ENV['FTP_UPLOAD_DEST']22 })23end
업로드 명령어 → fastfile에서 설정한 함수명을 통해 업로드를 실행한다. 만약, FTP TLS 연결방식이 암호화 되어있다면 실행되지 않는다 ... 평문으로 되있는 곳에서만 실행된다.
1fastlane ftpupload