Jak uruchomić travis-ci lokalnie

524

Właśnie dołączyłem do projektu i jestem nowy w travis-ci. Wolałbym nie przesyłać każdej małej zmiany do .travis.yml i każdej małej zmiany, którą wprowadzam do źródła, aby uruchomić kompilację. Dzięki jenkins możesz pobrać jenkins i uruchomić lokalnie. Czy Travis oferuje coś takiego?

Uwaga: widziałem cli travis-ci i pobrałem ją, ale wydaje się, że wystarczy zadzwonić do ich interfejsu API, który następnie łączy się z moim repozytorium github, więc jeśli nie będę naciskać, nie będzie miało znaczenia, że ​​uruchomię ponownie ostatnia wersja.

Sam Hammamy
źródło
3
Powinieneś być w stanie uruchomić testy lokalnie, bez konieczności uruchamiania Travis CI. Sprawdź sekcję „skrypt” w pliku .travis.yml, aby zobaczyć, jakie polecenie uruchomić.
Konstantin Haase
69
Ale samo uruchomienie testów nie stanowi problemu - często kompilacja Travis kończy się niepowodzeniem z powodu kroków instalacji i instalacji opisanych w tej install:sekcji i prawdopodobnie o to bardziej martwi to pytanie.
Brandon Rhodes
4
Dodam, że w złożonych projektach z różnych powodów (np. Różne wydania punktowe lub interakcje systemowe środowiska uruchomieniowego, testy wewnętrznie wrażliwe na czas, np. Testy przekroczenia limitu czasu itp.) Same testy mogą czasem zachowywać się inaczej w środowisku lokalnym i w Travis CI .
circlespainter

Odpowiedzi:

200

Ten proces pozwala całkowicie odtworzyć dowolne zadanie kompilacji Travis na komputerze. Ponadto możesz przerwać proces w dowolnym momencie i debugować. Poniżej znajduje się przykład, w którym doskonale odtwarzam wyniki pracy # 191.1 w php-school / cli-menu .

Wymagania wstępne

  • Masz publiczne repozytorium na GitHub
  • Uruchomiłeś co najmniej jedną wersję Travisa
  • Masz skonfigurowane Docker na swoim komputerze

Skonfiguruj środowisko kompilacji

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

  1. Stwórz swój tymczasowy identyfikator kompilacji

    BUILDID="build-$RANDOM"
    
  2. Wyświetl dziennik kompilacji , otwórz przycisk pokaż więcej, aby uzyskać INFORMACJE DLA PRACOWNIKÓW, znajdź wiersz INSTANCE, wklej go tutaj i uruchom (zamień znacznik po dwukropku na najnowszy dostępny) :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. Uruchom serwer bezgłowy

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. Uruchom podłączonego klienta

    docker exec -it $BUILDID bash -l
    

Uruchom pracę

Teraz jesteś w swoim środowisku Travis. Uruchom, su - travisaby rozpocząć.

Ten krok jest dobrze zdefiniowany, ale jest bardziej nużący i ręczny. Znajdziesz każde polecenie, które Travis uruchamia w środowisku. Aby to zrobić, poszukaj wszystkiego w prawej kolumnie, która ma podobny tag 0.03s.

Po lewej stronie zobaczysz aktualne polecenia. Uruchom te polecenia w kolejności.

Wynik

Teraz jest dobry czas na uruchomienie historypolecenia. Możesz ponownie uruchomić proces i powtórzyć te polecenia, aby uruchomić ten sam test na zaktualizowanej podstawie kodu.

  • Jeśli repo jest prywatny: ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"wtedy cat ~/.ssh/id_rsa.pubi kliknij tutaj , aby dodać klucz
  • FYI: możesz git pullz wewnątrz okna dokowanego załadować zatwierdzenia z twojego pola deweloperskiego przed wypchnięciem ich do GitHub
  • Jeśli chcesz zmienić polecenia uruchamiane przez Travisa, Twoim obowiązkiem jest dowiedzieć się, jak to przekłada się z powrotem na działanie .travis.yml.
  • Nie wiem, jak wyczyścić środowisko Dockera, wygląda na skomplikowane, może to przecieka pamięć
