Giới thiệu
Hướng dẫn này chỉ cho bạn cách xây dựng, kiểm tra và xuất bản gói Python.
Các vận động viên được lưu trữ GitHub có bộ đệm công cụ với phần mềm được cài đặt sẵn, bao gồm Python và Pypy. Bạn không cần phải cài đặt bất cứ điều gì! Để biết danh sách đầy đủ các phần mềm cập nhật và các phiên bản được cài đặt sẵn của Python và Pypy, hãy xem "Thông số kỹ thuật cho các vận động viên được lưu trữ GitHub".
Điều kiện tiên quyết
Bạn nên quen thuộc với YAML và cú pháp cho các hành động của GitHub. Để biết thêm thông tin, hãy xem "Tìm hiểu các hành động GitHub."
Chúng tôi khuyên bạn nên có một sự hiểu biết cơ bản về Python, Pypy và PIP. Để biết thêm thông tin, xem:
- Bắt đầu với Python
- Pypy
- Trình quản lý gói PIP
Sử dụng quy trình công việc khởi động Python
GitHub cung cấp một quy trình công việc khởi đầu Python nên hoạt động cho hầu hết các dự án Python. Hướng dẫn này bao gồm các ví dụ mà bạn có thể sử dụng để tùy chỉnh quy trình công việc khởi động. Để biết thêm thông tin, hãy xem quy trình công việc khởi động Python.
Để bắt đầu nhanh chóng, hãy thêm quy trình công việc khởi động vào thư mục .github/workflows
của kho lưu trữ của bạn.
Chỉ định phiên bản Python
Để sử dụng phiên bản được cài đặt sẵn của Python hoặc Pypy trên một người chạy được lưu trữ github, hãy sử dụng hành động setup-python
. Hành động này tìm thấy một phiên bản cụ thể của Python hoặc Pypy từ bộ đệm công cụ trên mỗi người chạy và thêm các nhị phân cần thiết vào PATH
, vẫn tồn tại trong phần còn lại của công việc. Nếu một phiên bản cụ thể của Python không được cài đặt sẵn trong bộ đệm công cụ, hành động setup-python
sẽ tải xuống và thiết lập phiên bản thích hợp từ kho python-versions
.
Sử dụng hành động setup-python
là cách sử dụng Python được khuyến nghị với các hành động của GitHub vì nó đảm bảo hành vi nhất quán trên các vận động viên khác nhau và các phiên bản khác nhau của Python. Nếu bạn đang sử dụng một người chạy tự lưu trữ, bạn phải cài đặt Python và thêm nó vào PATH
. Để biết thêm thông tin, hãy xem hành động setup-python
.
Bảng dưới đây mô tả các vị trí cho bộ đệm công cụ trong mỗi người chạy được lưu trữ github.
Thư mục bộ đệm công cụ | ________số 8 | /Users/runner/hostedtoolcache/* | setup-python 0 |
Bộ đệm công cụ Python | setup-python 1 | setup-python 2 | setup-python 3 |
Bộ đệm công cụ Pypy | setup-python 4 | setup-python 5 | setup-python 6 |
Nếu bạn đang sử dụng một người chạy tự lưu trữ, bạn có thể định cấu hình người chạy để sử dụng hành động setup-python
để quản lý các phụ thuộc của bạn. Để biết thêm thông tin, hãy xem bằng cách sử dụng Setup-Python với một người chạy tự lưu trữ trong setup-python
Readme.
GitHub hỗ trợ cú pháp phiên bản ngữ nghĩa. Để biết thêm thông tin, hãy xem "Sử dụng phiên bản ngữ nghĩa" và "Đặc tả phiên bản ngữ nghĩa".
Sử dụng nhiều phiên bản Python
Sử dụng phiên bản Python cụ thể
Bạn có thể định cấu hình một phiên bản cụ thể của Python. Ví dụ, 3.9. Ngoài ra, bạn có thể sử dụng cú pháp phiên bản ngữ nghĩa để nhận bản phát hành nhỏ mới nhất. Ví dụ này sử dụng bản phát hành nhỏ mới nhất của Python 3.
Không bao gồm một phiên bản
Nếu bạn chỉ định một phiên bản của Python không có sẵn, setup-python
sẽ thất bại với một lỗi như: PATH
0. Thông báo lỗi bao gồm các phiên bản có sẵn.
Bạn cũng có thể sử dụng từ khóa PATH
1 trong quy trình làm việc của mình nếu có cấu hình của Python mà bạn không muốn chạy. Để biết thêm thông tin, hãy xem "Cú pháp quy trình công việc cho các hành động GitHub."
Sử dụng phiên bản Python mặc định
Chúng tôi khuyên bạn nên sử dụng setup-python
để định cấu hình phiên bản Python được sử dụng trong quy trình làm việc của bạn vì nó giúp làm cho các phụ thuộc của bạn rõ ràng. Nếu bạn không sử dụng setup-python
, phiên bản Python mặc định được đặt trong PATH
được sử dụng trong bất kỳ shell nào khi bạn gọi PATH
5. Phiên bản mặc định của Python khác nhau giữa các vận động viên được lưu trữ GitHub, có thể gây ra những thay đổi bất ngờ hoặc sử dụng phiên bản cũ hơn dự kiến.
Ubuntu | Người chạy Ubuntu có nhiều phiên bản Python hệ thống được cài đặt theo PATH 6 và PATH 7. Các phiên bản Python được đóng gói với Ubuntu ngoài các phiên bản mà GitHub cài đặt trong bộ đệm công cụ. |
các cửa sổ | Không bao gồm các phiên bản của Python có trong bộ đệm công cụ, Windows không gửi với phiên bản tương đương của hệ thống Python. Để duy trì hành vi nhất quán với các vận động viên khác và cho phép Python được sử dụng ngoài hộp mà không có hành động setup-python , GitHub thêm một vài phiên bản từ bộ đệm công cụ vào PATH . |
hệ điều hành Mac | Các vận động viên MacOS có nhiều hơn một phiên bản của System Python, ngoài các phiên bản là một phần của bộ đệm công cụ. Các phiên bản Python hệ thống được đặt trong thư mục setup-python 0. |
Cài đặt phụ thuộc
Các vận động viên được lưu trữ GitHub đã cài đặt Trình quản lý gói PIP. Bạn có thể sử dụng PIP để cài đặt các phụ thuộc từ Cơ quan đăng ký gói PYPI trước khi xây dựng và kiểm tra mã của bạn. Ví dụ: YAML bên dưới cài đặt hoặc nâng cấp Trình cài đặt gói setup-python
1 và các gói setup-python
2 và setup-python
3.
Bạn cũng có thể phụ thuộc bộ đệm để tăng tốc độ công việc của mình. Để biết thêm thông tin, hãy xem "Bộ đệm phụ thuộc để tăng tốc độ công việc."
Tệp yêu cầu
Sau khi bạn cập nhật setup-python
1, một bước tiếp theo điển hình là cài đặt các phụ thuộc từ các yêu cầu.txt. Để biết thêm thông tin, xem PIP.
Bộ nhớ đệm phụ thuộc
Bạn có thể lưu trữ và khôi phục các phụ thuộc bằng cách sử dụng hành động setup-python
.
Các ví dụ sau đây phụ thuộc vào bộ đệm cho PIP.
Theo mặc định, các hành động setup-python
tìm kiếm cho tệp phụ thuộc [setup-python
7 cho PIP, setup-python
8 cho PIPENV hoặc setup-python
9 cho thơ] trong toàn bộ kho lưu trữ. Để biết thêm thông tin, hãy xem "Bộ đệm phụ thuộc các gói" trong setup-python
readme.
Nếu bạn có yêu cầu tùy chỉnh hoặc cần điều khiển tốt hơn để lưu trữ, bạn có thể sử dụng hành động python-versions
1. Các phụ thuộc của bộ đệm PIP ở các vị trí khác nhau, tùy thuộc vào hệ điều hành của người chạy. Đường dẫn bạn cần lưu trữ có thể khác với ví dụ Ubuntu ở trên, tùy thuộc vào hệ điều hành bạn sử dụng. Để biết thêm thông tin, hãy xem các ví dụ về bộ đệm Python trong kho lưu trữ hành động python-versions
1.
Kiểm tra mã của bạn
Bạn có thể sử dụng các lệnh tương tự mà bạn sử dụng cục bộ để xây dựng và kiểm tra mã của mình.
Thử nghiệm với pytest và pytest-cov
Ví dụ này cài đặt hoặc nâng cấp python-versions
3 và python-versions
4. Các thử nghiệm sau đó được chạy và đầu ra ở định dạng JUnIT trong khi kết quả bảo hiểm mã được đầu ra ở Cobertura. Để biết thêm thông tin, xem Junit và Cobertura.
Sử dụng flake8 để mã lint
Ví dụ sau đây cài đặt hoặc nâng cấp python-versions
5 và sử dụng nó để xáo trộn tất cả các tệp. Để biết thêm thông tin, xem Flake8.
Bước Lining có python-versions
6. Điều này sẽ giữ cho quy trình công việc không thành công nếu bước lót không thành công. Khi bạn đã giải quyết tất cả các lỗi Linting, bạn có thể xóa tùy chọn này để quy trình làm việc sẽ bắt gặp sự cố mới.
Chạy thử nghiệm với Tox
Với các hành động của GitHub, bạn có thể chạy các bài kiểm tra với Tox và truyền bá công việc trên nhiều công việc. Bạn sẽ cần gọi TOX bằng tùy chọn python-versions
7 để chọn phiên bản Python trong PATH
của bạn, thay vì chỉ định một phiên bản cụ thể. Để biết thêm thông tin, xem Tox.
Dữ liệu quy trình làm việc đóng gói dưới dạng vật phẩm
Bạn có thể tải lên các tạo tác để xem sau khi hoàn thành quy trình làm việc. Ví dụ: bạn có thể cần lưu các tệp nhật ký, kết xuất lõi, kết quả kiểm tra hoặc ảnh chụp màn hình. Để biết thêm thông tin, hãy xem "Dữ liệu quy trình công việc tồn tại bằng cách sử dụng tạo tác."
Ví dụ sau đây cho thấy cách bạn có thể sử dụng hành động python-versions
9 để lưu trữ kết quả kiểm tra từ việc chạy python-versions
3. Để biết thêm thông tin, hãy xem hành động python-versions
9.
Xuất bản để đăng ký gói
Bạn có thể định cấu hình quy trình làm việc của mình để xuất bản gói Python của mình lên một cơ quan đăng ký gói khi CI của bạn kiểm tra. Phần này cho thấy cách bạn có thể sử dụng các hành động GitHub để tải gói của mình lên PYPI mỗi khi bạn xuất bản bản phát hành.
Trong ví dụ này, bạn sẽ cần tạo hai mã thông báo API PYPI. Bạn có thể sử dụng bí mật để lưu trữ mã thông báo truy cập hoặc thông tin cần thiết để xuất bản gói của bạn. Để biết thêm thông tin, hãy xem "Tạo và sử dụng bí mật được mã hóa."
Để biết thêm thông tin về quy trình công việc khởi động, xem setup-python
2.