Travis CIの機能と、いつ使用する必要があるかを理解しようとしています


86

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

失敗— TravisCIビルドが失敗しました

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

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

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

Travis CIについての私の現在の理解は、それが行うことはプロジェクトを自動的に推進することであり、git commit -am ".."その一部を完全には理解していないということです。

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

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

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

回答:


104

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


1
オープンソースプロジェクトでは「無料」と書かれていますが、最初の100ビルドは無料だと書かれています。それで...それは無料ではありませんか?単独で開発したとしても、100ビルドに非常に速く到達できました。私はこれを間違って読んでいますか?どこにも情報が見つかりません。@ joshua-anderson
Mark Pieszak-Trilon.io 2015年

2
オープンソースプロジェクトでは常に無料です。プライベートリポジトリの場合、有料プランにサインアップする前に、100の無料ビルドを取得します。
joshua-anderson 2015

典型的なgitワークフローは、最新のコミットをプルしてローカルでマージし、テストしてからリモートにプッシュしませんか?
ベン

Angular、React、またはVue用のCLIツールを使用してWeb開発を行う人々はどうですか?フレームワークは、開発サーバーの実行時に、即時のトランスパイルとテストのフィードバックを提供します。それとTravisCIの間に違いはありますか、それともCIをコミットする前にユニットテストを実行することと、一般的にCIを使用することの間に違いがありますか?
OzzyTheGiant

したがって、travisは意味がありません。テストコマンドからエラーを返すgit commitフックとブロックプッシュを使用して、travisを簡単に削除できます。
betoharres

16

Travis-CIとは何かをすでに発見しているので、私はあなたが持っている質問を直接指摘します。

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

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


「これにはすべてのブランチへのコミットが含まれます」と記載されていますが、すべてのブランチにコミットしたくない場合はどうなりますか?

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


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

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


Travis-CIとは何か、継続的インテグレーション、Travis-CIをGithubリポジトリにリンクする方法を知るために読むことができるブログ投稿を書きました。Swiftリポジトリ用に作成しました。


2

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

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.