chim bay

Sunday, October 11, 2015

Hướng dẫn tích hợp Travis-CI vào project trên github

Nguồn Coppy toidicodedao.wordpress.com
Như mình giới thiệu ở bài trước, CI mang lại rất nhiều lợi ích cho một dự án phần mềm. Ở các công ty, sẽ có một server để cài đặt Team City, Hudson, Jenkin, TFS… phục vụ cho CI. Tuy nhiên, nếu các bạn làm bài tập nhóm, làm freelance hoặc project riêng, việc setup 1 server riêng cho CI khá là khó khăn.
May thay, với Travis-CI, mọi công việc cài đặt phức tạp đã được thực hiện sẵn cho bạn. Travis-CI có hỗ trợ tích hợp với github. Bạn chỉ cần config project github một chút là xong ngay. (Mình đã có 1 bài hướng dẫn tích hợp Visual Studio và github, nếu cần bạn có thể xem lại nhé).
travis-ci
Cùng bắt đầu nào! Để test chức năng của CI, mình sẽ dùng1 project có sử dụng Unit Test.  Các bạn có thể sử dụng lại project “Viết Unit Test với NUnit” trong bài trước (Lưu ý là CI chạy trên nền Mono, chỉ chạy được NUnit, không chạy được MSTest đâu).
Nếu lười, các bạn có thể fork project của mình tại đây: https://github.com/ToiDiCodeDaoSampleCode/travis-sampleBắt buộc các bạn phải có tài khoản github.
1
Vào trang ravis-ci.org, bấm “Sign in with Github” góc trên bên phải.
travis
Sau khi đăng nhập, bấm vào dấu + bên trái, nhấp vào project muốn test để nó chuyển sang màu xanh là ok. Chờ một chút để Travis tích hợp vào project bên github.
select
Tiếp theo, bạn vào project trên github, kiểm tra xem nó đã nhận được Travis hay chưa?. Bấm Settings  -> Webhooks & Services. Nếu không thấy TravisCI thì bấm Add Service, thêm TravisCI vào.
step1step2step3
Bạn có thể bấm “Test service” để thử xem Github và Travis đã kết nối với nhau chưa.
4
Bước tiếp theo khá đơn giản, bạn chỉ cần tạo 1 file .travis.yml, commit lên thư mục trên github là xong. Bạn có thể tham khảo nội dung file .travis.yml trong folder của mình
language: csharp
solution: TravisSample.sln
install:
– nuget restore TravisSample.sln
– nuget install NUnit.Runners -Version 2.6.4 -OutputDirectory testrunner
script:
– xbuild /p:Configuration=Release TravisSample.sln
– mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe           ./TravisSample.Test/bin/Release/TravisSample.Test.dll
TravisCI sẽ thực hiện build dựa theo file .travis.yml này. Đầu tiên, nó sẽ restore các nuget package của solution. Sau đó build file `TravisSample.sln` và chạy các unit test. Ngay khi bạn vừa push lên git, bạn có thể vào web của Travis-CI để xem quá trình build bắt đầu chạy. Toàn bộ unit test cũng đã pass.
build-passbuild
Giả sử khi sửa code, bạn vô ý làm cho build bị lỗi, hoặc Unit Test chạy sai. Khi commit code lên, TravisCI sẽ tự động build, chạy unit test và báo lỗi.
3
sync
Lỗi sẽ được báo ngay trên CI.
fail1fail2
Không chỉ thế, TravisCI còn gửi mail báo cáo về tình trạng bản build.
mailmail2
Không cần lấy code về, mình vẫn biết được code chạy được hay không, quá tiện lợi phải không nào? Với TravisCI, bạn có thể truy ra “thủ phạm” làm build bị lỗi, code chạy sai, không còn cảnh đùn đẩy đổ thừa qua lại khi code lỗi.

0 comments:

Post a Comment