Ci cd gitlab hướng dẫn năm 2024

Từ khóa này đực sử dụng để khai báo và thứ tự các bước (stage) mà pipeline của người dùng sẽ có. Nếu như không được khai báo trong file gitlab-ci.yaml, pipeline của người dùng sẽ bao gồm các stage mặc định của Gitlab:

– .pre

– build

– test

– deploy

– .post

Người dùng có thể tự khai báo các stage với cách đặt tên và thứ tự các stage theo nhu cầu của mình, không yêu cầu phải giống như cấu hình mặc định của Gitlab. Ví dụ:

stages:  
  • linter
  • unit-test
  • build-image
  • deploy-service `
Các stage sẽ được thực thi 1 cách tuần tự, từ trên xuống dưới. Khi stage đầu tiên thực thi “thành công” các job của mình thì stage tiếp theo sẽ bắt đầu xử lý các job cả mình. Quá trình này sẽ do người dùng quy định dựa vào cách liệt kê và sắp xếp các stage. ![](https://https://i0.wp.com/tel4vn.edu.vn/uploads/2022/06/gitlab-ci.jpg)1 stage có thể bao gồm nhiều job Một stage sẽ có thể bao gồm nhiều job khác nhau, nhưng 1 job thì chỉ thuộc 1 stage. Những job nào không khai báo “stage” thì sẽ mặc định được cấu hình thuộc stage “test”. Các job thuộc cùng 1 stage sẽ được xử lý đồng thời (parallel) tùy theo số lượng runner hiện có của repo. ### job: các công việc cần thực hiện của từng stage Các job sẽ được người dùng khai báo bằng cách đặt tên không trùng với các từ khóa mặc định của Gitlab-CI (default, stages, variables,…). Nội dung của 1 job sẽ cơ bản bao gồm: – stage: tên của stage mà job thuộc về. Nếu không khai báo thì mặc định job sẽ thuộc về stage “test” – script: danh sách các câu lệnh mà job sẽ thực hiện – image: Docker image được sử dụng cho job (chỉ áp dụng đối với executor là Docker) – variables: danh sách các biến môi trường của job (tùy chọn – không bắt buộc) – tags: danh sách các tag dùng để chỉ định runner nào sẽ thực thi job Ví dụ:
unit-test-job: # Job có tên là unit-test-job stage: test # Thuộc stage "test" image: python:3.6 # Docker image sử dụng để thực thi job (chỉ áp dụng đối với executor là Docker) tags: # Những runner được đánh tag thuộc danh sách đã liệt kê sẽ thực thi job

  • testing
  • python script: # Danh sách câu lệnh mà job này sẽ thực hiện
  • command test 1
  • command test n `

script: các câu lệnh job sẽ thực thi

Từ khóa này được khai báo bên trong từng job và sử dụng để liệt kê danh sách các câu lệnh cần được thực thi của các job. Mỗi job sẽ cần được khai báo cách “script” để executor có thể thực hiện.

Ci cd gitlab hướng dẫn năm 2024

stage: khai báo job thuộc stage được chỉ định (tùy chọn)

Từ khóa này được sử dụng bên trong các job để khai báo job sẽ thuộc một stage trong danh sách đã khai báo trước đó. Nếu như danh sách stage khác với cấu hình mặc định của Gitlab, bạn cần thêm trường này để xác định rõ job sẽ thuộc stage nào trong pipeline. Nếu không được định nghĩa, job sẽ mặc định thuộc stage “test”.

Ci cd gitlab hướng dẫn năm 2024

image: chỉ áp dụng khi executor là docker (tùy chọn)

Từ khóa này được sử dụng để khai báo Docker image mặc định sử dụng cho toàn bộ các job hoặc chỉ sử dụng cho 1 job cụ thể nếu “executor” của runner là docker.

Ci cd gitlab hướng dẫn năm 2024

tags: dùng để chọn runner xử lý job (tùy chọn)

Khi sử dụng từ khóa này, người dùng có thể chỉ định được runner nào sẽ nhận và xử lý job bằng các liệt ê các tag tương ứng. Mặc định chỉ những runner được đánh tag cùng tên với danh sách đã liệt kê sẽ có quyền xử lý job, những runner còn lại nếu chưa được đánh tag sẽ “hầu như” không được nhận job. Cách đặt tên tag là do người dùng quyết định.

Ci cd gitlab hướng dẫn năm 2024

variables: biến môi trường (tùy chọn)

Từ khóa này được sử dụng để khai báo các biến môi trường được sử dụng toàn bộ các job hoặc cho từng job cụ thể nếu được khai báo bên trong các job. Ví dụ:

Ci cd gitlab hướng dẫn năm 2024
Cách khai báo biến môi trường trong file “.gitlab-ci.yml”

before_script: các câu lệnh job sẽ thực thi (tùy chọn)

Từ khóa này được sử dụng để liệt kê danh sách các câu lệnh cần được thực thi trước khi vào các câu lệnh chính của job được thực hiện. Bạn có thể sử dụng từ khóa này để áp dụng cho toàn bộ các job nếu khai báo bên từ khóa này không thuộc bất kỳ job nào cả.

Ci cd gitlab hướng dẫn năm 2024

after_script: các câu lệnh job sẽ thực thi (tùy chọn)

Từ khóa này được sử dụng để liệt kê danh sách câu lệnh cần được thực thi sau khi “script” bên trên đã thực thi xong. Bạn có thể sử dụng từ khóa này để tiến hành các câu lệnh mang tính chất “dọn dẹp” sau khi đã thực thi xong công việc để giải phóng tài nguyên của hệ thống được sinh ra trong quá trình thực thi “script”.

Ci cd gitlab hướng dẫn năm 2024

Nguồn tham khảo: Gitlab

Phần 5: Tạo Docker Image với Gitlab runner – Docker in Docker (DinD)Phần 6: Deploy AWS Lambda với Gitlab-CI và AWS CLI