Programing

Teamcity AndroidStudio Apk배포 하기

Medeev 2016. 8. 7. 15:16

TeamCity 는 소프트웨어 빌드 자동화 프로그램입니다. 잘 알고지내는 지인으로부터 추천 받아 설치 해서 배포까지를 테스트 해보았습니다.


간단한 설명은 Git이나 Svn과 같은 버젼컨트롤 시스템과 연동하여 웹서버를 돌려 버젼컨트롤시스템에 Commit이 있을경우 자동빌드하여 배포까지 하고 Email로 알림까지 받을 수 있게 자동화 할수있어 잦은 배포가 필요한 프로젝트 일 경우에 편리함을 제공합니다.


설치방법을 소개 합니다.


  1. TeamCity를 다운 받습니다.
    1. https://www.jetbrains.com/teamcity/
    2. 저는 집에서 테스트하는 관계로 윈도우즈버젼 10.0으로 다운 받았습니다.
  2. 버젼컨트롤연동 준비
    1. 저는 Svn을 주로 사용하니 Svn을 버젼컨트롤로 사용하는 Teamcity프로젝트를 생성하겠습니다.
    2. 팀시티에서는 여러가지 프로젝트를 진행할 수 있기때문에 Git을 사용하는 프로젝트도 추가로 등록할 수 있습니다.
    3. Svn유저등록을 우선 유저명 teamcity, password 1234로 svn에 등록합니다.
  3. TeamCity에서 사용할 DB 설정
    1. 팀시티에서 사용할 DB를 미리 설정합니다.
      1. 저의경우 postgresql이 설치되어있어서 postgresql에 teamcity라는 이름으로 Db를 생성했습니다.
      2. Teamcity가 사용할 User 를 db에 동록해줍니다.
        1. 관리자 계정인 postgres / 관리자 계정비번을 그냥 사용할 경우 유저등록은 하지 않아도 됩니다.
  4. 설치과정 
    1. TeamCity 설치마법사로 진행하다보면 TeamCity에서 사용할 Port번호를 넣으라고 할때 80포트가 막혀있다면 다른 포트번호를 넣어서 진행합니다.
    2. 진행과정중에 Select Service Account for Server, Select Service Account for Agent 에서는 아래처럼 설정~
    3. 그리고 계속 진행하여 설치를 마치면 localhost:8001/mnt가 표시됩니다.
    4. TeamCity First Start 화면에서 C:\ProgramData/JetBrains/TeamCity의 경로를 그대로 두고 Proceed눌러 진행
    5. Database connection setup 화면에서는 postgresql을 사용하기로 했으니 아래처럼 설정합니다.
      1. 사용할 db를 선택하는 항목에서 PostgreSQL을 선택하고 Postgres가 사용하는 Port번호 5432혹은 직접다른것으로 설정했다면 해당 postgres포트번호를 기입하고 접속가능한 계정/Pass를 기입한후 진행합니다.
      2. PostgreSQL JDBC 드라이버가 필요하다고 하니 홈페이지로가서 다운받아 설명하는 경로에 옮겨둡니다.
        1. https://jdbc.postgresql.org/download.html
  5. Create Administrator Account 에 관리자용 유저명과 패스워드를 설정하고 진행합니다.
  6. 설치가 다 되었다면 서비스에 TeamCity Build Agent 와 TeamCity Server가 시작되어있습니다.
    1. 본인컴퓨터 일 경우 http://localhost:8001/profile.html 로 접속하여 유저를 추가합니다.
  7. 프로젝트 추가
    1. 위와 같이 Repository URL로 추가를 하면 버젼컨트롤의 URL로 프로젝트를 추가할수있습니다.
      1. Manually로 추가해도 버젼컨트롤은 따로 설정해야 하니 비슷합니다.
      2. 기입항목중에 Username과 Password항목에 버젼컨트롤에 접속할수있는 Id와 Pass를 기입합니다. 아까 버젼 컨트롤연동준비항목에서 등록하둔 svnid와 패스워드를 기입하고 진행합니다.
    2. 위와같이 Build Configuration Setting항목을 설정합니다.
      1. General Settings 설정
        1. Name: 프로젝트의 이름을 설정합니다.
        2. Artifact paths : 이것은 apk가 생성된 경로를 지정해 둡니다.
          1. 나중에 테스트시 상대경로가 잘안되서 절대경로로 변경하니 잘작동합니다.
      2. Version Control Settings 설정
        1. 위에서 URL로 추가해서 들어왔다면 한가지가 등록되어있을것이고 그렇지 않다면(Manually)로 들어왔다면 +Attach VCS Root 을 클릭하여 버젼컨트롤과 연동시킵니다.
          1. Type of VCS 에 Subversion으로 선택하면 아래 Svn에 대한 설정항목이 나옵니다.
          2. VCS root name에 구별가능한 이름을 기입합니다.
          3. URL에 svn의 주소를 기입합니다.
          4. Username과 passward항목에 Svn에 접근할수있는 id, pass(미리준비해둔)을 기입합니다.
          5. Test Connection버튼을 눌러 연결이 정상적인지 확인합니다.
        2. Build Steps에 +Add build step 를 클릭합니다.
          1. 아래쪽 붉은색인 Advance옵션을 클릭하여 추가 옵션을 넣을수있게 합니다.
          2. Runner type : 에 Gradle 을 선택합니다. (Android Studio 는 Gradle Build를 사용)
          3. Step name : 표시될 구별가능한 이름을 설정합니다. 저는 BuildApk라고 적었습니다.
          4. Gradle tasks : 에 assembleRelease 라고 기입합니다.
          5. Gradle build file: 항목에 build.gradle을 선택합니다.
          6. Working directory: 항목에 svn체크아웃된 경로를 지정합니다.
          7. Save하고 나서 페이지 1시방향에 있는 작은 Run, Action버튼중 Run을 클릭하여 정상작동하는지 확인합니다.
  8. 아래처름 빌드과정도중에 문제가 없으면 파란색으로 그렇지 않다면 빨간색으로 표시됩니다. Artifacts에 View라고 표시가 되면 Artifacts경로가 정상적으로 작동해서 apk가 웹상에 올라가있음을 볼수있습니다.
  9. Email 로 결과를 받기위해서 Email 설정을 합니다.
    1. Administration -> Email Notifier항목에서 저는 저의 gmail smtp를 이용해서 보내는걸로 테스트 했습니다.
    2. gmail로 테스트하기위해선 gmail 보안수준을 낮춰야 합니다.(알려지지 않은 앱이 어쩌구저쩌구)
    3. Test connection 을 실행한후 받을 email을 입력한후 에러가 없는지 확인합니다... 저는 여기서 받을 email주소를 잘못입력해서 =-= 괜한 삽질을 좀 했습니다.