William Entriken
źródło
22
W dziennikach poniżej instance:nie widzę prawidłowej ścieżki obrazu dokera, po prostu coś takiego travis-ci-garnet-trusty-1512502259-986baf0. Próbowałem travisci/ci-garnet:$INSTANCEi travisci/$INSTANCE- nie działa, nie mogę znaleźć obrazu. Również samo pobranie postfiksu (tj. travisci/ci-garnet:packer-1512502259-986baf0) Nie działało.
Roy Shilkrot,
4
Mam ten sam problem - nie można pobrać obrazu wymienionego w informacji o instancji. Ponadto próbowałem travisci/ci-garnet:packer-1512502276-986baf0obrazu, który jest sugerowany w dokumentach Travis . Ten jest dostępny, ale nieaktualny. Na przykład CMake jest znacznie starszy niż jeden dostępny w Travis. Żadna nowa wersja ci-garnetnie została przesłana do Docker Hub w ciągu ostatnich sześciu miesięcy, podczas gdy wcześniej było wiele aktualizacji miesięcznie.
skalee
7
Link referencyjny już nie działa - tj. Sekcja „Lokalne uruchamianie obrazu dokera opartego na kontenerach” została usunięta z tej strony. Być może różnica w danych wyjściowych instancji wynikała z braku sudo: requiredustawienia? W mojej obecnej wersji widzę, travis-ci-sardonyx-xenial-1547455603-2c98a19którą mogę zmapować do travisci / ci-sardonyx: packer-1547455648-2c98a19
maxschlepzig
4
dla mnie za pomocą najnowszej wersji travisci / CI-granat na piaście Döcker (travisci / CI-granat: pakowacz-1515445631-7dfb2e1) załatwiło sprawę
Taleb
3
Jeśli pracujesz nad konkretnym językiem instancji travis, możesz również użyć dedykowanego obrazu, takiego jak python .
Zaccharie Ramzi
162

Travis-ci oferuje nową infrastrukturę opartą na kontenerach, która korzysta z dokera. Może to być bardzo przydatne, jeśli próbujesz rozwiązać problem kompilacji travis-ci, odtwarzając ją lokalnie. To pochodzi z Travis CI dokumentacji .

Rozwiązywanie problemów lokalnie w obrazie Docker

Jeśli masz problemy ze znalezieniem dokładnego problemu w kompilacji, często pomaga ona uruchomić kompilację lokalnie. Aby to zrobić, musisz korzystać z naszej infrastruktury opartej na kontenerach (tj. Miećsudo: false w swoim .travis.yml) i wiedzieć, którego obrazu Docker używasz w Travis CI.

Lokalne uruchamianie obrazu dokera opartego na kontenerach

  1. Pobierz i zainstaluj silnik Docker .
  2. Wybierz obraz z Docker Hub . Jeśli nie używasz wyboru obrazu dla określonego języka ci-ruby. Otwórz terminal i rozpocznij interaktywną sesję Docker przy użyciu adresu URL obrazu:

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. Przejdź do travisużytkownika:

    su - travis
    
  4. Sklonuj swoje repozytorium git do /folderu obrazu.
  5. Ręcznie zainstaluj wszystkie zależności.
  6. Ręcznie uruchom polecenie kompilacji Travis CI.
