Tizen .Net Xamarin.Forms - CI 적용 타이젠 Tizen 2020. 7. 8. 19:14

Tizen에서 구동하는 .Net Xamarin.Forms Application을 잘 만드는 방법에 대해서 몇가지 주제를 포스팅하려 하는데, CI Continuous Integration 에 대해서 먼저 정리해 볼까 한다.

요즘 CI 없이 개발하는 일은 매우 드물다. 한번 쓰면 안쓰고 개발하는 것이 영 불편하다. CI는 개발 환경 구성에 따라서 적용 방법이 달라지는데, Example repo에 CI 적용한 내용을 간단히 정리해 둔다.

Travis

많이들 쓰는 CI 서비스다. github이랑 연동이 잘 되어 있다. .Net Xamarin app의 테스트와 배포도 쉽게 적용이 가능하다.

적용하는 방법은 매우 간단하다. root에 .travis.yml 파일을 생성해두고, https://travis-ci.org/ 에 가서 등록해 두면 된다. 설정 파일 내용이 직관적이라서 비슷한 프로젝트의 것을 가져다가 적당히 수정해서 쓰기에도 좋고, 잘 모르는 부분은 reference를 찾아봐도 좋다. 잘 나와있다.

deploy이 부분이 조금 어려울 수도 있는데, 내가 설정한 내용은 tag가 새로 업데이트 되었을때, github release에다가 deploy하는 내용의 설정이다. travis 클라우드에서 github에 산출물을 업데이트 해야 할 때 인증이 필요하다. 인증 정보가 노출되면 안되기 때문에, 이때 사용할 token을 travis 클라우드에 생성해두고, 그 token에 대한 api_key를 아래와 같이 업데이트 해주면 된다.

api_key 를 생성하기 위해서 나는 travis client를 설치해서 사용했다.

notifications:
  email:
    on_success: never
    on_failure: change
language: csharp
solution: xamarinExample.sln
os:
  - windows
install:
  - nuget restore xamarinExample.sln
  - nuget install NUnit.Console -Version 3.9.0 -OutputDirectory testrunner
script:
  - msbuild /p:Configuration=Release xamarinExample.sln
  - mono ./testrunner/NUnit.ConsoleRunner.3.9.0/tools/nunit3-console.exe ./xamarinExample.Test/bin/Release/**/xamarinExample.Test.dll
deploy:
  provider: releases
  api_key:
    secure: P/9QttAI1XiZN0opykHKI+Gxz/QB46/mGguvoIW571Crqb3RCHiRt1wkKNyTNcx1ychWH81XpY7Z1R5Gtioy/fGeyoWYmfoRXBHvkq9N3d0yl2rCLCJV/xlBLmmK4mfFwvgd/zQqkCakXVvr+MOvLnopEl+YAQEfFN0JRc3V05sZzyadncazVf3T2n+NoiONw2z+i4gV+PzD6SfvotMrUGDrjoiqnkneRF71ubw0Hl+cJml5JQXZFgZIOcn2N2VLWIZbyt9CeBu7pFeAET2OZitTnXo/Wq5tewWEPglM97CJJpkFLdkrWeEaXrDMXYEdGJJE4XgA9nY80nRZu2C5SlKCkVQJp6Qyv4uLIiuQ3X0kw3nXubOlmSM5dZpFwKh/Co9mwt+8whsKLWRI+/BkmPBzGLBS0HARyiic5HS7esVb/58Z1EkitlJK1ijH+DX2spmjW71mO7gAiUeElAAOu37uIGH3ukE7mhOwW3A/XygklEwMpcyUT1rOwSg3Eql0yiFVanMaixrglsQwO21AyM4zoHW1RgjQ2QNS8SY9P0aMIFDEI9s7EGrgxDc/8B5Wfn/3oRbnM+f35gwXsZuoGEKa/RR6qf3fTisrsYF2X8l6TZ5dYbmt026c91D3gqjUIGX7oIaD9WcEQ2zlpINpru2WNwhoOv2wc4jxydVlmY8=
  file_glob: true
  file:
    - "xamarinExample.Tizen/bin/Release/**/*.tpk"
  on:
    repo: msaltnet/tizen-xamarin-app
    tags: true
  skip_cleanup: 'true'

마치며

CI는 프로젝트 시작할 때 하는 것이 좋다. 어차피 할거 빨리 할 수록 이득.ㅎ

참고 자료

댓글