1. ホーム
  2. github

[解決済み] Travis-CIでプルリクエストとマスタへのマージを冗長性なく構築する方法

2023-08-14 01:34:25

質問

BDDの用語で言うと、quot;BDD"です。

背景

GHのレポに貢献していることを考えると

プルリクエストを作成するとき

を作成すると、Travisは最新のコミットをビルドするはずです。

既存のプルリクエストにプッシュすると

とすると、Travisは最新のコミットをビルドするはずです。

プルリクエストをmasterにマージすると

それからTravisはmasterをビルドするはずです

Travis-CI の "build pushes" と "build PRs" の設定に戸惑いました、として。

  • 両方を有効にすると、各 Pull Request が Travis によって 2 回ビルドされます。
    • 一度はそのブランチのコミットに対して
    • そしてもう一度、そのブランチの宛先へのマージコミットを行います。
  • PR のビルドだけを有効にすると、PR はビルドされますが、マージ後のビルド(つまり、master 上)は発生しません。
  • pushes" を有効にすると、ブルートフォースでビルドすることにより、上記の条件を満たします。 すべて をリポジトリにプッシュします。ブランチをホワイトリストやブラックリストに登録することで、状況をごまかすこともできますが、ブランチ名を厳密に管理していない限りは、おそらく噛み付かれるでしょう。

これについては Travis-CI ドキュメント GH 問題番号 3241 .

どなたか上記の条件を満たす構成をご存じないでしょうか?

どのように解決するのですか?

結局、別の GH の問題を見つけました ( #2111 ) を見つけ、PR とプッシュの両方を有効にして、プッシュを特定のブランチに制限するホワイトリストを使ってみることを思いつきました。これは、私のワークフローの基準を満たすように思われます。 以下は、私が行ったことです。

  1. レポの Travis 設定で PR & ブランチプッシュの両方を有効にします。

  1. 変更 .travis.yml ホワイトリスト master ブランチ (すなわち、masterへのビルドプッシュのみ)。
ブランチを
  のみです。
    - マスター

  1. を作成してテストします。 PR を作成し .travis.yml を変更します。 と、それを検証するための空のコミットを含むもうひとつの PR はフォークにも使えます。 .

  2. 検証 master からのマージコミット・ビルドの成功 .