Trong ví dụ này, chúng tôi trình bày cách sử dụng GitHub để tạo gói python [sử dụng pip] từ các tệp nguồn [python] khác nhau. Tệp gói đã tạo [*. hắc ín. gz] sau đó được cài đặt và chạy trên nhóm Raspberry Pis hoặc thiết bị biên nhúng của bạn
Quá trình bắt đầu bằng cách đẩy các thay đổi mã nguồn của bạn vào kho lưu trữ GitHub của bạn. Sau đó, sử dụng các tác vụ GitHub, mã nguồn của bạn được đóng gói và cuối cùng gói được đặt vào qbee của bạn. trình quản lý tệp io. Từ đó, bạn có thể phân phối và cài đặt nó trên nhóm thiết bị bạn đã chỉ định
Chúng tôi cung cấp tập lệnh thử nghiệm mẫu sử dụng gói mới được cài đặt. Là một tính năng thuận tiện, tập lệnh này cũng được phân phối cùng với gói
Nếu chúng tôi muốn xây dựng một tệp thực thi [được gọi là hi-pi] cho Raspberry Pi của mình, chúng tôi có thể sử dụng đoạn mã sau
Cách đóng gói được lấy cảm hứng từ hướng dẫn này
Cấu trúc thư mục gói¶
Để xây dựng gói
python3 setup.py sdist
1 của riêng chúng tôi có tên là python3 setup.py sdist
2, chúng tôi cần cấu trúc thư mục như saucấu trúc tệp
py_qbee_tst/
py_qbee_tst/
__init__.py
hello.py
bye.py
bin/
qbee_tst.py
setup.py
nơi các tệp nguồn của gói được đặt trong thư mục con
python3 setup.py sdist
3. Trong thư mục python3 setup.py sdist
4, chúng tôi đã đặt một tập lệnh mẫu được cài đặt cùng với gói. python3 setup.py sdist
5 cung cấp thông tin chi tiết về gói sẽ được xây dựngĐể xây dựng gói
python3 setup.py sdist
2 của chúng tôi để cài đặt với pip, chúng tôi chỉ cần chạy lệnh python3 setup.py sdist
tạo một tệp python3 setup.py sdist
7 chứa gói. Gói này hiện có thể được phân phối cho bất kỳ hệ thống đích nào và được cài đặt qua pip3 install py_qbee_tst-0.1.tar.gz
Chúng tôi sẽ tự động hóa quy trình này qua GitHub như được mô tả trong Quy trình làm việc tự động bằng GitHub. Đầu tiên chúng tôi giới thiệu dự án đồ chơi python3 setup.py sdist
1Các tệp nguồn gói sẽ được xây dựng¶
Dự án đồ chơi của chúng tôi bao gồm hai tệp
python3 setup.py sdist
1 chứa các quy trình đã thực hiện và và tệp pip3 install py_qbee_tst-0.1.tar.gz
0 thu thập tất cả các quy trình có liên quan pip3 install py_qbee_tst-0.1.tar.gz
1 python3 setup.py sdist
4 pip3 install py_qbee_tst-0.1.tar.gz
2 python3 setup.py sdist
6 pip3 install py_qbee_tst-0.1.tar.gz
0 python3 setup.py sdist
8Tệp thiết lập gói¶
Để tạo một gói, chúng tôi xác định tệp thiết lập
python3 setup.py sdist
5py_qbee_tst/
py_qbee_tst/
__init__.py
hello.py
bye.py
bin/
qbee_tst.py
setup.py
0Kiểm tra gói đã cài đặt¶
Đối với mục đích thử nghiệm, chúng tôi gửi tập lệnh cùng với gói được đặt trong thư mục
python3 setup.py sdist
4 pip3 install py_qbee_tst-0.1.tar.gz
6py_qbee_tst/
py_qbee_tst/
__init__.py
hello.py
bye.py
bin/
qbee_tst.py
setup.py
3Quy trình làm việc tự động bằng GitHub¶
Tuy nhiên, chúng tôi mong muốn thiết lập quy trình làm việc tự động, nơi chúng tôi
- sử dụng git để quản lý kiểm soát phiên bản
- thiết lập trình chạy GitHub [sử dụng các tác vụ GitHub] để xây dựng mã của chúng tôi sau khi kích hoạt đẩy
- sao chép gói đã tạo vào trình quản lý tệp
7 thông qua lệnh gọi APIpip3 install py_qbee_tst-0.1.tar.gz
- sử dụng phân phối tệp
7 để phân phối [và cài đặt] gói trên danh sách thiết bịpip3 install py_qbee_tst-0.1.tar.gz
Cách tạo kho lưu trữ trên GitHub
Kiểm tra tài liệu chính thức về cách tạo kho lưu trữ trên GitHub
Khi kho lưu trữ được thiết lập, trước khi tạo trình chạy, hãy thiết lập bí mật GitHub như trong ảnh chụp màn hình sau
Ở đó, chúng tôi chỉ định tên người dùng
pip3 install py_qbee_tst-0.1.tar.gz
7 python3 setup.py sdist
40 và mật khẩu python3 setup.py sdist
41 của chúng tôi, vì chúng tôi không muốn chúng bị lộĐiều tiếp theo cần làm là tạo các hành động GitHub. Chúng chạy một tập lệnh thiết lập cụ thể trên cái gọi là người chạy. Bạn có thể sử dụng những cái do GitHub cung cấp. Ngoài ra, có thể sử dụng của riêng bạn. Nếu bạn nhấp vào "tự thiết lập quy trình làm việc", bạn có thể tạo quy trình làm việc của mình
Kịch bản chúng tôi đã sử dụng là như sau
python3 setup.py sdist
42 python3 setup.py sdist
0Nhận xét về tệp yaml
- hành động này được kích hoạt khi đẩy đến nhánh
43python3 setup.py sdist
- người chạy là một máy ảo có HĐH
44 như chúng tôi đã chỉ địnhpython3 setup.py sdist
45python3 setup.py sdist
- máy ảo mới này chạy
46 để nhận mã từ kho lưu trữpython3 setup.py sdist
47 cùng với các phụ thuộc cần thiết được thiết lập sao cho mã có thể được đóng góipython3 setup.py sdist
- việc đóng gói thực tế được thực hiện thông qua
48python3 setup.py sdist
- một hành động GitHub tùy chỉnh đặt tệp đầu ra vào trình quản lý tệp
7 [trong hành động đó, API REST củapip3 install py_qbee_tst-0.1.tar.gz
7 được sử dụng, c. f. phân phối tệp qua API]pip3 install py_qbee_tst-0.1.tar.gz
Lưu ý rằng thông tin đăng nhập của bạn không bị tiết lộ khi chúng tôi sử dụng bí mật GitHub để mã hóa chúng như có thể thấy trong đầu ra hành động
Cài đặt gói trong pip3 install py_qbee_tst-0.1.tar.gz
7 bằng phân phối tệp¶
pip3 install py_qbee_tst-0.1.tar.gz
Cuối cùng, chúng tôi phân phối tệp gói của mình tới các thiết bị từ xa như bình thường với phân phối tệp
Lưu ý rằng việc cài đặt gói rất đơn giản. Sử dụng
python3 setup.py sdist
62 [do chúng ta cài đặt cho python3 setup.py sdist
47] nên không cần giải nén gói python3 setup.py sdist
7 đã tạo. Thông qua lệnh python3 setup.py sdist
3gói python3 setup.py sdist
2 với phiên bản python3 setup.py sdist
66 được cài đặt trên toàn cầu và cờ python3 setup.py sdist
67 gây ra một bản cập nhật nếu gói đã được cài đặt. Tập lệnh thử nghiệm pip3 install py_qbee_tst-0.1.tar.gz
6 được đặt trong thư mục bin của cấu trúc thư mục mã nguồn của bạn cũng được cài đặt trên toàn cầu trong thư mục python3 setup.py sdist
69. Do đó, chúng tôi thêm lệnh chạy python3 setup.py sdist
0vào lệnh cài đặt ở trên. Chúng tôi chuyển đầu ra thành python3 setup.py sdist
80 với người dùng python3 setup.py sdist
81 để tạo tệp đầu ra với chủ sở hữu python3 setup.py sdist
81. Như chúng ta có thể thấy từ đầu ra, tập lệnh cài đặt và thử nghiệm đã hoạt độngSo sánh với tập lệnh được trình bày trong Kiểm tra gói đã cài đặt
triển khai tự động
Sử dụng quy trình công việc này, mỗi khi bạn đẩy các thay đổi mã của mình vào kho lưu trữ, tệp gói sẽ luôn được thay thế trong trình quản lý tệp
pip3 install py_qbee_tst-0.1.tar.gz
7. Khi tải lên tệp mới, phân phối tệp pip3 install py_qbee_tst-0.1.tar.gz
7 được kích hoạt cùng với lệnh chạy mà bạn đã cung cấp [là gói cài đặt cùng với tập lệnh kiểm tra]Do đó, tất cả các thiết bị cạnh của bạn được cập nhật bằng một lệnh git push đơn giản. ]
phiên bản gói
Để dễ trình bày, chúng tôi đã mã hóa cứng cài đặt phiên bản
python3 setup.py sdist
66 của gói python3 setup.py sdist
2 tùy chỉnh của chúng tôi. Tất nhiên, người ta có thể thay đổi thiết lập sao cho phiên bản mới nhất luôn được cài đặt thay thế phiên bản cũ hơn