TL; DRで指定された使用イメージhttps://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-imageとの組み合わせでhttps://github.com/ travis-ci / travis-build#use-as-addon-for-travis-cli。
編集2019-12-06
#troubleshooting-locally-in-a-docker-image
セクションが置き換えられ、デバッグモードで実行されているジョブ#running-builds-in-debug-mode
にSSHで接続する方法も説明されています。
編集2019-07-26
#troubleshooting-locally-in-a-docker-image
セクションはドキュメントの一部ではなくなりました。ここに理由があります
しかし、それはまだgitの履歴にあります:https : //github.com/travis-ci/docs-travis-ci-com/pull/2193。
https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661で(かなり古い、新しいものを見つけることができなかった)イメージバージョンを探します。
ビルドのテストの1つがローカルでは取得できないエラーで失敗した
理由を調べたかったのです。
働いた。
実際に機能したのは、Dockerイメージのドキュメントページのローカルでのトラブルシューティングで指定されたイメージを使用することでした。私の場合はそうだったtravisci/ci-garnet:packer-1512502276-986baf0
。
https://github.com/travis-ci/travis-build#use-as-addon-for-travis-cliでtravise compile
説明されている次の手順を追加できました。
dm@z580:~$ docker run --name travis-debug -dit travisci/ci-garnet:packer-1512502276-986baf0 /sbin/init
dm@z580:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
travisci/ci-garnet packer-1512502276-986baf0 6cbda6a950d3 11 months ago 10.2GB
dm@z580:~$ docker exec -it travis-debug bash -l
root@912e43dbfea4:/# su - travis
travis@912e43dbfea4:~$ cd builds/
travis@912e43dbfea4:~/builds$ git clone https://github.com/travis-ci/travis-build
travis@912e43dbfea4:~/builds$ cd travis-build
travis@912e43dbfea4:~/builds/travis-build$ mkdir -p ~/.travis
travis@912e43dbfea4:~/builds/travis-build$ ln -s $PWD ~/.travis/travis-build
travis@912e43dbfea4:~/builds/travis-build$ gem install bundler
travis@912e43dbfea4:~/builds/travis-build$ bundle install --gemfile ~/.travis/travis-build/Gemfile
travis@912e43dbfea4:~/builds/travis-build$ bundler binstubs travis
travis@912e43dbfea4:~/builds/travis-build$ cd ..
travis@912e43dbfea4:~/builds$ git clone --depth=50 --branch=master https://github.com/DusanMadar/PySyncDroid.git DusanMadar/PySyncDroid
travis@912e43dbfea4:~/builds$ cd DusanMadar/PySyncDroid/
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ ~/.travis/travis-build/bin/travis compile > ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ sed -i 's,--branch\\=\\\x27\\\x27,--branch\\=master,g' ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ bash ci.sh
からのすべて.travis.yml
が期待どおりに実行されました(依存関係がインストールされ、テストが実行された、など)。
実行する前に、で(最後から2番目のコマンドを参照)bash ci.sh
に変更--branch\=\'\'\
する必要があったことに注意して--branch\=master\
ください。sed -i ...
ci.sh
それが機能しない場合は、次のコマンドを使用して対象の行番号を特定し、手動で行を編集できます。
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ cat ci.sh | grep -in branch
840: travis_cmd git\ clone\ --depth\=50\ --branch\=\'\'\ https://github.com/DusanMadar/PySyncDroid.git\ DusanMadar/PySyncDroid --echo --retry --timing
889:export TRAVIS_BRANCH=''
899:export TRAVIS_PULL_REQUEST_BRANCH=''
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$
うまくいきませんでした。
この質問の承認された回答に従いましたが、https://hub.docker.com/u/travisci/でtravis-ci-garnet-trusty-1512502259-986baf0
言及さinstance
れている画像()が見つかりませんでした。
ビルドワーカーバージョンはtravis-ci / worker commitを指し、そのtravis-worker-installquay.io/travisci/
はイメージレジストリとして参照します。だから私はそれを試しました。
dm@z580:~$ docker run -it -u travis quay.io/travisci/travis-python /bin/bash
travis@370c23a773c9:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
travis@370c23a773c9:/$
dm@z580:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/travisci/travis-python latest 753a216d776c 3 years ago 5.36GB
確かに信頼できない(Ubuntu 14.04)か、小さくもない。