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는 프로젝트 시작할 때 하는 것이 좋다. 어차피 할거 빨리 할 수록 이득.ㅎ
참고 자료
'타이젠 Tizen' 카테고리의 다른 글
Tizen .Net Xamarin.Forms - 설치 에러 (0) | 2020.09.08 |
---|---|
Tizen .Net Xamarin.Forms - Navigation (0) | 2020.07.22 |
Tizen .Net Xamarin.Forms - MVVM 적용 (0) | 2020.07.16 |
Tizen .Net Xamarin.Forms - Project 구조 (0) | 2020.07.02 |
타이젠은 당신의 손길을 기다립니다. (0) | 2019.12.03 |
타이젠 IoT를 활용한 텔레그램 스마트 CCTV 만들기 (0) | 2019.09.17 |
타이젠 Web Application 개발 팁 (0) | 2018.03.24 |
댓글