コミットをプッシュせずにTravis-CIの再構築をトリガーしますか?


414

Travis-CIを使用して、GitHubに新しいコミットをプッシュせずに再構築をトリガーすることは可能ですか?

使用例:外部性が原因でビルドが失敗します。ソースは実際に正しいです。単に再実行すれば、問題なくビルドされ、合格します。

たとえばapt-get、パッケージサーバーがダウンしているために失敗しましたが、サーバーは再びバックアップされています。ただし、ビルドステータスは、新しいコミットがプッシュされるまで「失敗」のままです。

「ダミー」コミットをプッシュする以外に、Travis-CIに別のビルドを実行させる方法はありますか?

回答:


458
  • リポジトリへの書き込みアクセス権がある場合:ビルドの詳細画面に、ボタン↻[ビルドを再起動 ]があります。また、「その他のオプション」の下には、トリガービルドメニュー項目があります。

    :Ghosteryなどのブラウザ拡張機能により、再起動ボタンが表示されない場合があります。拡張機能を無効にするか、Travis CIをホワイトリストに登録してみてください。

    注2.travis.yml上流で構成が変更されている場合、[再構築]ボタンをクリックすると、古い構成でトラビスが実行されます。travis設定に上流の変更を適用するには、PRにコミットを追加するか、PRを閉じる/再度開く必要があります。

  • プルリクエストを送信した場合PRを閉じて、もう一度開くことができます。これにより、新しいビルドがトリガーされます。

ビルドを再起動します。

ビルドのスクリーンショットを再開

トリガービルド:

トリガービルドのスクリーンショット


1
私はそれを他の場合に見つけて使用しました。しかし、上記の理由でエラーが発生し、ギアメニューにそのオプションが欠けていたケースがあると私は確信していました。たぶん、これは1回限りのまぐれだったのかもしれません。とにかく、あなたはそれがどのように機能することになっているのか答えたと思うので、私は先に進んであなたの答えを受け入れられたものとしてマークします。ありがとう!
グレッグヘンダーショット2013

3
私が所有している、エラーが発生した、または失敗したプロジェクトのビルド履歴を見ると、再起動ボタンがあります
jbtule

20
私はあなたが他の誰かのプロジェクトのためのプルリクエストを送信ところ1トリッキーなケースがあると思うし、それはあなたのPRそれ自体とは無関係の理由のためにエラーが発生した、とあなたは知っているあなただけ再試行し、それを微調整することができれば、それは成功するでしょう。(プロジェクトではなく)できない理由は理解できますが、したい理由も理解できます(PRが誤って「見た目が悪い」)。
グレッグヘンダーショット

94
P:あなたがこの参照するにはログインする必要が忘れてはいけない
マイケル・J・カルキンズ

8
そして、github reproへの書き込みアクセス権が必要です。したがって、これは上流にプッシュされたフォークでは機能しません。
Izhaki 14

206

GitHubでリポジトリの[設定 ]タブを開き、[ 統合とサービス ]をクリックし、Travis CIを見つけて[ 編集 ]をクリックすると、[ サービステスト ]ボタンが表示されます。これにより、ビルドがトリガーされます。


6
私はtravis-ciが再構築ボタンを削除したと思うので、これが私にとって正しく機能した唯一の方法です。ただし、2つのビルドを実行します...
ブレーズ

1
@Blaiseは偶然にもGhostery(または同様のもの)を使用していますか?それを無効にしてみてください。私にとっては、これにより[ビルドの再開]ボタンが再び表示されます。
グレッグヘンダーショット2014年

29
これは、リポジトリのTravis CIビルドを最初にアクティブ化したときに機能します。以前のビルドがないリポジトリには、「ビルドの再読み込み」ボタンはありません。
ブライアンJ.ミラー