Scott McLeod
źródło
6
@DustinGraham, zależy to od tego, jak projekt budowany przez Travisa CI został skonfigurowany do budowania. W projekcie, nad którym pracowałem, polecenie kompilacji skonfigurowano w pliku .travis.yml pod skryptem: podsekcja i było make test.
Scott McLeod
102
> Manually install any dependencies To brzmi jak dobry sposób na uzyskanie wyników, które nie pasują do zwykłych wersji Travisa.
Gerry
6
@Gerry Ręczne instalowanie zależności, zakładam, że oznacza ręczne uruchamianie poleceń zawartych w pliku konfiguracyjnym travis, które obsługują instalację zależności. To są te same polecenia, które wykonywałby Travis CI, tylko nie zautomatyzowane.
Chathan Driehuys
8
Wydaje mi się, że to jakoś odpowiedź na moje pytanie, ale Manually tun your Travis CI build command... Na przykład, co? W jaki sposób? Co to jest? Mam .travis.ymlplik Próbowałem travis-build, ale to ślepy zaułek.
Brandon
2
@Brandon W twoim .travis.yml zwykle znajduje się podsekcja skryptu, która jest wywoływana przez travis w celu zbudowania twojego źródła. Celem tej odpowiedzi jest skonfigurowanie lokalnego środowiska identycznego z tym, na którym działałby travis. Następnie będziesz wywoływał te polecenia samodzielnie, zamiast polegać na travis, aby je dla ciebie uruchomić. W ten sposób możesz zobaczyć efekty samodzielnego uruchomienia każdego polecenia w tym środowisku - może to dać wgląd w problem kompilacji, który można mieć w travis, który w innym przypadku nie byłby dostępny.
Scott McLeod
86

AKTUALIZACJA: Mam teraz kompletną odpowiedź „pod klucz”, patrz https://stackoverflow.com/a/49019950/300224 . To zajęło tylko 3 lata!

Zgodnie z dokumentacją Travis: https://github.com/travis-ci/travis-ci istnieje mikstura projektów, które zmawiają się w celu dostarczenia znanej i kochanej przez nas usługi internetowej Travis CI. Wydaje się, że następujący podzbiór projektów pozwala na lokalną make testfunkcjonalność przy użyciu .travis.ymlw projekcie:

travis-build

travis-build tworzy skrypt kompilacji dla każdego zadania. Pobiera konfigurację z .travis.ymlpliku i tworzy bashskrypt, który jest następnie uruchamiany w środowisku kompilacji przez travis-worker.

książki kucharskie Travis

travis-cookbooks przechowuje książki kucharskie Chef, które są używane do zapewnienia środowiska kompilacji.

pracownik-podróżnik

travis-worker jest odpowiedzialny za uruchamianie skryptów kompilacji w czystym środowisku. Strumieniuje dane wyjściowe dziennika do travis-logs i przekazuje aktualizacje stanu (kompilacja od początku / końca) do travis-hub.

(Inne podprojekty są odpowiedzialne za komunikację z GitHub, ich interfejsem internetowym, pocztą e-mail i interfejsem API).

William Entriken
źródło
4
Uważam, że projekt wykorzystujący tylko te trzy elementy i wykonujący make testfunkcje byłby świetny. Skomentuj, jeśli chcesz ze mną pracować.
William Entriken
4
Jest wątek na ten temat na repozytorium Travis .
hurrymaplelad
5
GitHub jest dzisiaj niedostępny z powodu DDOS github.com/blog/1981-large-scale-ddos-attack-on-github-com Właśnie dlatego potrzebujemy testów lokalnych
William Entriken
20
Jak faktycznie zainstalować i uruchomić travis-build? W repozytorium nie ma instrukcji.
DisgruntledGoat
1
@sindhus Nie, przepraszam. Jedyne rozwiązanie, jakie znalazłem, to rozwidlenie repozytorium, wprowadzanie zmian, aż Travis zadziała, a następnie skopiowanie pliku konfiguracyjnego do repozytorium głównego i wykonanie jednego zatwierdzenia. Edycja: przyjdź do tego, możesz użyć do tego tymczasowej gałęzi, usunąć zdalną gałąź po zakończeniu i dokonać zmiany bazy / squash w jedną.
DisgruntledGoat
23

Podobnie jak Scott McLeod, ale generuje również skrypt bash do uruchomienia kroków z .travis.yml.

Rozwiązywanie problemów lokalnie w Dockerze za pomocą wygenerowanego skryptu Bash

# choose the image according to the language chosen in .travis.yml
$ docker run -it -u travis quay.io/travisci/travis-jvm /bin/bash

# now that you are in the docker image, switch to the travis user
sudo - travis

# Install a recent ruby (default is 1.9.3)
rvm install 2.3.0
rvm use 2.3.0

# Install travis-build to generate a .sh out of .travis.yml
cd builds
git clone https://github.com/travis-ci/travis-build.git
cd travis-build
gem install travis
# to create ~/.travis
travis version
ln -s `pwd` ~/.travis/travis-build
bundle install

