2015-08-05 12 views
5

Sto cercando idee su come creare facilmente i binari per piattaforme comuni per un progetto Golang, per il rilascio su Github.compilare i binari di rilascio di Golang per Github

So già come eseguire manualmente le versioni, utilizzando le istruzioni di Github allo Creating Releases. E attualmente sto facendo delle versioni usando aktau/github-release, ma ciò richiede l'accesso manuale a diversi computer (OSX, Linux, Windows) e il rilascio.

Benedikt Lang ha blogged sull'utilizzo di Travis-CI (che devo ancora sperimentare). Ma presumo che il pubblico di Travis costruirà solo binari per Linux.

Qualche suggerimento?

+2

capisco di correggere, è interesse per la cross-compilazione? http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go – RoninDev

+0

L'idea è di creare binari incrociati per tutte le piattaforme e rilasciare il rilascio su github – RoninDev

+0

Sì ai suoni piace la compilazione incrociata. –

risposta

3

Grazie per tutti i suggerimenti e le risposte fornite. La compilazione incrociata era quello che stavo cercando, e Dave Cheney's blog post è stato un buon inizio.

Tuttavia ho trovato una soluzione migliore - laher/goxc - "uno strumento di compilazione per Go, con particolare attenzione alla compilazione incrociata, all'imballaggio e all'implementazione". È stato ispirato dal lavoro di Dave Cheney e include anche strumenti di distribuzione per Github, proprio quello che stavo cercando. (Ad esempio, l'ho usato per rilasciare soniah/awsenv)

3

Probabilmente hai ragione riguardo al fatto che il CI di Travis costruisca solo in Linux, dato che la compilazione incrociata richiede di compilare dal sorgente e creare altri eseguibili di go. Come suggerito RoninDev, vorrei suggerire che si imposta il proprio ambiente di sviluppo cross-compilation seguendo il post del blog:

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

E 'abbastanza facile, e richiede solo circa 10 minuti. Dopo averlo fatto, uno strumento di costruzione come Jenkins ti darà i comandi per dare il via a una build per le piattaforme desiderate (Mac, Windows, Linux, ecc.) E poi rilasciare i rilasci di git per ognuno.

0

Ho creato goreleaser per fare proprio questo.

Si può provare se si vuole :)

Problemi correlati