Triển khai CI/CD với GitLab-CI (P1 – Cài đặt và khởi tạo)

by Sam
5.3K views

Chú ý 1: Phạm vi của bài viết bao gồm việc triển khai CI/CD với GitLab-CI trực tiếp trên thiết bị MacOS, không sử dụng container

Chú ý 2: Do nội dung của phần này hơi nhiều nên mình xin phép tách thành nhiều bài nhỏ để mọi người đọc đỡ bị mệt mỏi và dễ focus vào các phần muốn đọc hơn

Bỏ qua các triết lý hay định nghĩa về CI/CD, mình xin phép đề cập luôn đến việc triển khai CI/CD . Để triển trai CI/CD với GitLab-CI, chúng ta cần làm các bước sau:

  1. Cài đặt gitlab-runner trên thiết bị node (MacOS, Window)
  2. Khởi tạo runner liên kết với GitLab Repository
  3. Cấu hình GitLab Runner với config.toml (optional)
  4. Cấu hình các jobs CI/CD với .gitlab-ci.yml

1. Cài đặt gitlab-runner trên thiết bị node

Để cài đặt gitlab-runner trên máy, chạy command sau trên terminal:

> brew install gitlab-runner

Ngoài ra, các bạn có thể tham khảo quá trình cài đặt trên doc của GitLab (https://docs.gitlab.com/runner/install/)

Sau khi cài xong, bạn có để sử dụng command sau để kiểm tra phiên bản hiện tại trên máy:

> gitlab-runner verify

2. Khởi tạo runner liên kết với GitLab Repository

Chú ý: Để truy cập các chức năng liên quan đến cài đặt GitLab-CI, hãy đảm bảo tài khoản được cấp quyền Maintainer hoặc cao hơn.

Đầu tiên, chúng ta truy cập GitLab Repo cần chaỵ CI/CD, sau đó chọn Settings -> CI/CD -> Expand section Runners.

Thông tin để đăng ký Runner sẽ hiển thị ở đây

Ở đây, hãy chú ý đến hai giá trị là gitlab-ci coordinatorgitlab-ci token

Sau đó. ta dùng command sau để bắt đầu khởi tạo Runner:

> gitlab-runner register

Tiếp đó, ta nhập các thông tin của Runner theo hướng dẫn

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
> https://gitlab.techover.io/ (gitlab-ci coordinator ở trên kia)
Please enter the gitlab-ci token for this runner:
> oH5aKzZsqibPr******** (gitlab-ci token ở trên kia)
Please enter the gitlab-ci description for this runner:
> Techover IO Runner (Mô tả cho runner)
Please enter the gitlab-ci tags for this runner (comma separated):
> develop (gắn tag cho runner)
Please enter the executor: ssh, virtualbox, docker+machine, kubernetes, parallels, shell, docker-ssh, docker-ssh+machine, custom, docker:
> shell (tuỳ chọn executor, ở đây mình sẽ dùng shell)
 Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!  

Như vậy là đã đăng ký xong runner với GitLab Repo, giờ chúng ta sẽ start runner bằng command sau:

> gitlab-runner start 

Reload lại page GitLab, ta sẽ thấy Runner xuất hiện trong danh sách Runners của Repo. Như vậy là đã hoàn thành việc khởi tạo runner cho Repo.

3. Cấu hình GitLab Runner với config.toml (Optional)

Bạn có thể skip qua phần 3 nếu không hứng thú, vì nếu không làm thì GitLab-Ci vẫn chạy bình thường, mà ở đây mình cũng chỉ giới thiệu qua thôi 😀 chi tiết mình sẽ cố gắng làm trong một phần khác trong tương lai . File config.toml bao gồm các cài đặt, tuỳ chỉnh cho runner chạy trên thiết bị. Ta có thể truy cập file config.toml với đường dẫn sau:

> ~/.gitlab-runner/config.toml 

Tại đây bạn có thể tuỳ chỉnh rất nhiều các Các chi tiết về việc cài đặt có thể tham khảo trên doc của GitLab: https://docs.gitlab.com/runner/configuration/advanced-configuration.html

Ví dụ ở đây mình thêm cài đặt giới hạn size của file log lên 40MB (Mặc định là 4MB)

4. Cấu hình các jobs CI/CD với .gitlab-ci.yml

GitLab-CI không có cấu hình mặc định cho CI/CD, để cấu hình ta cần thêm file .gitlab-ci.yml vào thư mục gốc của Repo. File sử dụng YAML, có thể tham khảo cú pháp ở link sau: https://docs.gitlab.com/ce/ci/yaml/

Dưới đây là ví dụ template file .gitlab-ci.yml của GitLab cho Repository sử dụng Swift

# This file is a template, and might need editing before it works on your project.
# Lifted from: https://about.gitlab.com/2016/03/10/setting-up-gitlab-ci-for-ios-projects/
# This file assumes an own GitLab CI runner, setup on a macOS system.
 stages:
   - build
   - test
   - archive
   - deploy
 

 build_project:
   stage: build
   script:
     - xcodebuild clean -project ProjectName.xcodeproj -scheme SchemeName | xcpretty
     - xcodebuild test -project ProjectName.xcodeproj -scheme SchemeName -destination 'platform=iOS Simulator,name=iPhone 8,OS=11.3' | xcpretty -s
   tags:
     - ios_11-3
     - xcode_9-3
     - macos_10-13
 

 archive_project:
   stage: archive
   script:
     - xcodebuild clean archive -archivePath build/ProjectName -scheme SchemeName
     - xcodebuild -exportArchive -exportFormat ipa -archivePath "build/ProjectName.xcarchive" -exportPath "build/ProjectName.ipa" -exportProvisioningProfile "ProvisioningProfileName"
   only:
     - master
   artifacts:
     paths:
       - build/ProjectName.ipa
   tags:
     - ios_11-3
     - xcode_9-3
     - macos_10-13 

Để apply các cài đặt trong file .gitlab-ci.yml, ta chỉ cần đẩy file lên origin. Sau đó Runner sẽ tự động nhận và chạy jobs theo những gì đã định nghĩa trong file.

Để kiểm tra lịch sử chạy các Pipeline, chúng ta truy cập GitLab Repo chaỵ CI/CD, sau đó chọn CI/CD .

Vậy là chúng ta đã hoàn tất quá trình cài đặt và khởi tạo Gitlab runner cho một Repository. Ở các bài viết tiếp theo, mình sẽ nói về việc cài cắm pipeline để chạy CI/CD cho các dự án thực tế. Xin cảm ơn các bạn đã theo dõi 😀

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.