2017-04-23 20 views
1

私はHaskellプログラムを作成しました。むしろ、Haskellをインストールする必要がないので、一般的なプラットフォーム(OSX、Linux)用のバイナリを出荷したいと思っています。Linux&Mac用バイナリをCI経由でビルド

私は自分のコンピュータ上で、CircleCIのstack buildまたはcabal buildをバイナリを生成することができます。デフォルトでは、コンテナのOS用のバイナリのみを生成します。どちらのCircleCI(または必要ならTravis)上のOSXとLinuxのバイナリをビルドするにはどうすればいいですか?

ありがとうございます!

+0

「他のプラットフォーム上で、このバイナリの実行をしたり、私が独立のプラットフォーム用のバイナリをビルドする必要がありますか?」もちろん、バイナリ**ファイルをコンパイルする必要があります(このようなファイルには何が入っていますか?)。 GHCクロスコンパイラを入手するには、[自分でビルドする]必要があります(https://ghc.haskell.org/trac/ghc/wiki/CrossCompilation)。そのことを念頭に置いて(自分自身でGHCを構築する)、 'cabal'や' stack'を使ってそのビルドを使うことは、比較的簡単です。 (別名:golを使ってgolangのように機能するプログラムが必要な場合は、この質問の読者に 'go 'を強制するのではなく)何かを説明する必要があります。 – user2407038

+0

@ user2407038 hrmm、ありがとう!それは助けます;私はその質問を編集した。私は、Travisを介して2つのビルドを実行することでクロスコンパイルを避けることができると考えています(OSX上に1つ、Linux上に1つ)。 –

答えて

1

私のTemperedプロジェクトで動作するように管理しました。 .travis.ymlファイルをチェックして、どのように処理されているか確認できます。または私がhomebrewを使ってバイナリを配送する方法について書いたブログ記事をチェックしてください(これはLinux用のビルドもカバーしています)。

http://chrispenner.ca/post/homebrew-haskell