Phpcpd

Cài đặt từ Kho lưu trữ PHP (với curl hoặc wget)

Tài liệu PHPUnit có hướng dẫn rõ ràng về cách

Nếu bạn đã bật tiện ích mở rộng Suhosin, hãy đảm bảo cho phép thực thi PHAR trong php.ini của bạn
suhosin.executor.include.whitelist = phar

tại địa phương

Tải xuống
wget -O phpcpd.phar https://phar.phpunit.de/phpcpd.phar
hoặc
curl -sSL https://phar.phpunit.de/phpcpd.phar -o phpcpd.phar
Sử dụng nó
php phpcpd.phar

toàn cầu

Tải xuống
wget -O phpcpd.phar https://phar.phpunit.de/phpcpd.phar
hoặc
curl -sSL https://phar.phpunit.de/phpcpd.phar -o phpcpd.phar
Cài đặt nó dưới dạng tệp thực thi
chmod a+x phpcpd.phar
________số 8_______
Sử dụng nó
phpcpd

Nếu như các bạn quan tâm đến kỹ thuật CI/CD thì sẽ không thể không biết đến “anh đại” Jenkins. Jenkins là một bộ phần mềm viết bằng Java và hỗ trợ rất mạnh việc xây dựng và triển khai mã trong quá trình phát triển khai mã trên các môi trường mà bạn đang làm như test, beta, production…

Trước đây, để cài đặt một máy chủ Jenkins thì đỏi hỏi khá nhiều công sức và khá rắc rối khiến nhiều anh chị em bỏ cuộc nữa chừng, khiến cho việc tiếp cận với các đồ chơi của Jenkins bị hạn chế. Và trước đây mình cũng đã nhiều lần cài Jenkins và cũng đọc nhưng cũng không thấy mặn mà lắm vì mỗi lần cài đặt, setup khá quái

Tuy nhiên, nhờ sự trợ giúp của Docker, ngày nay, việc cài đặt Jenkins là một trải nghiệm “sung sướng”. Chỉ cần kéo hình ảnh chính thức của Jenkins và làm theo một số chỉ dẫn tại https. // trung tâm. người đóng tàu. com/_/jenkins/ đã nhanh chóng được xây dựng Jenkins để trải nghiệm quá trình xây dựng và triển khai mã nhanh chóng

Jenkins và PHP

Mục tiêu của phần này giới thiệu đến mọi người một hình ảnh Jenkins Docker mà mình xây dựng riêng cho các dự án hằng ngày là tích hợp sắn các phần mềm và plugin đi kèm trong jenkins cho PHP. Hình ảnh này mình để public trên docker hub, có tên là “voduytuan/jenkins-php-docker”

Một số đồ chơi PHP cài đặt thêm cho máy chủ này là
– Toàn bộ đồ chơi tại http. //jenkins-php. org (loại trừ phpdox mình không xài nên không cài đặt)
– Tiện ích mở rộng Xdebug để tạo báo cáo phạm vi mã
– Plugin Jenkins Git để kéo mã từ repo Github hoặc Bitbucket
– Plugin Jenkins Push Over SSH để triển khai mã lên máy chủ
– Docker bên trong jenkins (^^. ) để xây dựng hình ảnh và đẩy lên sổ đăng ký riêng cho các vi dịch vụ dự kiến
Các bạn có thể tham khảo Dockerfile để biết thêm các đồ chơi mình cài đặt cũng như có thể tạo hình ảnh riêng cho mình với các đồ chơi theo yêu cầu của các bạn

You can start Jenkins by the command after
~ > docker run -d --name jenkins -p 9090:8080 -v /data/jenkins/jenkins-php-docker:/var/jenkins_home:rw voduytuan/jenkins-php-docker

