travis-ci をローカルで実行する方法 質問する

travis-ci をローカルで実行する方法 質問する

ビルドを実行するために、ソースに加えたすべての小さな変更をプッシュするのは避けたいです.travis.yml。Jenkins を使用すると、Jenkins をダウンロードしてローカルで実行できます。Travis はこのような機能を提供していますか?

注: travis-ci cli を確認してダウンロードしましたが、API を呼び出して GitHub リポジトリに接続するだけのようなので、プッシュしない場合は、最後のビルドを再起動しても意味がありません。

ベストアンサー1

このプロセスにより、コンピュータ上でTravisビルドジョブを完全に再現できます。また、いつでもプロセスを中断してデバッグできます。以下は、私が次の結果を完全に再現した例です。php-school/cli-menu のジョブ #191.1

前提条件

  • GitHubに公開リポジトリがあります
  • Travisで少なくとも1つのビルドを実行しました
  • Dockerをお持ちの場合コンピュータにセットアップする

ビルド環境を設定する

参照:https://docs.travis-ci.com/user/common-build-problems/

  1. 独自の一時的なビルドIDを作成する

    BUILDID="build-$RANDOM"
    
  2. ビュービルドログWORKER INFORMATIONの「詳細を表示」ボタンを開き、INSTANCE行を見つけてここに貼り付けて実行します(コロンの後のタグを置き換えます)。最新のものを入手してください):

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. ヘッドレスサーバーを実行する

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. 添付のクライアントを実行する

    docker exec -it $BUILDID bash -l
    

ジョブを実行する

これで、Travis 環境に入りました。実行してsu - travis開始します。

この手順は明確に定義されていますが、面倒で手作業になります。Travis が環境内で実行するすべてのコマンドが見つかります。これを行うには、右側の列で のようなタグが付いているものをすべて探します0.03s

左側に実際のコマンドが表示されます。それらのコマンドを順番に実行します。

結果

ここでコマンドを実行するのがよいでしょうhistory。プロセスを再起動してコマンドを再生し、更新されたコード ベースに対して同じテストを実行できます。

  • リポジトリが非公開の場合ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB":cat ~/.ssh/id_rsa.pubここをクリックキーを追加する
  • git pull参考までに: GitHubにプッシュする前に、docker内から開発ボックスからコミットをロードすることができます。
  • Travis が実行するコマンドを変更する場合、それがどのように動作するかを判断するのはあなたの責任です.travis.yml
  • Docker環境をクリーンアップする方法がわかりません。複雑そうなので、メモリがリークしている可能性があります。

おすすめ記事