ビルドを実行するために、ソースに加えたすべての小さな変更をプッシュするのは避けたいです.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/
独自の一時的なビルドIDを作成する
BUILDID="build-$RANDOM"
ビュービルドログWORKER INFORMATIONの「詳細を表示」ボタンを開き、INSTANCE行を見つけてここに貼り付けて実行します(コロンの後のタグを置き換えます)。最新のものを入手してください):
INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
ヘッドレスサーバーを実行する
docker run --name $BUILDID -dit $INSTANCE /sbin/init
添付のクライアントを実行する
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環境をクリーンアップする方法がわかりません。複雑そうなので、メモリがリークしている可能性があります。