Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
Trong chu trình của một project, ta thường trải qua nhiều bước khác nhau cho tới khi ra được hoàn chỉnh sản phẩm cuối cùng. Những bước này thường là các bước đồng bộ hoặc xen kẽ, và ta có khái niệm “Continous Integration” tức CI để thực hiện các bước này tự động sau khi ta xây dựng kịch bản cho nó.
GitLab CI được triển khai như một tính năng quan trọng và mang tới sự tiện dụng dành cho những ai đang sử dụng . Bạn không phải trả tiền, nó có sẵn miễn bạn lên kịch bản đúng. Trong bài viết này, Chúng tôi sẽ đưa ra các khái niệm và cùng giải thích cho các bạn hiểu để có kiến thức về “món hàng” thú vị này.
Mỗi khi một lập trình viên tạo ra các thay đổi trong code, người đó thường lưu lại nó trong một commit. Sau đó, người này đẩy code lên (gọi là push) lên GitLab CI để những người khác trong đội nhóm của mình có thể thấy nó và đánh giá.
GitLab cũng bắt đầu làm những việc mà nó được giao, khi commit đó lên, nếu mà bạn cấu hình . Những thao tác nó làm, ta gọi là “runner”. Hãy tưởng tượng “runner” thực ra là một máy chủ, tương tự như máy tính của bạn, nhưng thực thi các hướng dẫn có trong file yml
nằm ngay trong project của bạn, và nó sẽ bao gồm các báo cáo gửi lại và được hiển thị trong giao diện của mình.
Khi lập trình viên nào đó hoàn thành việc làm một tính năng mới hay fix bug (những thao tác đòi hỏi nhiều commit), họ có thể tạo yêu cầu nhập vào cây nhánh chính (Merge Request), nơi mà Git cung cấp giao diện trực quan để đánh giá và tiếp tục đưa ra các cải thiện cho tới khi hoàn tất và được “merged” vào nhánh chính.
Pipeline bao gồm :
Jobs : Các công việc được giao thực thi. ( Ví dụ : biên dịch mã hoặc chạy test )
Stage : Xác định các thời điểm và cách thực hiện. ( Ví dụ : test chỉ chạy sau khi biên dịch thành công )
Pipeline hoạt động theo nguyên tắc sau :
Bên dưới là ví dụ về đồ thị Pipeline thông thường :
Tóm lại, các bước để GitLab CI hoạt động như sau :
Rút gọn lại:
.gitlab-ci.yml được viết theo định dạng YAML. Bạn có thể tìm hiểu thêm tại đây.
Như đã đề cập ở trên, .gitlab-ci.yml cho Runner biết những công việc cần phải làm. Mặc định, nó sẽ chạy một pipeline với 3 stage :
Tuy nhiên, bạn không cần phải sử dụng cả 3 stage, các stage không được giao việc sẽ được bỏ qua.
Dưới đây là ví dụ cấu hình đơn giải:
image: php:latest
cache:
paths:
– vendor/
before_script:
– apt-get update -yqq
– apt-get install -yqq git libpq-dev libcurl4-gnutls-dev libicu-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev libonig-dev libzip-dev
# Install PHP extensions
– docker-php-ext-install mbstring pdo_pgsql curl intl gd xml zip bz2 opcache
# Install & enable Xdebug for code coverage reports
– pecl install xdebug
– docker-php-ext-enable xdebug
# Install and run Composer
– curl -sS https://getcomposer.org/installer | php
– php composer.phar install
services:
– mysql:5.7
# Set any variables we need
variables:
# Configure mysql environment variables (https://hub.docker.com/r/_/mysql/)
MYSQL_DATABASE: mysql_database
MYSQL_ROOT_PASSWORD: mysql_strong_password
# Run our tests
# If Xdebug was installed you can generate a coverage report and see code coverage metrics.
test:
script:
– vendor/bin/phpunit –configuration phpunit.xml –coverage-text –colors=never
Đây là cấu hình đơn giản nhất có thể hoạt động với hầu hết các ứng dụng php
Trước mỗi job, các lệnh được xác định bởi before_script được thực thi.
Sau khi tạo file .gitlab-ci.yml, thêm nó vào git repos và push nó lên.
Trở về Pipeline page, bạn sẽ thấy pipeline đang ở trạng thái pending. Bạn cũng có thể tới page Commits, để ý icon tạm dừng nhỏ bên cạnh commit SHA.
Gitlab Runner là thành phần cực kỳ quan trọng trong workflow. Nếu không có Runner thì sẽ không có lệnh test, deploy nào được thực thi. Runner có nhiều loại, phân biệt dựa vào cái gọi là executor. Khi khởi tạo runner, bạn sẽ phải chọn nó là loại executor nào, và nó sẽ quyết định môi trường thực thi các câu lệnh trong file config ở trên. Bạn có thể tham khảo link https://docs.gitlab.com/runner/executors/ để biết sự khác nhau của các executor cũng như cách cài đặt, cấu hình chúng.
Một Runner có thể là một máy ảo (VM), một VPS, một bare-metal, một docker container hay thậm chí là một cluster container. Gitlab và Runners giao tiếp với nhau thông qua API, vì vậy yêu cầu duy nhất là máy chạy Runner có quyền truy cập server.
Một Runner
có thể xác định cụ thể cho một dự án nhất định hoặc phục vụ cho nhiều dự án . Nếu nó phục vụ cho tất cả project thì được gọi là Shared Runner
.
Để xác định xem Runner nào được chỉ định cho project của bạn. Vào Settings -> CI/CD.
Để Runner hoạt động được, bạn cần thực hiện 2 bước :
REGISTRATION_TOKEN sẽ được lấy thông tin như trong hình :
Sau khi registration thành công :
Sau khi cấu hình thành công, bạn có thể thấy trạng thái của commit cuối cùng đã chuyển từ pending thành running or success or failed…
Bạn có thể theo dõi tất cả pipeline trong project :
Bạn sẽ có nhiều thứ không cần làm nữa, mà thay vào đó, nó được thực hiện tự động bởi CI.
Chẳng hạn, chu trình thực thi một ứng dụng web ví dụ sẽ là:
Nếu thông thường, bạn phải chờ đợi từ trình soạn thảo code (nhưng đôi khi chính lập trình viên lại cố tình bỏ qua), thì nay, với GitLab CI , mọi thứ có thể dễ dàng được kiểm soát và qua kiểm thử.
Thêm vào nữa, với những phần build và deploy khác nhau, bạn sẽ cần tách ra, chẳng hạn:
Thì nay, toàn bộ thao tác đó sẽ được auto thực hiện qua GitLab CI , bằng cách bạn cứ đẩy code lên branch develop thì sẽ tự build và đẩy lên. Vậy là bớt được việc làm đi làm lại hàng ngày rồi.
GitLab CI không chỉ có ứng dụng thực tiễn mà còn trở thành một món hàng quí giá không thể bỏ qua để bạn tận dụng khi sử dụng tại GitLab. Với vài chia sẻ ngắn ở trong bài viết này, hi vọng bạn sẽ cất công tìm hiểu thêm về GitLab CI và sử dụng nó thành thạo.
———————————
Xem thêm trang hỗ trợ tại link
Tham khảo dịch vụ VPS – Server tại P.A Việt Nam
https://www.pavietnam.vn/vn/vps-server.html
Nhận nhiều thông tin khuyến mãi – ưu đãi tại P.A Việt Nam
https://www.pavietnam.vn/vn/tin-tuc-chuong-trinh-khuyen-mai-ten-mien-hosting.html