Tham số hướng dẫn
– “-v /data/jenkins/jenkins-php-docker. /var/jenkins_home. rw”. Một tham số cần lưu ý là mount ổ đĩa thư mục dữ liệu của jenkins (/var/jenkins_home). Đây là toàn bộ dữ liệu của Jenkins trong quá trình sử dụng. Ở đây mình mount vào thư mục /data/jenkins/jenkins-php-docker trên máy. Bạn có thể để thư mục “jenkins-php-docker” trống hoặc sao chép từ kho lưu trữ của mình (https. //github. com/voduytuan/jenkins-php-docker) để có sẵn một template có tên là “php-template” để sau này khi tạo project thì sử dụng template để tạo nhanh các cấu hình build dự án. Lưu ý phân quyền user cho thư mục bạn mount volume. Đơn giản nhất là quyền 0777

Sau khi chạy docker run, hãy đợi một khoảng thời gian (một vài phút tùy chọn máy chủ) để Jenkins khởi động và bạn có thể truy cập Jenkins thông qua IP của máy chủ và cổng bạn khai báo (vd. 9090). Nếu thành công, bạn sẽ thấy màn hình như bên dưới

Phpcpd

Bảng điều khiển của Jenkins

Khởi tạo Jenkins

Khi chạy Jenkins lần đầu thì Jenkins hoàn toàn không có cơ chế bảo mật nào hết và cho phép truy cập ẩn danh. Bạn có thể thực hiện theo 1 số thao tác đơn giản sau để tạo tài khoản Quản trị viên và phân quyền lại cho toàn bộ hệ thống

Phpcpd

Quản lý Jenkins

Vào Quản lý Jenkins > Định cấu hình Bảo mật Toàn cầu và chỉnh sửa như hình bên dưới để cho phép tạo tài khoản

Phpcpd

Định cấu hình bảo mật toàn cầu

Sau khi cấu hình, nhấn lưu thì góc trên bên phải sẽ hiện liên kết đăng ký và đăng nhập. Tiến hành đăng ký tài khoản đầu tiên

Phpcpd

Jenkins tạo người dùng mới

Sau khi tạo tài khoản và đăng nhập, bạn quay lại trang “Configure Global Security” để cấu hình như bên dưới

Phpcpd

Định cấu hình bảo mật toàn cầu


(Nội dung thay đổi là bỏ cho phép đăng ký và chọn hình thức ủy quyền là Bảo mật dựa trên ma trận và thêm người dùng bạn vừa tạo vào bảng phân quyền, đồng thời chọn hết quyền cho người dùng này, sau đó nhấn Áp dụng và Lưu để hoàn tất

Ngoài ra, cũng trong trang này, phần “Định dạng đánh dấu” được chọn là “HTML thô” để trong trang dự án hiển thị HTML được hiển thị trong phần “Mô tả”

Với tài khoản hiện tại, bạn có thể tạo tài khoản cho các thành viên khác theo yêu cầu sử dụng hệ thống và phân quyền theo yêu cầu của bạn. Bài viết sẽ không đi sâu vào hướng dẫn phân quyền, bạn có thể tham khảo trên google hoặc trên trang web chính thức của Jenkins

Sau khi hết hạn quyền và cài đặt xong, bạn tiến hành tạo dự án để thực hiện CI/CD cho dự án của mình

Tạo dự án và tiến trình xây dựng

– Tạo một dự án mới và đặt tên tùy chọn và với mẫu là “php-template” (nếu thư mục mount của bạn có dự án đã được sao chép từ repo của mình hướng dẫn). (Xem hình)

Phpcpd

Tạo dự án mới trong Jenkins

Nhấn OK để tạo và đến trang cấu hình của dự án này. Trang cấu hình là trang quan trọng nhất của dự án bởi nó sẽ giúp bạn cài đặt các thao tác cho dự án này

Phpcpd

Cấu hình dự án

Có 3 bước cơ bản (quan trọng) trong cấu hình trang mà bạn cần biết là
1. SCM. Bạn cần liên kết đến mã nguồn repo của bạn. Mặc dù Jenkins không hỗ trợ Git, nhưng bản Docker image của mình đã cài đặt plugin Git nên bạn có thể cấu hình liên kết đến các Git repo (github, bitbucket…). Ví dụ cấu hình Git

Phpcpd

Git SCM

2. Xây dựng. dùng để cấu hình, chọn cách thức xây dựng dự án. Ở template “php-template” thì mình build bằng Apache Ant (thông qua file build. xml tại thư mục gốc của mã nguồn – mình sẽ share file build. xml mẫu cho một dự án php ở cuối bài)

3. Hành động sau khi xây dựng. is the thao tác đã được thực hiện. That can't be parse the file output (xml, json. ) từ bước build ra và tạo các báo cáo, hoặc là SSH vào máy chủ từ xa để triển khai code, thực hiện một câu lệnh nào đó hoặc build một docker image mới rồi đẩy lên repo sau khi build thành công. Có rất nhiều plugin của Jenkins hỗ trợ nhiều khía cạnh xây dựng khác nhau. Có thể tham khảo thêm trên plugin Jenkins. Hình chụp một số hành động sau khi xây dựng trong dự án của mình

Phpcpd

Post build Action vẽ biểu tượng

Phpcpd

Đăng hành động xây dựng Đẩy qua SSH

Một số kết quả được tạo ra từ các post-build action theo template mẫu “php-template”

Phpcpd

Bảng điều khiển dự án Jenkins

Phpcpd

Báo cáo bảo hiểm mã PHPUnit

Phpcpd

Âm mưu Jenkins

Phpcpd

Báo cáo JDep

Bạn có thể tìm hiểu thêm tại http. //jenkins-php. org/ để hiểu rõ về cách đọc các báo cáo về ứng dụng PHP của bạn

Hy vọng những chia sẻ về Jenkins này sẽ giúp bạn nhanh chóng và dễ dàng phát triển Jenkins cho hệ thống của mình để quá trình xây dựng và triển khai mã được tự động, nhanh chóng và an toàn hơn