- vừa được xem lúc

Tìm hiểu về tool CircleCI

0 0 27

Người đăng: Kieu Quoc Hung

Theo Viblo Asia

Đây là bài viết tổng hợp lại kiến thức của mình khi bắt đầu tìm hiểu về CircleCI. Và một hướng dẫn đơn giản để sử dụng nó.

CI là gì?

CI là viết tắt của Continuous Integration có thể dịch là "Tích hợp liên tục". Đây được xem là một phương pháp phát triển phần mềm tối ưu, mỗi khi có một thay đổi đối với code, sẽ có một server tự động build, chạy test để kiểm tra và đảm bảo không có lỗi nào xuất hiện trong quá trình phát triển. Việc này cũng đòi hỏi các thành viên trong team phải liên tục cập nhật code của họ lên các kho lưu trữ một cách thường xuyên.

CD là gì?

CD (Continuous Deployment) tạm dịch là "Triển khai liên tục" là một quá trình phát hành sản phẩm hoặc phần mềm, các thay đổi về code sẽ tự động được deploy tự động lên các server staging, production, cùng với việc chạy các bài test để đảm bạo độ chính xác.

Giới thiệu tool CircleCI

CircleCI là một nền tảng giúp chúng ta có thể áp dụng CI/CD vào dự án một cách dễ dàng. Chỉ cần đăng nhập bằng một tài khoản github là các repo của bạn đã có thể kết nối với CircleCI.

Quá trình chạy 1 job trên CircleCI như sau:

  1. Khi code được merge vào một branch thì sẽ CircleCI sẽ tự động bắt được sự kiện này và chạy job tương ứng đã được config.
  2. CircleCI tạo một môi trường trên server của nó, pull docker images và run các steps để build code dựa theo các config của chúng ta.
  3. Sau khi chạy xong hết các step thì công việc của nó đã xong, bạn có thể xem trạng thái thành công hay thất bại ở màn Dashboard.

Tiếp theo là một số khái niệm khi làm việc với CIrcleCI.

configuration

Toàn bộ cài đặt của bạn với CircleCI đều được đặt ở trong file .circleci/config.yml

|-- .circleci
| |-- config.yml

Chi tiết hơn bạn có thể tham khảo https://circleci.com/docs/2.0/configuration-reference/

pipelines

Một pipeline là toàn bộ cấu hình của bạn khi bạn làm việc với một dự án. Có thể được nhìn thấy thông qua CircleCI cloud. Pipeline bao gồm các workflows của bạn, và workflow lại bao gồm các jobs.

workflows

Chịu trách nhiệm sắp xếp nhiều công việc. Ví dụ như một workflow để build -> chạy test -> deploy.

jobs

Chịu trách nhiệm thực hiện các steps thường là một loạt câu lệnh.

Chạy thử trên ứng dụng rails

Đầu tiên thì mình tạo một repository mới trên github.

Sau khi tạo thì có thể vào mục projects trên CircleCI là đã có thể thấy project vừa tạo.

Tiếp theo thì bạn có thể tạo một project rails, cài đặt rspec, rubocop... và push code nên repo. Để cho tiện thì mình có fork dự án demo của circle về để xem và nó config như sau:

version: 2.1 # Các orb giống như các thư viện chưa các jobs có sẵn cho chúng ta sử dụng
orbs: ruby: circleci/_@.com node: circleci/_@.com jobs: build: docker: # docker image mà ta sử dụng - image: cimg/ruby:2.7-node steps: - checkout # cài đặt gem, bundle - ruby/install-deps # store bundle cache - node/install-packages: pkg-manager: yarn cache-key: "yarn.lock" test: parallelism: 3 docker: - image: cimg/ruby:2.7-node - image: circleci/postgres:9.5-alpine environment: POSTGRES_USER: circleci-demo-ruby POSTGRES_DB: rails_blog_test POSTGRES_PASSWORD: "" environment: BUNDLE_JOBS: "3" BUNDLE_RETRY: "3" PGHOST: 127.0.0.1 PGUSER: circleci-demo-ruby PGPASSWORD: "" RAILS_ENV: test steps: - checkout - ruby/install-deps - node/install-packages: pkg-manager: yarn cache-key: "yarn.lock" - run: name: Wait for DB command: dockerize -wait tcp://localhost:5432 -timeout 1m - run: name: Database setup command: bundle exec rails db:schema:load --trace # Run rspec in parallel - ruby/rspec-test - ruby/rubocop-check workflows: version: 2 build_and_test: jobs: - build - test: requires: - build 

Ở đây các lệnh run đều đã có sẵn trong orb, nhưng tùy vào công việc mà bạn cũng có thể tự viết các lệnh của riêng mình.

Sau khi có file config thì mỗi khi chúng ta có bất kỳ commit nào CircleCI sẽ tự động chạy workflow của chúng ta, bạn có thể cài đặt lại ở phần Project Setting > Advanced.

...

Giao diện và cách sử dụng CircleCI ở mức cơ bản thì khá đơn giản và dễ sử dụng. Hy vọng sau bài viết của mình, các bạn có thể có hứng thú hơn để sử dụng thử nền tảng này.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 70

- vừa được xem lúc

15 phút tìm hiểu CI - Continuous Integration - Tích hợp liên tục

CI LÀ GÌ . Nói tóm lại thì CI là phương pháp được sử dụng để đảm bảo code của toàn dự án luôn build được, luôn chạy đúng (Pass toàn bộ các test case).

0 0 26

- vừa được xem lúc

Những gì bạn cần biết trước khi bắt đầu với CircleCI

Bài viết gốc: dnlblog.com.

0 0 24

- vừa được xem lúc

What is CI/CD?

What is CI/CD. CI / CD giúp tự động hóa, giám sát liên tục trong suốt vòng đời phát triển phần mềm, từ giai đoạn tích hợp và thử nghiệm đến phân phối và triển khai.

0 0 27

- vừa được xem lúc

Nhập môn CICD với Gitlab

Chào mừng các bạn đã quay trở lại với series học Docker và CICD của mình. Từ bài này chúng ta sẽ cùng nhau tìm hiểu về các lợi ích CICD mang lại để tự động hoá toàn bộ quá trình build, test và deploy

0 0 60

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 4): Các mẫu job cơ bản

Sau đây là một số mẫu Github action cơ bản mà các bạn có thể sử dụng để tạo một flow hoàn chỉnh, phụ thuộc vào yêu cầu của từng dự án khác nhau. .

0 1 116