12
私のような馬鹿者への注意:Travisのリポジトリページではなく、GithubSettingsのリポジトリ開いてください!Service Hooksトラヴィスのページで見つけようとして20分も無駄にしたなんて信じられない。:(
ジョンレッド

83

コミットをプッシュせずに言ったのは知っていますが、マスター以外のブランチで作業している場合、空のコミットをコミットするのが便利です。

git commit --allow-empty -m "Trigger"

最後にリベースしてスカッシュを削除するか、空のコミットを削除して、すべてのgitフックで機能することができます:)


1
それは素晴らしいです、ありがとう!「トリガー」コミットを履歴のさらに下に移動するためにリベースしなければならなかったことを追加したいだけです。それ以外の場合は、「トリガー」コミットの削除時に新しいビルドを破棄するだけです。
pmos

63
同じように、既存のコミットを修正してプッシュを強制できます:git commit --amend --no-edit && git push -f
grahamrhay

4
@grahamrhayは、ターゲットリポジトリの所有者ではないときにPRビルドをトリガーするのに最適です。コンテンツを保持します。マージやリベースなどの必要はありません。より目に見える形で賛成投票できるように、回答してください。
TWiStErRob 2016年

アクセスできなかったリポジトリをフォークしましたが、Travisには新しく作成したフォークで再起動できるビルドがなかったため、これが私にとってうまくいった唯一のものでした。
Nick McCurdy

1
@TWiStErRob他の誰かがそのような答えを以下に書きました。
フランクリン・ユー

30

CIビルドの再実行やその他のトリガーを強制する別の方法を見つけました。

  1. git commit --amend --no-edit変更せずに実行します。これにより、現在のブランチの最後のコミットが再作成されます。
  2. git push --force-with-lease origin pr-branch

8
これはお勧めしません。履歴を破壊的に変更するため、このコミットに基づいてブランチを持つ人々を混乱させる可能性があり、--amendフラグによってはHEADコミットが変更されない場合もあります。
Nick McCurdy

7
PRにBUMP Webhookのみが必要なまれな状況では問題ありません。プルリクエストから実際に分岐してはならないので、正確なコミットIDに依存する人は誰もいません。
Vlad Frolov、2016年

4
以下のために行くgit push --force-with-lease origin pr-branchあなたが誤ってハァハァないの誰かの変更を行うよう
binarymason

21

Travisにログインし、ビルドページに移動します。右上隅の歯車アイコンの横にある「ビルドの再開」ボタンが表示されます。

スクリーングラブ

注:これを機能させるには、リンクされたGitHubリポジトリへの書き込みアクセス権が必要です。


11
この回答は基本的に承認されたものと同じで、かなり後に提出されました。
Dan Dascalescu、2014

5
@DanDascalescu私が投稿したとき、スクリーンショットはありませんでした。そして、私は今、他の誰かの応答を編集できることに気づきました!;)
2014

1
@Juanでも、この回答を削除できます。不要な混乱を招くため、削除することをお勧めします。
Rafal Enden

20

.travis.ymlがあるGitHubに新しいプロジェクトがあるが、テストされたことがない場合は、次の方法でコミットせずにテストを実行できます。

  1. Travis CI設定でテストを有効にする
  2. GitHubでプロジェクトページを開く
  3. 設定を開く-> webhookとサービス
  4. サービスでTravis CIを見つけ、編集ボタンを押します
  5. 「テストサービス」を押す

3
これは、新しく作成されたプロジェクトを持つ人のための答えです。
Eric MORAND 2016

16

Travis CLIを使用してこれを行うことができますマニュアルに記載され、まず、CLIツールをインストールします。

travis login --org --auto
travis token

このトークンTRAVIS_TOKENを保持しているファイルがどこかで公開されているバージョン管理されていない限り、このトークンを環境変数に保持できます。

この関数を使用してトリガーを送信します。

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }

フォーク用に独自のTravisビルドをセットアップできます。
サムブライトマン

プルリクエストの作成元であるフォークのブランチを構築できます。
サムブライトマン

