Tích hợp CircleCI trong phát triển ứng dụng Ruby on Rails
Trong bài viết trước chúng ta đã Cùng nhau tìm hiểu về Continuous Integration. Vì vậy như đã hứa, hôm nay mình sẽ hướng dẫn các bạn cài đặt và sử dụng 1 trong các công cụ CI phổ biến hiện nay - CircleCI khi phát triển ứng dụng với Ruby on Rails.
1. Đăng ký tài khoản
Bước đầu tiên các bạn cần đăng ký tài khoản của CircleCI. Hiện tại công cụ này chỉ hỗ trợ đăng ký bằng tài khoản Github hoặc Bitbucket:
- Truy cập trang đăng ký https://circleci.com/signup/
- Chọn đăng ký bằng Github hoặc Bitbucket.
- Điền thông tin username, password và xác nhận bảo mật 2 lớp (nếu có) rồi chọn đăng nhập.
- Sau khi chọn Authorize Application thì Dashboard của CircleCI sẽ hiện ra.
Đến đây các bạn đã tạo tài khoản thành công, nhưng để bắt đầu thì còn phải config trong Rails để CircleCI có thể nhận diện và thực thi công việc theo yêu cầu.
2. Config CircleCI trong Rails
Trong project tạo thư mục tên là .circleci
, và tạo file config.yml
( như vậy filepath sẽ là .circleci/config.yml
). Về nội dung của file config.yml thì tuỳ từng project, từng công việc ta muốn CircleCI thực hiện mà sẽ khác nhau, vì vậy trong bài này mình sẽ lấy file config.yml của nddblog
làm ví dụ 😁.
|
|
Mình sẽ giải thích từng phần để các bạn dễ hình dung nhé 😉.
version
: version của CircleCI, hiện nay đã ra tới 2.1 nhưng trong project của mình vẫn là 2 thôi, chưa có thời gian update mà 😥jobs
: các job cần phải thực hiện mỗi khi build trên CircleCI.build
: tên job.docker
: là executor, nói đơn giản là nơi để thực hiện các job. Có 3 loại executor khác nhau: docker, machine và macos.image
: tên image sẽ được sử dụng trong docker, và những image này được lấy từ dockerhub. Trongnddblog
mình sử dụng 2 image là ruby - dùng để chạy project và postgres - dùng để lưu trữ dữ liệu.environment
: các biến môi trường của từng image.RAILS_ENV
cài đặt môi trường rails trên CircleCI là test.POSTGRES_USER
cài đặt username cho database. Lưu ý username ở đây và trong fileconfig/database.yml
phải giống nhau.working_directory
: thư mục lưu trữ source code.steps
: các bước thực hiện trong job.checkout
: lấy code của nhánh đang build từ github hoặc bitbucket về.restore_cache
: restore các dependencies đã được cache từ lần build trước nếu có.run
: thực hiện các command line. Trong file mình có 4 lệnh run lần lượt là cài đặt các dependencies, tạo vào migrate database, chạy test rubocop và chạy rspec test. Nếu các bạn cần chạy lệnh nào khác có thể thêm thoải mái.save_cache
: lưu cache lại các dependencies.store_test_results
: lưu các kết quả test ra file để hiển thị trên CircleCI.store_artifacts
: lưu các kết quả của artifacts ra file để hiển thị trên CircleCI (artifacts là các file như file ảnh, logs, coverage reports….).
Trên đây mình đã giải thích những key quan trọng cần có của 1 file config.yml. Dựa vào đó chắc hẳn các bạn đã có thể tạo ra file riêng cho project của mình rồi nhỉ ✊. Sau khi đã thêm file config.yml vào project thì hãy commit và push file đó lên repo của mình.
3. Chọn project cần build trên CircleCI
Tại Dashboard của CircleCI, các bạn chọn tab Add Projects
, trong list hiện ra tiếp tục chọn Set Up Project tại project mà các bạn vừa mới push file config.yml lên. Sau đó sẽ có các bước hướng dẫn và file mẫu của config.yml nhưng nếu các bạn đã làm theo bước 2 như mình nói ở trên thì không cần làm thêm gì nữa mà chọn nút Start Building rồi ngồi chờ thành quả thôi 😋. Chúc các bạn thành công và có được kết quả như hình dưới đây nhé 👇👇👇
4. Tổng kết
Qua bài hôm này mình đã hướng dẫn các bạn cách tích hợp CircleCI trong việc phát triển ứng dụng với Ruby on Rails. Phần config có lẽ sẽ hơi khó hiểu nên để hiểu thêm về phần này các bạn có thể đọc thêm tại Configuring CircleCI. Mặc dù có chút khó khăn nhưng khi đã hoàn thành các bạn sẽ nhận ra sự tuyệt vời của CI. Tin mình đi ahihi 😉