Hướng dẫn dùng semifor trong PHP

Phần mềm đang đóng một vai trò lớn hơn bao giờ hết trong cách các công ty cạnh tranh trên nhiều ngành công nghiệp. Các tổ chức lớn nhận thấy rằng cách tiếp cận hiện tại của họ để quản lý phần mềm đang hạn chế khả năng đáp ứng nhanh như yêu cầu của doanh nghiệp. Giao hàng liên tục giúp giải quyết vấn đề này.

Nội dung chính

  • Bắt đầu
  • Thiết lập một dự án trên Semaphore
  • Định cấu hình công trình
  • Bản dựng đầu tiên của chúng tôi
  • Song song hóa các công trình xây dựng của bạn
  • Các giải pháp thay thế nguồn mở
  • Sự kết luận

Nội dung chính

  • Bắt đầu
  • Thiết lập một dự án trên Semaphore
  • Định cấu hình công trình
  • Bản dựng đầu tiên của chúng tôi
  • Song song hóa các công trình xây dựng của bạn
  • Các giải pháp thay thế nguồn mở
  • Sự kết luận

Hướng dẫn dùng semifor trong PHP

Hiểu được phân phối liên tục, một từ thông dụng hiện đã có từ lâu, không phải là vấn đề, nhưng việc triển khai nó theo đúng cách đã là một thách thức đối với khá nhiều người trong chúng ta và chúng ta sẽ thảo luận trong bài đăng này.

  • Bắt đầu
  • Thiết lập một dự án trên Semaphore
  • Định cấu hình công trình
    • Bản dựng đầu tiên của chúng tôi
    • Song song hóa các công trình xây dựng của bạn
  • Triển khai liên tục
  • Các giải pháp thay thế nguồn mở
  • Sự kết luận
    • Related posts:

Bắt đầu

Chúng tôi có thể dễ dàng tải tệp của mình lên máy chủ bằng ứng dụng máy khách mã nguồn mở trên máy tính để bàn như Filezilla. Những người đã sử dụng điều này đều biết rằng quá trình này rất cồng kềnh và khó chịu vì nó không cho phép chúng tôi tự động hóa quá trình triển khai và cuối cùng chúng tôi luôn phải tải lên toàn bộ dự án, ngay cả khi chúng tôi chỉ sửa đổi một phần của nó. Ngoài ra, chúng tôi có thể thực hiện git pull trên máy chủ và ứng dụng của chúng tôi ngay lập tức ở trạng thái mới nhất, nhưng quy trình làm việc này không hoạt động trong thế giới ngày nay, nơi chúng tôi phải liên tục cung cấp phần mềm không có lỗi cho người dùng cuối.

Trong bài viết này, chúng tôi sẽ đề cập đến quy trình triển khai ứng dụng Laravel trên máy chủ Digital Ocean thông qua đường ống phân phối liên tục bằng Semaphore . Mã nguồn của ứng dụng hiện có trên Github .

Thiết lập một dự án trên Semaphore

Đầu tiên, hãy tạo một tài khoản Semaphore . Sau khi đăng ký, chúng tôi thấy một trang để tạo một dự án mới.

Sau đó, chúng tôi phải chọn tài khoản mà kho lưu trữ của chúng tôi hiện diện. Nếu bạn chưa kết nối nhà cung cấp kho lưu trữ mã nguồn của mình với Semaphore, bạn có thể làm như vậy trong bước này. Semaphore ban đầu hỗ trợ Bitbucket và Github.

Nếu bạn đã tách đại diện nói trên, bạn có thể chọn nó trong bước này:

Chúng tôi sẽ chọn nhánh master cho trường hợp của chúng tôi:

Sau khi chúng tôi chọn một nhánh, Semaphore sẽ bắt đầu phân tích dự án.

Semaphore sẽ cố gắng sao chép kho lưu trữ trên máy chủ của họ và tìm nạp một số thông tin meta để bắt đầu. Đối với dự án ví dụ của chúng tôi, thông tin meta sau đã được xác định:

Chúng tôi sẽ chọn phiên bản PHP 7 làm phiên bản PHP ưa thích của chúng tôi và tiếp tục.

Định cấu hình công trình

Chúng tôi sẽ sửa đổi các cài đặt trên để phù hợp nhất với dự án của chúng tôi. Vui lòng kiểm tra cài đặt kỹ lưỡng trước khi tiếp tục với một bản dựng để tránh lỗi.

