tl; dr Użyj obrazu podanego na https://docs.travis-ci.com/user/common-build-problems/#troublesh-locally-in-a-docker-image w połączeniu z https://github.com/ travis-ci / travis-build # use-as-addon-for-travis-cli .
EDYCJA 2019-12-06
#troubleshooting-locally-in-a-docker-image
sekcja została zastąpiona przez, #running-builds-in-debug-mode
która opisuje również SSH do zadania uruchomionego w trybie debugowania .
EDYCJA 2019-07-26
#troubleshooting-locally-in-a-docker-image
sekcja nie jest już częścią dokumentów; dlatego
Chociaż wciąż jest w historii git: https://github.com/travis-ci/docs-travis-ci-com/pull/2193 .
Poszukaj (dość starych, nie mogłem znaleźć nowszych) wersji obrazu na: https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 .
Chciałem sprawdzić, dlaczego jeden z testów w mojej kompilacji nie powiódł się z błędem, którego nie dostaję lokalnie.
Pracował
To, co faktycznie działało, to użycie obrazu określonego w sekcji Rozwiązywanie problemów lokalnie na stronie z dokumentami Docker Image . W moim przypadku tak byłotravisci/ci-garnet:packer-1512502276-986baf0
.
Udało mi się dodać travise compile
następujące kroki opisane na stronie https://github.com/travis-ci/travis-build#use-as-addon-for-travis-cli .
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
Wszystko z .travis.yml
zostało wykonane zgodnie z oczekiwaniami (zainstalowane zależności, uruchomione testy, ...).
Zauważ, że przed uruchomieniem bash ci.sh
musiałem zmienić --branch\=\'\'\
na --branch\=master\
(patrz polecenie od drugiego do ostatniego sed -i ...
) w ci.sh
.
Jeśli to nie zadziała, poniższe polecenie pomoże zidentyfikować numer linii docelowej i możesz edytować linię ręcznie.
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$
Nie działało
Podążyłem za zaakceptowaną odpowiedzią na to pytanie, ale nie znalazłem obrazu ( travis-ci-garnet-trusty-1512502259-986baf0
) wspomnianego instance
na stronie https://hub.docker.com/u/travisci/ .
Kompilacja wersji roboczej wskazuje na travis-ci / worker commit i odniesienia do instalacji travis-worker-installquay.io/travisci/
jako rejestr obrazów. Więc spróbowałem.
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
Zdecydowanie nie jest Trusty (Ubuntu 14.04) i nie jest też mały.