# Create project dir, assuming your project is `AUTHOR/PROJECT` on GitHub
cd ~/builds
mkdir AUTHOR
cd AUTHOR
git clone https://github.com/AUTHOR/PROJECT.git
cd PROJECT
# change to the branch or commit you want to investigate
travis compile > ci.sh
# You most likely will need to edit ci.sh as it ignores matrix and env
bash ci.sh
eregon
źródło
Byłem w stanie wykonać kroki w dół do travis # to create ~/.travis. Travis potrzebuje polecenia do wykonania.
Eivind Gussiås Løkseth
3
sudo - travispowinno być su - travis.
Berend de Boer
1
Wykonując krok kompilacji, otrzymuję:/home/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- travis/support (LoadError)
Berend de Boer
2
@BerenddeBoer: Jeśli nadal nie odkryłeś tego problemu: oto rozwiązanie, aby się go pozbyć cd ~/.travis/travis-build/ bundle install bundler add travis bundler binstubs travis cd <REPO_YOU_WANT_TO_RUN_COMPILE_IN> ~/.travis/travis-build/bin/travis compile
Venkateshwaran Selvaraj,
2
kompilacja Travis nie jest już ważna? Widzę, że nieznane polecenie kompiluje: / travis -h go nie pokazuje: ////
Dawid Drozd
16

Użyj wwtd (co by zrobił Travis) rubinowy klejnot, aby przeprowadzić testy na lokalnej maszynie mniej więcej tak, jak działałyby na travis.

Odtworzy matrycę kompilacji i uruchomi każdą konfigurację, świetną do konfiguracji sprawdzania poprawności przed wypchnięciem.

gem i wwtd
wwtd
grosser
źródło
ważna uwaga: tylko rubywsparcie
msangel
powinno być możliwe dodanie obsługi także dla innych języków, ponieważ uruchamia się w celu uruchomienia kroków
grosser
To jest chore. Działa świetnie! Dzięki!
ppetraki
14

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-imagesekcja została zastąpiona przez, #running-builds-in-debug-modektóra opisuje również SSH do zadania uruchomionego w trybie debugowania .

EDYCJA 2019-07-26

#troubleshooting-locally-in-a-docker-imagesekcja 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 compilenastę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.ymlzostało wykonane zgodnie z oczekiwaniami (zainstalowane zależności, uruchomione testy, ...).

Zauważ, że przed uruchomieniem bash ci.shmusiał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 instancena 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.

Dušan Maďar
źródło
1
Opracowane podejście zrobiło to dla mnie. Ale dodatkowo musiałem ustawić http_proxyśrodowisko ze względu na git clone. Domyślnie git clonezgłasza gnutls_handshakewyjątek. Dlatego muszę wymusić instalację konkretnej bundlerwersji, gem install bundler -v 1.16.6ponieważ bundler binstubs travispoprzednio nie powiodła się. Popraw wymaganą bundlerwersję, uruchamiając `pakiet info travis`
palik
1
To najlepsza odpowiedź tutaj, ponieważ wyjaśnia, jak skompilować travis.ymlw wykonywalnym skrypcie powłoki. Ładnie wykonane! Jedynym ulepszeniem tego byłoby mechanizm, dzięki któremu można uniknąć ręcznej zamiany ciągów podczas określania gałęzi, z której należy budować.
Ben Johnson
1
@BenJohnson Dodałem sedpolecenie, które odnosi się do podanego punktu. Zobacz polecenie przed uruchomieniem bash ci.sh.
Dušan Maďar
Link * Rozwiązywanie problemów lokalnie w
obrazie
1
@juliangonzalez edytowane z najlepszymi informacjami, jakie udało mi się wykopać.
Dušan Maďar
7

Możesz wypróbować Trevor , który używa Dockera do uruchamiania kompilacji Travis.

Z jego opisu:

Często muszę uruchamiać testy dla wielu wersji Node.js. Ale nie chcę przełączać wersji ręcznie za pomocą n / nvm ani przekazywać kodu do Travis CI, aby uruchomić testy.