Bản dựng đầu tiên của chúng tôi

Sau khi cấu hình các cài đặt thích hợp, chúng ta có thể nhấp vào Xây dựng ở màn hình trên. Tiến trình xây dựng sẽ được in trên màn hình.

Giáo sư! Bản dựng của chúng tôi không thành công do các bài kiểm tra không thành công. Điều này cho thấy rằng có vấn đề với mã của chúng tôi.

Trong trường hợp này, vấn đề nằm ở cấu hình bản dựng của chúng ta. Một ứng dụng Laravel điển hình yêu cầu một tệp môi trường ở gốc của nó với các tham số cấu hình cần thiết. Chúng tôi chưa định cấu hình tệp trong dự án của mình. Hãy để chúng tôi tạo một tệp môi trường ở gốc của dự án của chúng tôi.

Đi tới Cài đặt dự án -> Tệp cấu hình và tạo tệp môi trường cho dự án của chúng tôi như sau:

Chúng ta có thể đẩy lên nhánh chính hoặc xây dựng lại từ chính giao diện người dùng Semaphore để bắt đầu lại quá trình xây dựng của mình. Hiện tại, chúng tôi sẽ bắt đầu xây dựng lại từ chính giao diện người dùng bằng cách nhấp vào nút Xây dựng lại ở phía bên phải của lần xây dựng thất bại gần đây nhất.

Semaphore sẽ bắt đầu xây dựng lại kho lưu trữ của chúng tôi bằng cách cài đặt các phụ thuộc cần thiết và chạy thử nghiệm với PHPUnit . Chúng tôi có thể thấy rằng quá trình xây dựng của chúng tôi đang diễn ra thành công.

Song song hóa các công trình xây dựng của bạn

Các nhóm thử nghiệm lớn là một thực tế của bất kỳ dự án nào có quy mô trên trung bình. Nhược điểm của việc có phạm vi bao phủ thử nghiệm ấn tượng như vậy là mất rất nhiều thời gian để chạy bản dựng. Trong các tình huống như vậy, song song hóa là điều cần thiết.

Các nguyên tắc cơ bản đằng sau quá trình song song là chia bộ thử nghiệm của chúng tôi thành các nhóm nhỏ hơn có thể chạy song song. Bạn có thể chia thành các nhóm trên cơ sở các yêu cầu chức năng tương tự hoặc các dịch vụ độc lập hoặc bất kỳ tham số logic nào khác phù hợp nhất với dự án của bạn. Tôi muốn nhóm chúng thành các yêu cầu chức năng tương tự.

Trong ứng dụng của chúng tôi, tôi đã viết hai lớp thử nghiệm đơn giản cho Trang đăng nhập và Trang đăng ký . Hãy để chúng tôi chạy các bản dựng thử nghiệm song song trong Semaphore. Dưới đây là mã cho hai bài kiểm tra này:

class LoginTest extends TestCase
{
    
    public function testLoginPage()
    {
        $this->visit('/login')
             ->see('Login Now');
    }
}
class RegisterTest extends TestCase
{
    
    public function testRegisterPage()
    {
        $this->visit('/register')
             ->see('Register Now');
    }
}

Bây giờ chúng ta có thể định cấu hình một công việc song song trong cài đặt bản dựng của mình để chạy hai bài kiểm tra này một cách riêng biệt. Bạn có thể tìm hiểu thêm về cấu hình kiểm tra song song trong tài liệu của Semaphore .

Hãy đẩy đến master branch để kích hoạt quá trình xây dựng.

git push origin master

Sau khi chúng tôi hoàn thiện, Semaphore sẽ tự động phát hiện sự thay đổi và kích hoạt quá trình xây dựng của chúng tôi với các công việc song song.

Các thử nghiệm của chúng tôi được thực hiện song song như thể hiện trong ảnh chụp màn hình ở trên.

Cuối cùng, hãy thiết lập quy trình triển khai cho dự án của chúng ta. Chúng tôi sẽ triển khai kho lưu trữ của mình tới máy chủ Digital Ocean (đảm bảo bạn đã thiết lập Droplet với máy chủ được trỏ đến home/USER/default trước khi tiếp tục – hướng dẫn tốt ở đây ). Hãy đi qua từng bước:

