2015-08-05 19 views
5

Tôi đang tìm kiếm ý tưởng về cách dễ dàng xây dựng các tệp nhị phân cho các nền tảng chung cho dự án Golang, để phát hành trên Github.xây dựng mã nhị phân phát hành Golang cho Github

Tôi đã biết cách thực hiện các bản phát hành theo cách thủ công, sử dụng hướng dẫn của Github tại Creating Releases. Và tôi hiện đang phát hành bằng cách sử dụng aktau/github-release, nhưng điều này yêu cầu đăng nhập thủ công vào các máy khác nhau (OSX, Linux, Windows) và thực hiện việc phát hành.

Benedikt Lang có blogged về cách sử dụng Travis-CI (mà tôi chưa thử nghiệm). Nhưng tôi cho rằng Travis công cộng sẽ chỉ xây dựng các tệp nhị phân cho Linux.

Mọi đề xuất?

+2

Tôi có hiểu bạn chính xác, bạn quan tâm đến việc biên dịch chéo không? http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go – RoninDev

+0

Ý tưởng là tạo các tệp nhị phân được biên dịch chéo cho tất cả các nền tảng và tạo bản phát hành trên github – RoninDev

+0

Có , âm thanh thích biên dịch chéo. –

Trả lời

3

Cảm ơn tất cả các đề xuất và câu trả lời đã được đưa ra. Biên soạn chéo là những gì tôi đang tìm kiếm và Dave Cheney's blog post là một khởi đầu tốt.

Tuy nhiên tôi đã tìm thấy giải pháp tốt hơn - laher/goxc - "công cụ xây dựng cho Go, tập trung vào việc biên dịch chéo, đóng gói và triển khai". Nó được lấy cảm hứng từ công việc của Dave Cheney, và cũng bao gồm các công cụ triển khai cho Github - chỉ là những gì tôi đang tìm kiếm. (Ví dụ: tôi đã sử dụng nó để phát hành soniah/awsenv)

3

Bạn rất có thể đúng về việc xây dựng Travis CI chỉ trong Linux khi thực hiện việc biên dịch chéo đòi hỏi bạn phải xây dựng từ nguồn và xây dựng các tệp thực thi khác. Giống như RoninDev đề nghị, tôi sẽ đề nghị bạn nên thiết lập riêng cross-biên soạn xây dựng môi trường của bạn bằng cách làm theo các bài viết trên blog:

http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go

Nó là khá dễ dàng, và chỉ mất khoảng 10 phút. Sau khi bạn có điều đó, một công cụ xây dựng như Jenkins sẽ cung cấp cho bạn các điều khiển để khởi chạy một bản dựng cho các nền tảng mong muốn (Mac, Windows, Linux, v.v.) và sau đó đẩy ra các bản phát hành git cho mỗi nền tảng.

0

Tôi đã tạo goreleaser để thực hiện điều đó.

Bạn có thể dùng thử nếu muốn :)

Các vấn đề liên quan