Właśnie dlatego stworzyłem Trevor. Czyta .travis.yml i uruchamia testy we wszystkich wersjach, o które prosiłeś, podobnie jak Travis CI. Teraz możesz przetestować przed wypchnięciem i utrzymać swoją historię gitów w czystości.

Travis
źródło
2
Informacje dla tych, którzy chcą tego spróbować ... nie obsługuje PHP
Craig Wayne
2
wydaje się być wyłącznie dla node.js. byłoby miło go przedłużyć
João Neto
6

Nie jestem pewien, jaki był pierwotny powód, dla którego Travis jest uruchamiany lokalnie, jeśli tylko chciał grać z nim, a następnie zatrzymać czytanie tutaj jak to jest bez znaczenia dla ciebie.

Jeśli masz już doświadczenie z hostowanym Travis i chcesz uzyskać takie same doświadczenia we własnym centrum danych, czytaj dalej.

Od grudnia 2014 Travis CI oferuje lokalną wersję Enterprise.

http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/

Ceny są również częścią tego artykułu:

Licencjonowanie odbywa się na stanowiska, przy czym każda licencja obejmuje 20 użytkowników. Ceny zaczynają się od 6000 USD za licencję, która obejmuje 20 użytkowników i 5 jednoczesnych wersji. Istnieje opcja premium z nieograniczoną liczbą wersji za 8500 $.

Radek Simko
źródło
3
Właściwie to mnie również zainteresowało. Próbuję skonfigurować zadanie Travis dla naprawdę niezręcznego projektu. Wszystkie te zatwierdzenia 26 kwietnia majstrowały przy pliku .travis.yml ( github.com/gregturn/issue-aggregator/commits/master ). Chciałbym, żeby istniał łatwiejszy sposób na majsterkowanie przy konfiguracji bez konieczności wciskania każdej edycji.
gregturn
4
@gregturn Brzydkie, ale redukujące stres obejście, które wymyśliłem, polegało na sklonowaniu mojego repozytorium do drugiego repozytorium GitHub. Repo whackamolejest więc kopią projektu, nad którym naprawdę chcę pracować, i mogę skonfigurować tymczasowe zadanie kompilacji Travisa dla tego projektu, podczas gdy ja pracuję nad załamaniem automatyzacji kompilacji. Kiedy już to zrobię, rozłóż dziesiątki zatwierdzeń „oops” i prześlij na prawdziwe repozytorium GitHub. (I prawdopodobnie whackamoleusunę repozytorium GitHub i odpowiadające mu zadanie Travis.)
tripleee
3
Zastanawiam się, czy opłata licencyjna w wysokości 6000 USD jest jednorazowa, czy roczna.
Erik
0

Możliwe jest połączenie SSH ze środowiskiem Travis CI za pośrednictwem hosta odbijającego. Ta funkcja nie jest wbudowana w Travis CI, ale można ją osiągnąć, wykonując następujące czynności.

  1. Na hoście odbijającym utwórz travisużytkownika i upewnij się, że możesz do niego SSH.
  2. Umieść te linie w script:sekcji swojego .travis.yml(np. Na końcu).

    - echo travis:$sshpassword | sudo chpasswd
    - sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
    - sudo service ssh restart
    - sudo apt-get install sshpass
    - sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travis@$bouncehostip
    

    Gdzie $bouncehostipjest adres IP / host twojego bounce hosta i $sshpasswordtwoje zdefiniowane hasło SSH. Te zmienne można dodawać jako zmienne szyfrowane .

  3. Naciśnij zmiany. Powinieneś być w stanie nawiązać połączenie SSH z hostem odrzuceń.

Źródło: Powłoka w środowisku kompilacji Travis CI .


Oto pełny przykład:

# use the new container infrastructure
sudo: required
dist: trusty

language: python
python: "2.7"

script:
- echo travis:$sshpassword | sudo chpasswd
- sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
- sudo service ssh restart
- sudo apt-get install sshpass
- sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travisci@$bouncehostip

Zobacz: c-mart/travis-shellw GitHub .


Zobacz także: Jak odtworzyć środowisko kompilacji travis-ci do debugowania

kenorb
źródło