あなたのPRのブランチとPRは本質的に同じものですよね?PRを行ってからアップストリームに他の変更がある場合は、100%確実になるようにリベースする必要があります。しかし、それはとにかく行われる必要があり、GitHubはUIにリベースボタンを表示する必要があります。その場合、PRの新しいビルドがトリガーされます。
サムブライトマン

11

Travisは、Web UIから「カスタム」ビルドをトリガーする方法を提供します。プロジェクトのページの上部近くの右側にある[その他のオプション]メニューボタンを探します。

その他のオプション→ビルドのトリガー

次に、ブランチを選択して構成をカスタマイズできるダイアログボックスが表示されます。

カスタムビルドダイアログボックス

これを書いている時点では、これはベータ版であり、少しバグがあるように見えます(ただし、問題がすぐに解決されると思います)。


2
ありがとう。私にとって、トリガービルドはビルドのIDも変更するので、最良の応答です。単純な(ボタンを介した)再ビルドではありません。スクリプトでTravisのIDを使用する場合は、知っておくことが重要です。
Karima Rafes

2
これはもっと高くする必要があります
Gillespie

8

Travis CIクライアントをインストールtravis restart <job#>すると、コンソールから手動でビルドを再実行できます。ブランチの最後のjob#を使用して見つけることができますtravis show <branch>

travis show master
travis restart 48 #use Job number without .1
travis logs master

Travis CIクライアント

更新:悲しいことに、これは最新のコミットを使用して新しいビルドを開始しないようですが、代わりにリポジトリの以前の状態を使用して以前のビルドを再起動するだけです。


アップデートノートがわかりません。コマンドから、再起動するジョブを定義できるようです。したがって、問題はジョブをトリガーすることです。おそらく、ほとんどの人は、コミットが既にトリガーされているが、もう一度テストしたい場合にこれを実行したいと思います。
redanimalwar 2016年

@redanimalwarの一般的な使用例は、変更の検出に失敗したとき、または静かな期間にCIビルドを強制することです。
Sam Brightman

4

ここで、ウェブ上で新しいビルドをトリガーする手段ができたことをここで触れておきます。https://blog.travis-ci.com/2017-08-24-trigger-custom-buildを参照してくださいを参照してください。

TL; DR [その他のオプション]をクリックし、[トリガービルド]を選択します。


これは、リポジトリへの書き込みアクセス権/コラボレーターがなく、自分のプルリクエストに対してビルドを再実行する場合は機能しません。そのオプションは表示されません。Travis CLIを試してbuild #xxxx has been restarted みると、Webページを見るとビルドが行われていないことがわかります
bitek

3

ビルドが発生しなかった場合(おそらく、Pull-Requestビルドスイッチが時間内にオンに設定されていない場合)、Githubのプルリクエストをクローズ済みとしてマークし、オープンとしてマークすると、新しいビルドがトリガーされます。



1

以下は、Dependabotが開いたが、のエラーのために失敗したPRで再構築をトリガーするために私が働いたものです.travis.yml

  1. PRを閉じる
  2. Dependabotがコメントするのを待ちます(「OK、このリリースについては再度通知しませんが、新しいバージョンが利用可能になったときに連絡します。」)。ブランチを削除します。
  3. 削除されたDependabotブランチを復元します(のようなものdependabot/cargo/tempfile-3.0.4)。
  4. PRを再度開く

1

まずTravis にログインしてください。ログインするまで再構築ボタンは表示されません。これは明らかであることはわかっていますが、誰かがそれをトリップしただけです;-)


0

時々、サーバーがいくつかの間違いをしたことが起こります。ログアウト/サインインしてみてください。(はい、今日の午後私に起こりました。)


-1

書き込みアクセス権がない場合は、Simlpyを閉じてから再度開きます。


いいえ、ガベージプルリクエストを残さないでください。迷惑です。新しいコミットをブランチにプッシュするだけです(たとえば、コミット日付を変更できます:git commit --amend --date = now && git push -f)。
intgr 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.