2015-08-05 12 views
5

Ich bin auf der Suche nach Ideen, wie Sie einfach Binaries für allgemeine Plattformen für ein Golang-Projekt, für die Veröffentlichung auf Github zu bauen.Build-Golan Release-Binärdateien für Github

Ich weiß bereits, wie man Releases manuell macht, indem ich Githubs Anweisungen unter Creating Releases benutze. Und ich mache derzeit Releases mit aktau/github-release, aber das erfordert manuelle Anmeldung bei verschiedenen Maschinen (OSX, Linux, Windows) und die Veröffentlichung.

Benedikt Lang hat blogged über die Verwendung Travis-CI (mit dem ich noch experimentieren bin). Aber ich nehme an, das Publikum Travis wird nur Binärdateien für Linux erstellen.

Irgendwelche Vorschläge?

+2

Verstehe ich Sie richtig, Sie Interesse an Cross-Compile? http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go – RoninDev

+0

Die Idee ist es, kompilierte Binärdateien für alle Plattformen zu machen und die Freigabe auf github – RoninDev

+0

Ja klingt nach Cross-Compilation. –

Antwort

3

Danke für alle Vorschläge und Antworten, die gegeben wurden. Cross-Compilation war, was ich suchte, und Dave Cheney's blog post war ein guter Anfang.

Allerdings habe ich eine bessere Lösung gefunden - laher/goxc - "ein Build-Tool für Go, mit einem Schwerpunkt auf Cross-Compiling, Verpackung und Bereitstellung". Es wurde von Dave Cheneys Arbeit inspiriert und enthält auch Deploy-Tools für Github - genau das, wonach ich gesucht habe. (Zum Beispiel habe ich es verwendet, um soniah/awsenv freizugeben)

3

Wahrscheinlich haben Sie recht, wenn Sie das Travis CI nur unter Linux erstellen, denn für die Cross-Kompilierung müssen Sie aus der Quelle bauen und andere ausführbare Dateien erstellen. Wie RoninDev vorgeschlagen, würde ich nach dem Blog-Post, dass Sie Ihr eigenes Setup Querübersetzbarkeit Bauumgebung vorschlagen:

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

Es ist ganz einfach und dauert nur etwa 10 Minuten. Nachdem Sie das haben, wird Ihnen ein Build-Tool wie Jenkins die Steuerelemente geben, um einen Build für die gewünschten Plattformen (Mac, Windows, Linux usw.) zu starten und dann die Git-Releases für jeden zu veröffentlichen.

0

Ich erstellte goreleaser, um genau das zu tun.

Sie können es ausprobieren, wenn Sie wollen :)