Tránh địa ngục tích hợp là một nhiệm vụ phải làm nhưng có vẻ đơn giản khi tổ chức của bạn bắt đầu phát triển và tuyển dụng các nhà phát triển mới. Khi làm việc một mình, viết mã của riêng bạn và làm cho nó hoạt động dường như là đủ. Tuy nhiên, làm việc với một nhóm các nhà phát triển phần mềm chuyên nghiệp làm tăng thêm thách thức khi phối hợp nhiều người làm việc trên cùng một mã. Trừ khi bạn muốn dành hàng giờ hoặc thậm chí hàng ngày để sửa mã để cuối cùng mã có thể tích hợp, đảm bảo mọi người đều đồng bộ và đảm bảo không có gì bị hỏng, bạn nên sử dụng Python cho CI/CD
Theo RedHat, “CI/CD là phương pháp phân phối ứng dụng thường xuyên cho khách hàng bằng cách đưa tự động hóa vào các giai đoạn phát triển ứng dụng. Các khái niệm chính được gán cho Python cho CI/CD là tích hợp liên tục, phân phối liên tục và triển khai liên tục. ”
Bây giờ chúng ta biết chúng ta đang nói về cái gì, hãy xem nó hoạt động như thế nào
Cách xây dựng đường dẫn CI/CD bằng Python
Chúng tôi sẽ xây dựng một quy trình CI/CD nhỏ theo 7 bước như bạn sẽ thấy bên dưới. Bắt đầu nào
Viết chương trình Python
Đầu tiên, chúng tôi cần một phần mềm nhỏ sẽ được triển khai lên đám mây. Chúng tôi sẽ xây dựng một trình tạo tên phim, nhưng nó cũng có thể là một hệ thống đề xuất phim
Để làm điều này, trước tiên hãy tạo một thư mục mới [hãy gọi nó là “python-cicd”].
Trong thư mục này, tạo một thư mục khác có tên là “generator” và trong thư mục này, lưu hai tệp.
- Một tệp trống có tên là “__init__. py”
- Và tập lệnh này được gọi là “trình tạo. py”
Liên kết. tập lệnh
Bạn sẽ có thể chạy tập lệnh Python này từ dòng lệnh bên trong thư mục “trình tạo” mà chúng tôi đã đề cập ở trên;
python-cicd$ python generator/generator.py
Honor With Men'S Legacy
python-cicd$ python generator/generator.py
Construction Against Directors
có vẻ tốt. Bây giờ hãy tiếp tục và thêm các từ của riêng bạn để tạo thêm các tiêu đề phim gốc.
tự động kiểm tra
Nhiều lập trình viên chọn kiểm tra mã họ đang viết thủ công bằng cách gọi đoạn mã họ đang phát triển, sau đó in kết quả ra bàn điều khiển và cuối cùng, quét đầu ra một cách trực quan để biết chính xác. Điều này hoạt động cho các nhiệm vụ đơn giản nhưng đặt ra một số vấn đề
• Khi đầu ra quá lớn, sẽ khó phát hiện lỗi hơn
• Khi người lập trình mệt mỏi, rất dễ bỏ sót đầu ra không chính xác
• Khi tính năng được triển khai trở nên lớn hơn, chúng tôi có xu hướng bỏ sót các lỗi mà chúng tôi có thể đã giới thiệu trong các phần đã được “thử nghiệm” trước đó
• Bởi vì các tập lệnh kiểm tra không chính thức có xu hướng chỉ hữu ích cho lập trình viên đã viết chúng, điều này có nghĩa là nó không hữu ích cho các nhà phát triển khác
Những vấn đề này là lý do thử nghiệm đơn vị đã được phát minh. Thông qua thử nghiệm đơn vị, bạn viết lệnh gọi mẫu cho các đoạn mã và so sánh giá trị trả về với giá trị mong đợi
So sánh này thường được thực hiện theo cách mang lại ít hoặc không có đầu ra khi thử nghiệm vượt qua và đầu ra rất rõ ràng nếu không. Bạn có thể sử dụng khai thác thử nghiệm để chạy thử nghiệm từ một số tập lệnh thử nghiệm và chỉ báo cáo lỗi cũng như tóm tắt thống kê về các thử nghiệm đã vượt qua
Chúng tôi cần một số công cụ bổ sung để chạy các bài kiểm tra đơn vị mà chúng tôi sẽ viết. Chúng có sẵn dưới dạng gói Python cho CI/CD. Để cài đặt chúng, bạn nên sử dụng một công cụ gọi là virtualenv
python-cicd$ virtualenv venv
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Tiếp theo, tạo một tệp mới có tên “requirements. txt” liệt kê phần phụ thuộc pytest
pytest==6.2.4
Để tải xuống các phụ thuộc được liệt kê trong tệp yêu cầu, bạn sẽ cần thực thi lệnh “pip”
[venv] python-cicd$ pip install -r requirements.txt
Tạo một thư mục mới có tên là “test” và đặt hai tệp vào bên trong.
- Một tệp trống có tên là “__init__. py”
- Và tập lệnh này có tên là “test_generator. py”
Liên kết. tập lệnh
Sau đó chạy file test
[venv] python-cicd$ python -m pytest -v test/test_generator.py
Bạn sẽ thấy họ đi qua
Đẩy mã của bạn lên GitHub
Chúng tôi đã chọn GitHub cho bài viết này, nhưng bạn có thể sử dụng hầu như bất kỳ nhà cung cấp Git nào. Hãy bắt đầu bằng cách đăng nhập vào GitHub [trước tiên bạn nên có một tài khoản nếu chưa có] và sau đó tạo một kho lưu trữ công khai mới có tên là “python-cicd”
Trong thư mục dự án của bạn, hãy tạo một tệp mới có tên “. gitignore” có chứa nội dung sau
venv
__pycache__
test/__pycache__/
generator/__pycache__/
Điều này sẽ ngăn Git thêm virtualenv hoặc bất kỳ tệp IDE nào có thể gây ra sự cố cho chúng tôi sau này vào repo của chúng tôi. Bây giờ, bạn nên khởi tạo Git cục bộ và đẩy mã của mình lên GitHub
[python-cicd] $ git init
[python-cicd] $ git add *
[python-cicd] $ git commit -m "Initial commit"
[python-cicd] $ git remote add origin
git@github.com:/python-cicd.git
[python-cicd] $ git push -u origin master
Thiết lập GitHub Actions CI để liên tục chạy thử nghiệm tự động của bạn
Truy cập kho lưu trữ GitHub của bạn và tạo quy trình làm việc mới trong tab hành động
Điều này sẽ cam kết một tệp YAML vào kho lưu trữ của bạn. bên trong. github/workflows, tệp YAML của bạn phải tương tự như thế này.
Liên kết. tập lệnh
Hãy nhớ thay đổi phiên bản Python thành phiên bản bạn đang sử dụng trong dự án của mình
Sau đó, hãy dùng thử bằng cách thực hiện bất kỳ thay đổi nào đối với mã của bạn và đẩy chúng lên; .
Xin chúc mừng. Bạn đã xây dựng thành công quy trình tích hợp liên tục đầu tiên của mình
Thiết lập Wily để liên tục kiểm tra chất lượng mã của bạn
Wily là một công cụ python giúp bạn theo dõi khả năng bảo trì của dự án, để viết Mã đơn giản và dễ bảo trì hơn
Trong mỗi bản dựng, chúng tôi sẽ hiển thị sự phát triển của điểm khả năng bảo trì của bạn và các chỉ số khác, chẳng hạn như dòng mã hoặc độ phức tạp của chu trình.
Đầu tiên, chúng ta cần cài đặt Wily.
[venv][python-cicd] $ pip install wily
Thêm Wily theo yêu cầu của bạn. txt
________số 8
Sau đó, chúng tôi sẽ thêm Wily vào đường dẫn hành động GitHub bằng cách chỉnh sửa tệp YAML của chúng tôi. Thêm một bước mới vào tệp quy trình của chúng tôi, được gọi là “Wily”, vào cuối tệp của bạn.
Liên kết. tập lệnh
Đẩy các thay đổi của bạn và kiểm tra việc thực thi các hành động GitHub;
Biến chương trình Python thành ứng dụng web
công việc tuyệt vời. Chúng tôi đã có một đường dẫn CI để kiểm tra chức năng và chất lượng
Vì chúng tôi sẽ triển khai phần mềm cho Heroku dưới dạng ứng dụng web, trước tiên chúng tôi cần viết một trình bao bọc Python Flask nhỏ xung quanh trình tạo phim của chúng tôi để làm cho chương trình phản hồi các yêu cầu HTTP và xuất HTML
Thêm mã bên dưới vào tệp có tên “ứng dụng. py” trong thư mục gốc của thư mục dự án của bạn
Liên kết. tập lệnh
cài đặt bình
[venv][python-cicd] $ pip install flask
Thêm bình theo yêu cầu của bạn. txt.
________số 8
Bây giờ bạn có thể chạy ứng dụng Flask cục bộ
python-cicd$ virtualenv venv
1
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Mở vị trí máy chủ cục bộ và bạn sẽ thấy ứng dụng chạy trơn tru.
Làm mới nó một vài lần và xem các ý tưởng về tiêu đề phim
Đẩy các thay đổi của bạn và xem hành động kỳ diệu của Wily.
Triển khai ứng dụng web lên Heroku
Heroku là một nền tảng đám mây được sử dụng để lưu trữ các ứng dụng web nhỏ và có thể mở rộng. Nó cung cấp một gói miễn phí, vì vậy hãy truy cập https. //đăng ký. heroku. com và đăng ký nếu bạn chưa làm như vậy
Sau khi bạn ở trong Heroku, hãy đồng bộ hóa kho lưu trữ GitHub của bạn với Heroku CLI, vì vậy, bất cứ khi nào bạn đẩy các thay đổi mới vào mã của mình trong GitHub, Heroku sẽ tự động xây dựng và triển khai ứng dụng của bạn
Bắt đầu bằng cách tạo một ứng dụng mới trong Heroku và trong tùy chọn phương thức triển khai, hãy chọn “kết nối với GitHub. ”
Bạn có thể phải đăng nhập vào GitHub nếu chưa đăng nhập và chọn repo cho dự án.
Heroku phục vụ các ứng dụng Python với Gunicorn “Green Unicorn”, một máy chủ web Python được triển khai đơn giản, nhẹ về tài nguyên máy chủ, khá nhanh và tương thích rộng rãi với một số khung web.
Đầu tiên, chúng ta cần cài đặt nó.
python-cicd$ virtualenv venv
2
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Thêm Gunicorn theo yêu cầu của bạn. txt
________số 8
Trong thư mục gốc của dự án của bạn, hãy tạo một “Procfile” và viết đoạn mã sau
python-cicd$ virtualenv venv
4
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Sau đó, tạo một “thời gian chạy. txt” và bao gồm phiên bản Python bạn đang sử dụng; . 6. 14
python-cicd$ virtualenv venv
5
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Tạo một “wsgi. py” và chèn đoạn mã sau
python-cicd$ virtualenv venv
6
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Cam kết các thay đổi của bạn và đẩy chúng lên Heroku.
python-cicd$ virtualenv venv
7
Honor With Men'S Legacy
python-cicd$ source venv/bin/activate
[venv] python-cicd$
Nếu mọi thứ suôn sẻ, bạn sẽ thấy trình tạo phim hoạt động trên đám mây.
chúc mừng. Giờ đây, với mọi thay đổi đối với mã của bạn, bạn sẽ tự động chạy thử nghiệm, kiểm tra khả năng bảo trì và triển khai lên Heroku. Nếu bạn gặp phải bất kỳ sự cố nào trong quá trình triển khai bằng Python cho CI/CD, vui lòng liên hệ với chúng tôi hoặc xem trang Python chính thức của Heroku