Cách tự động xuất bản các bản phát hành GitHub từ thẻ Git

Tác giả sysadmin, T.Bảy 18, 2023, 01:26:40 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách tự động xuất bản các bản phát hành GitHub từ thẻ Git


Các bản phát hành GitHub cung cấp một phương thức dễ truy cập cho người dùng cuối để tải xuống các tệp nhị phân phần mềm đã được phiên bản. Bạn có thể tạo chúng theo cách thủ công, nhưng sẽ dễ dàng hơn nhiều nếu để GitHub Actions tự động tạo chúng bằng cách sử dụng các thẻ phát hành được tạo trong kho lưu trữ của bạn.


1. Sử dụng các bản phát hành được gắn thẻ


Thẻ là một tính năng hiện có trong Git, với sự hỗ trợ mở rộng do GitHub cung cấp với các Bản phát hành, cung cấp một nơi để lưu trữ các tệp nhị phân với nhật ký thay đổi được liên kết.

Bạn có thể tạo một thẻ giống như bạn tạo một nhánh, ngoại trừ đó là một điểm cố định không di chuyển và luôn trỏ đến một cam kết cụ thể. Điều này hữu ích để tạo các bản phát hành có phiên bản và hầu hết mọi người sẽ tạo thẻ bằng cách sử dụng định dạng phiên bản ngữ nghĩa (Major.Minor.Patch).

Các thẻ có thể được đẩy lên GitHub nơi chúng có thể được sử dụng trong các quy trình tự động hóa khác. Trong trường hợp này, chúng tôi sẽ thiết lập tập lệnh GitHub Actions sẽ lắng nghe các cam kết chứa các bản phát hành được gắn thẻ và tự động xuất bản các tạo phẩm xây dựng thành bản phát hành.

2. Thiết lập hành động GitHub

Trước tiên, bạn sẽ muốn đảm bảo rằng bạn có một bản dựng GitHub Actions đang hoạt động và các tập lệnh bản dựng của bạn đang hoạt động bình thường. Thiết lập chính xác cho quy trình làm việc của bạn sẽ phụ thuộc vào loại dự án mà bạn đang xây dựng, nhưng nói chung, bạn không muốn gỡ lỗi hai vấn đề cùng một lúc, vì vậy bạn nên thêm bản phát hành khi bạn đã có các tạo phẩm đang hoạt động. Bạn có thể đọc hướng dẫn thiết lập bản dựng GitHub Actions của chúng tôi để tìm hiểu thêm.

Điều đầu tiên cần làm là chỉnh sửa phần "bật" trong tập lệnh Hành động của bạn để nó cũng chạy khi Thẻ được tạo. Theo mặc định, bạn có thể có sự kiện "đẩy" để theo dõi các bản phát hành hoặc nhánh chính. Bạn sẽ cần thêm thẻ và đặt bộ lọc. Đối với tất cả các thẻ, chỉ cần sử dụng ký tự đại diện:


Khi kết thúc quy trình làm việc, sau khi mọi thứ được xây dựng, chúng tôi sẽ tạo mục Phát hành. Đây là một bước gồm hai phần---đầu tiên, chúng ta sẽ cần tạo một đối tượng Phát hành mới với tất cả siêu dữ liệu, sau đó chúng ta có thể sử dụng URL xuất bản đã xuất cho điều này để tải lên các tạo phẩm. Bạn có thể tạo nhiều bước tải lên nếu bạn có nhiều thành phần lạ.

Trong cả hai trường hợp, chúng tôi sẽ chỉ muốn chạy các bước này nếu quy trình công việc đang chạy do có thẻ. Chúng ta có thể làm điều này với một đơn giản

Mã nguồn [Chọn]
if
Kiểm tra và kiểm tra xem

Mã nguồn [Chọn]
github.ref
đối tượng là một thẻ, lưu tên giới thiệu của nhánh hoặc thẻ đã kích hoạt quy trình làm việc.

Bước đầu tiên là tạo một đối tượng Phát hành, có thể được thực hiện bằng bước sau. Mã thông báo GitHub không cần phải được tạo thủ công---đó là mã thông báo đặc biệt luôn có thể được tham chiếu từ các tập lệnh Hành động.

Mã nguồn [Chọn]
- name: Create Release

 if: startsWith(github.ref, 'refs/tags/')


 uses: actions/create-release@v1


 id: create_release


 with:


 draft: false


 prerelease: false


 release_name: ${{ github.ref }}


 tag_name: ${{ github.ref }}


 body_path: CHANGELOG.md


 env:


 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


Lưu ý ở đây rằng nhật ký thay đổi cho bản phát hành được lưu trữ tại   Đăng nhập để xem liên kết, phải tồn tại để quy trình làm việc chạy đúng cách. Bạn có thể chỉnh sửa điều này với từng thẻ để thay đổi phần đánh dấu được hiển thị bởi GitHub trên trang phát hành. Có các công cụ để tạo điều này tự động với các thông báo cam kết, nhưng hầu hết các nhóm sẽ có phương pháp quản lý điều này của riêng họ.

Tiếp theo, bạn có thể bắt đầu tải lên các hiện vật. Điều này sử dụng URL tải lên từ bước trước đó và bạn sẽ cần xác định đường dẫn nơi có thể tìm thấy URL cùng với tên hiển thị cho nội dung.

Mã nguồn [Chọn]
- name: Upload Release

 if: startsWith(github.ref, 'refs/tags/')


 uses: actions/upload-release-asset@v1


 env:


 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


 with:


 upload_url: ${{ steps.create_release.outputs.upload_url }}


 asset_path: Oxide.Ext.Sanctuary/bin/Release/net48/Oxide.Ext.Sanctuary.dll


 asset_name: Oxide.Ext.Sanctuary.dll


 asset_content_type: application/octet-stream


Lưu ý ở đây rằng loại nội dung được đặt thành octet-stream, điển hình cho dữ liệu nhị phân như tệp thực thi và tệp DLL. Nếu bạn đang xuất bản một tệp ZIP hoặc một số loại tệp khác, bạn sẽ muốn thay đổi điều này, mặc dù nó chỉ ảnh hưởng đến hình ảnh trên trang phát hành.

Giờ đây, bạn có thể thực hiện các thay đổi đối với luồng công việc Hành động, sau đó tạo một thẻ mới và đẩy thẻ đó lên GitHub. Bạn sẽ thấy một quy trình công việc mới đang được tạo, ngoại trừ thay vì chạy khỏi nhánh chính, nó sẽ chạy do thẻ:


Sau khi hoàn tất, bạn sẽ thấy bản phát hành trong thanh bên GitHub.