Chúng tôi sẽ chọn một tùy chọn Triển khai chung vì chúng tôi sẽ chạy các lệnh tùy chỉnh của riêng mình để triển khai.

Chúng tôi có thể chọn “Tự động” hoặc “Thủ công” cho chiến lược triển khai. Chúng tôi sẽ chọn “Triển khai tự động”. Điều này sẽ kích hoạt triển khai tự động bất cứ khi nào chúng tôi đẩy đến chi nhánh master của mình và quá trình xây dựng đi qua.

Ở đây, chúng ta cần chọn nhánh mà chúng ta muốn triển khai. Chúng tôi sẽ chọn nhánh master .

Chúng tôi sẽ nhập các lệnh triển khai tùy chỉnh của chúng tôi mà chúng tôi muốn Semaphore thực thi cho chúng tôi. Lệnh đầu tiên tập hợp các khóa máy chủ SSH công khai của (các) máy chủ của chúng tôi để tránh lời nhắc ủy quyền trong quá trình triển khai.

Dán khóa cá nhân của người dùng triển khai của bạn vào vùng văn bản được cung cấp bên dưới. Điều này sẽ cho phép Semaphore truy cập máy chủ Digital Ocean của chúng tôi và thực hiện các lệnh triển khai.

Nhập tên máy chủ mong muốn của bạn và tiếp tục:

Chúng tôi đã thiết lập thành công máy chủ triển khai của mình. Hãy bắt đầu triển khai thủ công một lần để đảm bảo rằng mọi thứ chạy trơn tru.

Xin chúc mừng! Việc triển khai đầu tiên đã được hoàn thành mà không có bất kỳ lỗi nào.

Nếu vào trang web thực tế, chúng ta có thể thấy rằng ứng dụng đã được triển khai:

Lưu ý : Nếu bản dựng của bạn không thành công, thì bất kỳ triển khai nào được định cấu hình để chạy trên máy chủ của bạn sẽ không được kích hoạt. Việc triển khai chỉ được kích hoạt sau khi xây dựng thành công.

Từ đó trở đi, bất cứ khi nào bạn đẩy đến chi nhánh chính của mình, Semaphore sẽ xây dựng dự án của bạn, chạy thử nghiệm và triển khai tự động. Hãy thực hiện một cuộc đẩy thử nghiệm và xem quá trình.

Dự án của chúng tôi đã được xây dựng thành công và được triển khai tới máy chủ của chúng tôi.

Các giải pháp thay thế nguồn mở

Semaphore là một dịch vụ trả phí, nhưng mang lại hiệu quả tốt cho đồng tiền của bạn. Nếu hiện tại, việc thanh toán cho CD không nằm trong ngân sách của bạn, Gitlab là một nguồn mở thay thế cho nền tảng Semaphore. Chức năng ít nhiều giống hệt nhau, với nhược điểm là bạn phải thiết lập mọi thứ theo cách thủ công và hiệu suất có thể là một vấn đề nghiêm trọng.

Sự kết luận

Giờ đây, chúng tôi đã triển khai một ứng dụng PHP cho máy chủ Digital Ocean với đường ống phân phối liên tục tại chỗ. Bất cứ khi nào bạn đẩy đến một nhánh cụ thể hoặc ai đó gửi yêu cầu kéo, bản dựng sẽ được kích hoạt tự động. Semaphore sẽ giải quyết tất cả những phức tạp cho bạn và cho bạn biết tình trạng của bản dựng của bạn.

Lưu ý rằng đây chỉ là một khóa học đơn giản về các khái niệm trên – xây dựng các tài sản như JS và CSS, đồng thời việc triển khai thời gian chết bằng không cũng có thể thực hiện được với cả Semaphore và các giải pháp tùy chỉnh và chúng tôi sẽ đề cập đến điều gì đó trong một bài đăng trong tương lai. Trong khi đó, bạn có thể xem hướng dẫn trước đây của chúng tôi về Deployer – một công cụ có thể hỗ trợ ngăn xếp trên đạt được điều đó.

Bạn triển khai các dự án PHP của mình như thế nào? Bạn đã sử dụng Semaphore chưa? Bạn cảm thấy thế nào về nó? Sử dụng bất kỳ lựa chọn thay thế miễn phí hoặc trả phí nào khác? Hãy cho chúng tôi biết!