web-dev-qa-db-ja.com

Travis CIの機能と使用するタイミングを理解しようとする

私はGitを初めて使用しますが、GitHubでの小さなエラーを発見した後、GitHubのオープンソースプロジェクトに貢献する予定です。それをフォークしてエラーを修正すると、プルリクエストを目的としましたが、これが表示されることに気付きました。

失敗— Travis CIビルドが失敗しました

詳細を調べてみると、Could not find .travis.yml。これは、Travis Clにサインインしてリポジトリに.travis.ymlを追加していなかったため、完全に意味がありました。

Travisと、それが継続的インテグレーションとして知られていることを耳にするのはこれが初めてです。そして、それはかなりクールに聞こえるので、それについてもっと学ぶために、私はウィキペディアで調べました。

Travis CIは、GitHubでホストされるプロジェクトを構築およびテストするために使用される、ホストされた分散型の継続的統合サービスです。 Travis CIは、コミットが行われ、Travis CIを使用しているGitHubリポジトリにプッシュされたことを自動的に検出します。これが発生するたびに、プロジェクトのビルドとテストの実行を試みます。これには、マスターブランチだけでなく、すべてのブランチへのコミットが含まれます。

Travis CIについての私の現在の理解は、それが行うことはgit commit -am ".."そして、私はその一部をよく理解していません。

  1. プロジェクトのビルドとテストの実行により、どのテストが実行されますか?そして、プロジェクトをどのように「ビルド」するのでしょうか? (バイナリにコンパイルするような?)

  2. 「これにはすべてのブランチへのコミットが含まれます」と書かれていますが、すべてのブランチへのコミットをしたくない場合はどうすればよいですか?

  3. Travis Clをまったく使用しなくても大丈夫ですか?どのような状況でそれを使用するのが最善ですか(または使用する必要がありますか)?

Travis CIを説明する最も簡単な方法は、GitHubにコミットするたびにプログラムのテストを実行することです(これはさまざまな方法で構成でき、一部のブランチでビルドを常に無効にできます)。これのポイントは、コミットが何かを壊した場合に非常に迅速に発見することが多く、それが問題になる前に修正できることです。ユニットテストがあり、Travis CIでサポートされているプログラミング言語を使用しているすべてのGitHubリポジトリでTravis CIを実行することをお勧めします。 Travis CIのセットアップは非常に簡単なので、プログラムでテストに合格したかどうかを気にしない限り、通常は使用しない正当な理由はありません。他にご質問がある場合は、お気軽にコメントをお寄せください。 Travis CIの詳細については、こちらをご覧ください こちら

87
joshua-anderson

既にTravis-CIとは何かを発見したので、あなたの質問を直接指摘します。

プロジェクトをビルドしてテストを実行すると、どのテストが実行されますか?そして、プロジェクトをどのように「ビルド」するのでしょうか? (バイナリにコンパイルするような?)

.travis.ymlファイルでは、OS、プログラミング言語、リポジトリブランチ、プロジェクトファイル名、その他の詳細を指定しています。このファイルを読み取ることにより、Travis-CIはサーバーにインストールされた特定のコンパイラーを使用してコードをコンパイルします。おそらく、Githubの場合と同じメカニズムになります。初めてコードをプルする可能性があります[特定のブランチを指定した場合、それらのブランチのみからコードをプルする可能性があります]。また、Travis-CIでアカウントを使用することを認証しました。コミットするたびに、Travis-CIサーバーに通知する必要があるため、コミットとして認識され、コンパイルが開始されます。


「これにはすべてのブランチへのコミットが含まれます」と書かれていますが、すべてのブランチへのコミットをしたくない場合はどうすればよいですか?

別のブランチまたはmasterブランチを指定できます。また、.travis.ymlファイルで指定された特定のブランチのみをコンパイルする必要があります。


Travis Clをまったく使用しなくても大丈夫ですか?どのような状況でそれを使用するのが最善ですか(または使用する必要がありますか)?

はい、大丈夫です。大したことではありません。しかし、この簡単に統合できるエンジンをレポに使用しないことで得られるメリットは何でしょうか。コミットするたびに何かを見逃し、コードが原因でコンパイルできなかった可能性があります。どうやって知るの?したがって、Travis-CIを使用する必要があります。


私はブログを書きました post Travis-CI、Continuous Integrations、Travis-CIをGithub Repoにリンクする方法を知るために読むことができます。 Swift=リポジトリ用に作成しました。

14
Hemang

現在、Travis CIを学んでいるので、あなたの質問に答えるのに非常に良い立場にあると思います。最初に遭遇した最初の問題は、貢献しているプロジェクトがTravis CIを使用してプロジェクトをテストおよびビルドしているためです。プロジェクトでTravis CIを使用していない場合、このようなエラーは発生していません。

解決策はチェックアウト Travis CI Webサイト で、それがどのように機能し、作業中のプロジェクトにどのように影響したかを学びます。これにより、コードの問題点とその修正方法を理解できる非常に良い立場になります。

プロジェクトの構築に関する最初の質問に答えるため。

プロジェクトをビルドしてテストを実行すると、どのテストが実行されますか?そして、プロジェクトをどのように「ビルド」するのでしょうか? (バイナリにコンパイルするような?)

これは、使用/テストの前にソースコードがどのように処理されるかを意味します。それはあなたが書いている言語に依存します。たとえば、プロジェクトがPHPで記述している場合。 C/C++ソースコードのような実行可能ファイルにコードをビルドするつもりはありません。それは私のPHP PHPインタプリタでコードを実行し、そのようにテストします。それでもあなたの好みの言語が通る通常のコンパイルプロセスを通過します。

1
Emmanuel