Khi dự án đã chạy cục bộ, bốn lệnh sau sẽ đưa dự án lên một trang web đang hoạt động trên dịch vụ lưu trữ của Zinn Digital®: đăng nhập, liên kết dự án với một slot lưu trữ, đọc bước kiểm tra trước khi triển khai (pre-flight) và push. Bài viết này hướng dẫn chi tiết từng lệnh, nội dung được in ra, và các lệnh quý khách sẽ sử dụng sau đó — triển khai lại, lịch sử triển khai và nhật ký bản dựng.
Đăng nhập bằng khóa API
Tạo một khóa trong bảng điều khiển tại mục Cài đặt → Khóa API, sau đó:
zinnector login
Khóa được nhập tại dấu nhắc lệnh — khóa không bao giờ được chấp nhận trực tiếp trên dòng lệnh, vì vậy khóa không thể xuất hiện trong lịch sử shell hoặc danh sách tiến trình của quý khách. Trong CI, hãy truyền khóa qua pipe: echo "$ZINN_API_KEY" | zinnector login --profile ci, hoặc thiết lập ZINNECTOR_TOKEN và bỏ qua hoàn toàn lệnh login. Khóa được xác minh trước khi lưu và được lưu với quyền tệp 600. Lệnh zinnector whoami --scopes hiển thị tổ chức mà quý khách đang đăng nhập và các quyền mà khóa sở hữu; khóa sandbox sẽ được gắn nhãn tương ứng.
Liên kết dự án với một slot
zinnector link # chọn một trang web từ danh sách
zinnector link example.com --repo acme/site --branch main
link ghi ID của trang web vào zinnector.json và, trừ khi quý khách truyền --no-repo, sẽ kết nối git remote của dự án với trang web trên nền tảng để mỗi lượt push đều thực hiện triển khai. Hãy commit tệp zinnector.json: một đồng nghiệp khi nhân bản (clone) kho lưu trữ sẽ có thể triển khai đến cùng một nơi mà không cần hướng dẫn thêm. Tệp này không chứa thông tin bảo mật nào.
Đọc bước kiểm tra trước khi triển khai
zinnector check
Đây chính là lệnh tạo nên giá trị của CLI. Lệnh này so sánh dự án của quý khách với slot chuẩn bị được triển khai và in ra mọi điểm không tương thích — cùng mọi phép so sánh không thể thực hiện:
- Phiên bản PHP, với mức chênh lệch phiên bản chính (major) được xếp loại cao vì chắc chắn sẽ gây lỗi trang web và mức chênh lệch phiên bản phụ (minor) được xếp loại thấp hơn, bởi việc đánh giá mọi thứ là nghiêm trọng sẽ khiến người dùng bỏ qua cảnh báo.
- Liệu slot có thể chuyển đổi sang phiên bản quý khách đã dùng để dựng hay không, liệu PHP của slot đã hết vòng đời hỗ trợ (EOL) hay chưa, và liệu máy chủ đã áp dụng phiên bản đó hay mới chỉ nhận lệnh.
- Dung lượng và số lượng tệp của dự án so với dung lượng đĩa và inode thực tế còn lại trên slot — một cây thư mục WordPress có thể hết số lượng tệp cho phép dù vẫn còn cách xa giới hạn dung lượng đĩa.
- Phiên bản WordPress ở mỗi bên, liệu slot đã hoàn tất quá trình khởi tạo (provisioning) hay chưa, và liệu kho lưu trữ đã được kết nối để push hay chưa.
Lệnh chỉ cảnh báo chứ không bao giờ chặn. Mọi kết quả đều có thể ghi đè bằng zinnector push --force, vì quý khách hiểu rõ trang web của mình hơn một công cụ kiểm tra. Phép so sánh không thể thực hiện sẽ được báo cáo là không xác định (unknown), không bao giờ tính là đạt (pass), và phần tóm tắt luôn nêu rõ có bao nhiêu trường hợp như vậy. Theo mặc định, phiên bản PHP cục bộ là phiên bản được khai báo trong zinnector.json; cờ --probe sẽ khởi động môi trường thực thi cục bộ và đo lường trực tiếp. Cờ --strict cũng sẽ thoát với mã lỗi khác 0 khi gặp các trường hợp không xác định, đây là điều mà cổng kiểm soát CI yêu cầu.
Push
zinnector push
push thực hiện kiểm tra pre-flight, push các commit của quý khách, kích hoạt quá trình triển khai và theo dõi cho đến khi hoàn tất, in ra trạng thái cuối cùng và commit đã được triển khai. Cờ --dry-run thực hiện mọi thao tác ngoại trừ việc triển khai; --no-wait kích hoạt triển khai và thoát ngay; --no-git triển khai bất kỳ nội dung nào nền tảng hiện có mà không cần push. Nếu commit được triển khai không phải là commit vừa được push, lệnh sẽ thông báo điều đó.
Khi xảy ra sự cố
zinnector deploys example.com # lịch sử triển khai — trạng thái, commit, trình kích hoạt, thông báo
zinnector logs example.com --build # nhật ký bản dựng của lần triển khai gần nhất
zinnector logs example.com --error # nhật ký lỗi của trang web
zinnector deploy example.com # triển khai lại nội dung nền tảng hiện có
zinnector ai "why is my deploy failing?"
zinnector ai chạy trên nền tảng với chính tài khoản của quý khách, do đó công cụ có thể xem cùng lịch sử triển khai và nhật ký. Từ bên trong dự án, công cụ sẽ gửi cấu trúc dự án — tên thư mục, phiên bản và ID trang web — và tuyệt đối không gửi nội dung tệp.
Liên quan