1. ホーム
  2. travis-ci

[解決済み] travis-ciをローカルで実行する方法

2022-03-17 03:15:23

質問

プロジェクトに参加したばかりで、travis-ciは初めてです。 私はむしろ、小さな変更をいちいち .travis.yml と、ビルドを実行するためにソースに加えた小さな変更のたびに、ビルドを実行します。 jenkinsを使えば、jenkinsをダウンロードしてローカルで実行することができます。 travisはこのようなものを提供していますか?

<ブロッククオート

注:travis-ci cliを見かけたのでダウンロードしたのですが、これだけでは はAPIを呼び出し、そのAPIが私のGitHubリポジトリに接続されます。 プッシュしなければ、前回のビルドを再開しても問題ないでしょう。

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

このプロセスにより、あなたのコンピュータであらゆる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 の show more ボタンを開いて 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環境のクリーンアップの仕方がわからない、複雑そう、メモリリークしそう