2016-12-04 9 views
1

私が探しているのは、毎晩またはコミットごとにC++コードを構築し、次にいくつかのコマンドを実行してZipやパッケージを作成し、GitHubの「リリース」に追加できるものです。私が知っているGitHubでC++ソフトウェアの自動リリース/ナイトリッジを行う方法は?

は自動的にコミットをコンパイルトラヴィス-CI、そこだし、それは、zipやインストーラパッケージを作成しますCPackを、ターゲットをINSTALL例えばCMakeのを実行することができます。しかし、これらのファイルをGitHubにアップロードしたり、どこかに表示することはできません。

私は多分GitHubのと統合が、任意のGoogleは一切ヒット見つけることができなかったことを利用できるため、他のサービスがあったことを考えていました。 Travisでは、デバッグのようなビルド(静的アナライザーなど)を実行するので、これはtravis-CIとは別にするのが好ましいでしょう。リリースのためにあなたが展開する一方で、あなたは、ドキュメントをビルド、リリースフラグを置くところなど

これは私が好ましくなくて、オープンソースプロジェクトのために、この無料行い、何かを探していますオープンソースプロジェクトのためにあります独自のサーバーインフラストラクチャを設定します。

Travis-CI Auto-Tag Build for GitHub Releasetravis section on deploymentのような関連記事はありますが、実際に私の質問には答えていません。

+0

専用のリソースがあれば、 'cron'とうまくいったシェルスクリプトを使うことができますか? – druckermanly

+0

@ user2899162:あなたのソリューションには、あなた自身を維持し(そして支払う)必要があるWeb対応のサーバーが必要ですか?私はそれを避けたいと思います。 – Ela782

+0

クリスのコメントを読んだ後、私もそれを見つけました、ありがとう! AppVeyorでも同じことが可能です:https://www.appveyor.com/docs/deployment/github/「Draft」リリースの作成をサポートしているので、リリースを公開する前にすべてを再確認することもできます。 Travisの医者は、それが可能かどうかは言いません。しかし、私は本当にこの解決策が良いかどうかは疑問です。 travisとappveyorの両方がリリースを作成しようとするとどうなりますか?既に存在しています(そのうちの1つは最初ですか?)私は他のソリューションにも非常に興味があります! – Ela782

答えて

2

あなたはこのためトラヴィス-CIを使用することができ、ドキュメントの「成果物を作成」チェックしてください。

GitHubには、アップロード

トラヴィスCIが自動的にGitHubのリポジトリにあなたのGitのタグにあなたの$TRAVIS_BUILD_DIRからアセットをアップロードすることができますリリース:それを書いている時点で

https://docs.travis-ci.com/user/deployment/releases/

は次のようになります。

は、GitHubのリリースを展開すると、タグのみのためではなく、枝のために働くことに注意してください。最小構成の場合

、あなたの.travis.ymlに次の行を追加します。

deploy: 
    provider: releases 
    api_key: "GITHUB OAUTH TOKEN" 
    file: "FILE TO UPLOAD" 
    skip_cleanup: true 
    on: 
    tags: true 

基本的には、それぞれ、アップロードを取得することをコミットにタグ付けする必要がありますので、あなたが行うcronジョブを作ることができます面白い仕事が起こった日にのみ、定期的に、または手動で行う必要があります。

また、あなたはそれがすべてがGoogleのクラウドストレージアカウントに構築し、またはAmazon S3のアカウントにアップロードさせることができ、その後、あなたはそこから仕事にそれをのcronすることができます。ドキュメントhereを参照してください。

+0

私はこの答えを受け入れるでしょう - それはおそらく、最も簡単で最も簡単なことです。この(およびAppVeyor)、またはJenkinsは唯一の利用可能なソリューションであると思われ、Jenkinsは残念ながらFOSSプロジェクトでは無料で利用できません。それはすべて完璧ではありませんが、それは行う必要があります。ご回答有難うございます! – Ela782