Bagaimana menjalankan travis-ci secara lokal

524

Saya baru saja bergabung dengan sebuah proyek, dan saya baru di travis-ci. Saya lebih suka tidak harus mendorong setiap perubahan kecil ke. Travis.yml dan setiap perubahan kecil yang saya lakukan pada sumber untuk menjalankan build. Dengan jenkins Anda dapat mengunduh jenkins dan menjalankannya secara lokal. Apakah travis menawarkan sesuatu seperti ini?

Catatan: Saya telah melihat travis-ci cli dan mengunduhnya, tetapi yang tampaknya dilakukan hanyalah memanggil API mereka, yang kemudian terhubung ke repo github saya, jadi jika saya tidak mendorong, tidak masalah saya memulai ulang bangunan terakhir.

Sam Hammamy
sumber
3
Anda harus dapat menjalankan tes secara lokal tanpa harus menjalankan Travis CI. Lihatlah bagian "skrip" dari .travis.yml untuk melihat perintah apa yang harus dijalankan.
Konstantin Haase
69
Tetapi hanya menjalankan tes bukanlah masalahnya - seringkali build Travis gagal karena pengaturan dan pemasangan langkah-langkah di install:bagian ini, dan mungkin inilah pertanyaan yang lebih diperhatikan.
Brandon Rhodes
4
Saya akan menambahkan bahwa dalam proyek-proyek kompleks berbagai alasan (misalnya rilis titik yang berbeda atau interaksi sistem runtime, tes intrinsik time-sentitive misalnya tes timeout, dll.) Tes itu sendiri kadang-kadang dapat berperilaku berbeda pada lingkungan lokal dan pada Travis CI .
circlepainter

Jawaban:

200

Proses ini memungkinkan Anda untuk sepenuhnya mereproduksi pekerjaan membangun Travis di komputer Anda. Anda juga dapat menghentikan proses kapan saja dan men-debug. Di bawah ini adalah contoh di mana saya mereproduksi hasil pekerjaan # 191.1 dengan sempurna di php-school / cli-menu .

Prasyarat

  • Anda memiliki repo publik di GitHub
  • Anda menjalankan setidaknya satu bangunan di Travis
  • Anda memiliki Docker di komputer Anda

Siapkan lingkungan build

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

  1. Buat ID bangunan sementara Anda sendiri

    BUILDID="build-$RANDOM"
    
  2. Lihat log build , buka tombol tampilkan lebih banyak untuk INFORMASI PEKERJA dan temukan baris INSTANCE, tempel di sini dan jalankan (ganti tag setelah tanda titik dua dengan yang terbaru yang tersedia) :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. Jalankan server tanpa kepala

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. Jalankan klien terlampir

    docker exec -it $BUILDID bash -l
    

Jalankan pekerjaan

Sekarang Anda sekarang berada di dalam lingkungan Travis Anda. Jalankan su - travisuntuk memulai.

Langkah ini didefinisikan dengan baik tetapi lebih membosankan dan manual. Anda akan menemukan setiap perintah yang dijalankan Travis di lingkungan. Untuk melakukan ini, cari semua yang ada di kolom kanan yang memiliki tag seperti 0.03s.

Di sisi kiri Anda akan melihat perintah yang sebenarnya. Jalankan perintah itu, secara berurutan.

Hasil

Sekarang adalah saat yang tepat untuk menjalankan historyperintah. Anda dapat memulai ulang proses dan memutar ulang perintah tersebut untuk menjalankan tes yang sama terhadap basis kode yang diperbarui.

  • Jika repo Anda pribadi: ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"lalu cat ~/.ssh/id_rsa.pubdan klik di sini untuk menambahkan kunci
  • FYI: Anda bisa git pulldari dalam docker untuk memuat komit dari kotak dev Anda sebelum mendorongnya ke GitHub
  • Jika Anda ingin mengubah perintah yang dijalankan Travis, maka adalah tanggung jawab ANDA untuk mengetahui bagaimana hal itu diterjemahkan kembali menjadi suatu kerja .travis.yml.
  • Saya tidak tahu cara membersihkan lingkungan Docker, kelihatannya rumit, mungkin memori ini bocor
William Entriken
sumber
22
Dalam log di bawah instance:saya tidak dapat melihat jalur gambar buruh pelabuhan yang valid, hanya sesuatu seperti travis-ci-garnet-trusty-1512502259-986baf0. Sudah mencoba travisci/ci-garnet:$INSTANCEdan travisci/$INSTANCE- tidak berhasil, tidak dapat menemukan gambar. Juga hanya mengambil postfix (yaitu travisci/ci-garnet:packer-1512502259-986baf0) tidak berhasil.
Roy Shilkrot
4
Saya mengalami masalah yang sama - gambar yang disebutkan dalam contoh info tidak dapat diunduh. Selain itu, saya sudah mencoba travisci/ci-garnet:packer-1512502276-986baf0gambar yang disarankan dalam dokumen Travis . Yang ini tersedia, tetapi sudah usang. Misalnya, CMake jauh lebih tua dari yang tersedia di Travis. Tidak ada versi baru ci-garnettelah diunggah ke Docker Hub dalam enam bulan terakhir, padahal sebelumnya ada banyak pembaruan per bulan.
skalee
7
Tautan referensi Anda tidak berfungsi lagi - yaitu bagian 'Menjalankan Gambar Docker Berbasis Kontainer' dihapus dari halaman itu. Mungkin perbedaan dalam output instance adalah karena tidak memiliki sudo: requiredset? Dalam build saya sekarang, saya melihat travis-ci-sardonyx-xenial-1547455603-2c98a19mana yang bisa saya petakan ke travisci / ci-sardonyx: packer-1547455648-2c98a19
maxschlepzig
4
bagi saya menggunakan versi terbaru dari travisci / ci-garnet di hub docker (travisci / ci-garnet: packer-1515445631-7dfb2e1) melakukan trik
taleb
3
Jika Anda bekerja pada instance bahasa khusus Travis, Anda juga dapat menggunakan gambar khusus, seperti yang python .
Zaccharie Ramzi
162

Travis-ci menawarkan infrastruktur berbasis kontainer baru yang menggunakan buruh pelabuhan. Ini bisa sangat berguna jika Anda mencoba memecahkan masalah travis-ci build dengan mereproduksi secara lokal. Ini diambil dari dokumentasi Travis CI .

Pemecahan Masalah Lokal di Gambar Docker

Jika Anda mengalami kesulitan melacak masalah sebenarnya di build, seringkali membantu menjalankan build secara lokal. Untuk melakukan ini, Anda harus menggunakan infrastruktur berbasis wadah kami (yaitu, miliki sudo: falsedi Anda .travis.yml), dan untuk mengetahui gambar Docker yang Anda gunakan pada Travis CI.

Menjalankan Gambar Docker Berbasis Wadah Secara Lokal

  1. Unduh dan pasang Mesin Docker .
  2. Pilih gambar dari Docker Hub . Jika Anda tidak menggunakan pengambilan gambar khusus bahasa ci-ruby. Buka terminal dan mulai sesi Docker interaktif menggunakan URL gambar:

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. Beralih ke travispengguna:

    su - travis
    
  4. Kloning repositori git Anda ke /folder gambar.
  5. Instal dependensi secara manual.
  6. Jalankan perintah build Travis CI Anda secara manual.
Scott McLeod
sumber
6
@DustinGraham, itu tergantung pada bagaimana proyek yang sedang dibangun oleh Travis CI telah dikonfigurasi untuk dibangun. Dalam proyek yang saya kerjakan, perintah build dikonfigurasikan dalam file .travis.yml di bawah script: subsection and was make test.
Scott McLeod
102
> Manually install any dependencies Itu terdengar seperti cara yang baik untuk mengakhiri dengan hasil yang tidak sesuai dengan build Travis biasa.
Gerry
6
@Gerry Dengan menginstal dependensi secara manual, saya menganggap maksudnya adalah menjalankan perintah yang Anda miliki secara manual dalam file konfigurasi travis Anda yang menangani instalasi dependensi. Jadi itu perintah yang sama travis CI akan lakukan, hanya saja tidak otomatis.
Chathan Driehuys
8
Aku merasa ini adalah jawaban untuk pertanyaanku tapi Manually tun your Travis CI build command... Seperti, apa? Bagaimana? Apa itu? Saya punya .travis.ymlfile. Saya mencoba travis-build tetapi itu jalan buntu.
Brandon
2
@Brandon Di dalam .travis.yml Anda biasanya ada sub-bagian skrip yang dipanggil oleh travis untuk membangun sumber Anda. Inti dari jawaban ini adalah untuk mengatur lingkungan lokal yang identik dengan yang akan dioperasikan Travis. Selanjutnya Anda akan menjalankan perintah ini sendiri daripada mengandalkan travis untuk menjalankannya untuk Anda. Dengan cara ini Anda dapat melihat efek dari menjalankan setiap perintah sendiri dalam lingkungan ini - ini dapat menghasilkan wawasan tentang masalah build yang mungkin dimiliki seseorang di travis yang jika tidak maka tidak akan dapat diakses.
Scott McLeod
86

UPDATE: Saya sekarang memiliki turnkey lengkap, jawaban lengkap, lihat https://stackoverflow.com/a/49019950/300224 . Hanya butuh 3 tahun untuk mencari tahu!

Menurut dokumentasi Travis: https://github.com/travis-ci/travis-ci ada ramuan proyek yang berkolusi untuk memberikan layanan web Travis CI yang kita kenal dan cintai. Subset proyek berikut ini muncul untuk memungkinkan make testfungsionalitas lokal menggunakan .travis.ymldalam proyek Anda:

travis-build

travis-build membuat skrip build untuk setiap pekerjaan. Dibutuhkan konfigurasi dari .travis.ymlfile dan membuat bashskrip yang kemudian dijalankan di lingkungan build oleh travis-pekerja.

travis-buku masak

travis-cookbooks memegang buku masak Chef yang digunakan untuk menyediakan lingkungan build.

pekerja travis

travis-pekerja bertanggung jawab untuk menjalankan skrip build di lingkungan yang bersih. Ini stream output log ke travis-log dan mendorong pembaruan status (build starting / finishing) ke travis-hub.

(Sub proyek lainnya bertanggung jawab untuk berkomunikasi dengan GitHub, antarmuka web mereka, email, dan API mereka.)

William Entriken
sumber
4
Saya percaya sebuah proyek untuk menggunakan hanya tiga komponen dan melakukan make testfungsi akan lebih baik. Beri komentar jika Anda ingin membahasnya dengan saya.
William Entriken
4
Ada utas tentang ini di repo travis .
hurrymaplelad
5
GitHub turun hari ini karena DDOS github.com/blog/1981-large-scale-ddos-attack-on-github-com Inilah sebabnya mengapa kami memerlukan pengujian lokal
William Entriken
20
Bagaimana cara saya menginstal dan menjalankan travis-build? Tidak ada instruksi dalam repo.
DisgruntledGoat
1
@indhus Tidak, maaf. Satu-satunya solusi yang saya temukan adalah mengarang repo, terus melakukan perubahan sampai Travis berfungsi, lalu salin file konfigurasi ke repo utama dan buat satu komit. Sunting: kalau dipikir-pikir, Anda bisa menggunakan cabang sementara untuk itu, menghapus cabang jauh setelah selesai dan rebase / squash melakukan menjadi satu.
DisgruntledGoat
23

Mirip dengan Scott McLeod tetapi ini juga menghasilkan skrip bash untuk menjalankan langkah-langkah dari .travis.yml.

Memecahkan masalah secara lokal di Docker dengan skrip Bash yang dihasilkan

# 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
sumber
Saya bisa mengikuti langkah ke bawah travis # to create ~/.travis. Travis membutuhkan perintah untuk dijalankan.
Eivind Gussiås Løkseth
3
sudo - travisseharusnya su - travis.
Berend de Boer
1
Ketika melakukan langkah kompilasi saya mendapatkan:/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: Jika Anda masih belum menemukan masalah ini: berikut adalah solusi untuk menyingkirkan masalah ini 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
kompilasi travis juga tidak lagi valid? Saya melihat kompilasi perintah yang tidak dikenal: / travis -h tidak menunjukkannya: ////
Dawid Drozd
16

Gunakan wwtd (apa yang akan dilakukan travis) permata ruby ​​untuk menjalankan tes pada mesin lokal Anda secara kasar karena mereka akan berjalan pada travis.

Ini akan menciptakan kembali build matrix dan menjalankan setiap konfigurasi, bagus untuk pengaturan pemeriksaan kewarasan sebelum mendorong.

gem i wwtd
wwtd
lebih kotor
sumber
catatan penting: hanya rubydukungan
msangel
harus dimungkinkan untuk menambahkan dukungan untuk bahasa lain juga karena ia keluar untuk menjalankan langkah
grosser
Itu sakit. Bagus sekali! Terima kasih!
ppetraki
14

tl; dr Gunakan gambar yang ditentukan di https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image dalam kombinasi dengan https://github.com/ travis-ci / travis-build # use-as-addon-for-travis-cli .


EDIT 2019-12-06

#troubleshooting-locally-in-a-docker-imagebagian diganti dengan #running-builds-in-debug-modeyang juga menjelaskan cara SSH ke pekerjaan yang berjalan dalam mode debug .

EDIT 2019-07-26

#troubleshooting-locally-in-a-docker-imageBagian tidak lagi menjadi bagian dari dokumen; inilah sebabnya


Padahal, ini masih dalam sejarah git: https://github.com/travis-ci/docs-travis-ci-com/pull/2193 .

Cari versi gambar (cukup lama, tidak dapat menemukan yang lebih baru) di: https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 .



Saya ingin memeriksa mengapa salah satu tes di build saya gagal dengan kesalahan yang saya tidak dapatkan secara lokal.

Bekerja.

Apa yang sebenarnya berhasil adalah menggunakan gambar yang ditentukan di Troubleshooting Lokal di halaman dokumen Docker Image . Dalam kasus saya itu travisci/ci-garnet:packer-1512502276-986baf0.

Saya dapat menambahkan travise compilelangkah-langkah berikut yang dijelaskan di 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

Semuanya dari .travis.ymldieksekusi seperti yang diharapkan (dependensi diinstal, tes berjalan, ...).

Perhatikan bahwa sebelum menjalankan bash ci.shsaya harus mengubah --branch\=\'\'\ke --branch\=master\(lihat perintah kedua ke terakhir sed -i ...) di ci.sh.

Jika itu tidak berhasil, perintah di bawah ini akan membantu mengidentifikasi nomor baris target dan Anda dapat mengedit baris secara manual.

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$

Tidak bekerja

Ikuti jawaban yang diterima untuk pertanyaan ini tetapi tidak menemukan gambar ( travis-ci-garnet-trusty-1512502259-986baf0) yang disebutkan instancedi https://hub.docker.com/u/travisci/ .

Bangun poin versi pekerja ke travis-ci / commit pekerja dan referensi instal travis-pekerja-nyaquay.io/travisci/ sebagai registry gambar. Jadi saya mencobanya.

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

Jelas bukan Trusty (Ubuntu 14.04) dan tidak kecil juga.

Dušan Maďar
sumber
1
Bekerja pendekatan melakukannya untuk saya. Tapi selain itu saya harus mengatur http_proxylingkungan demi git clone. Secara default git clonemelempar gnutls_handshakepengecualian. Jadi saya ingin menegakkan instalasi bundlerversi tertentu gem install bundler -v 1.16.6karena bundler binstubs travisgagal sebelumnya. Tingkatkan bundlerversi yang diperlukan dengan menjalankan `bundle info travis`
palik
1
Ini adalah Jawaban terbaik di sini, karena ini menjelaskan bagaimana mengkompilasi travis.ymlmenjadi skrip shell yang dapat dieksekusi. Bagus sekali! Satu-satunya peningkatan pada hal ini adalah mekanisme untuk menghindari penggantian string manual ketika menentukan cabang yang akan dibangun.
Ben Johnson
1
@ BenJohnson Saya telah menambahkan sedperintah yang membahas poin yang Anda buat. Lihat perintah sebelum menjalankan bash ci.sh.
Dušan Maďar
Tautan * Pemecahan Masalah Secara Lokal di Gambar Docker * tidak berfungsi lagi
juliangonzalez
1
@juliangonzalez diedit dengan info terbaik yang bisa saya gali.
Dušan Maďar
7

Anda bisa mencoba Trevor , yang menggunakan Docker untuk menjalankan build Travis Anda.

Dari uraiannya:

Saya sering perlu menjalankan tes untuk beberapa versi Node.js. Tapi saya tidak ingin beralih versi secara manual menggunakan n / nvm atau mendorong kode ke Travis CI hanya untuk menjalankan tes.

Itu sebabnya saya menciptakan Trevor. Bunyinya. Travis.yml dan menjalankan tes di semua versi yang Anda minta, seperti Travis CI. Sekarang, Anda dapat menguji sebelum mendorong dan menjaga riwayat git Anda bersih.

Travis
sumber
2
FYI bagi mereka yang ingin mencoba ini ... tidak mendukung PHP
Craig Wayne
2
tampaknya hanya untuk node.js. akan menyenangkan untuk memperpanjangnya
João Neto
6

Saya tidak yakin apa alasan awal Anda menjalankan Travis secara lokal, jika Anda hanya ingin bermain dengannya, maka berhentilah membaca di sini karena itu tidak relevan untuk Anda.

Jika Anda sudah memiliki pengalaman dengan Travis yang dihosting dan Anda ingin mendapatkan pengalaman yang sama di pusat data Anda sendiri, baca terus.

Sejak Desember 2014, Travis CI menawarkan versi Enterprise di tempat.

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

Harga juga merupakan bagian dari artikel:

Lisensi dilakukan per kursi, di mana setiap lisensi mencakup 20 pengguna. Harga mulai dari $ 6.000 per lisensi, yang mencakup 20 pengguna dan 5 build bersamaan. Ada opsi premium dengan build tidak terbatas seharga $ 8.500.

Radek Simko
sumber
3
Saya sebenarnya tertarik pada ini juga. Saya mencoba mengkonfigurasi pekerjaan travis untuk proyek yang benar-benar aneh. Semua komitmen itu pada 26 April mengutak-atik file .travis.yml ( github.com/gregturn/issue-aggregator/commits/master ). Saya berharap ada cara yang lebih mudah untuk mengotak-atik konfigurasi tanpa harus mendorong setiap edit.
gregturn
4
@regturn Solusi yang buruk tetapi mengurangi stres yang saya temukan adalah mengkloning repo saya ke repo GitHub kedua. Jadi repo itu whackamoleadalah salinan dari proyek yang ingin saya kerjakan, dan saya dapat mengatur pekerjaan sementara Travis untuk proyek itu sementara saya mengerjakan kekusutan otomatisasi pembuatan. Setelah saya mengatasinya, rebase lusinan komitmen "oops" dan dorong ke repo GitHub yang asli. (Dan mungkin menghapus whackamolerepo GitHub dan pekerjaan Travis yang sesuai.)
tripleee
3
Bertanya-tanya apakah biaya lisensi $ 6000 adalah satu kali, atau tahunan.
Erik
0

Dimungkinkan untuk lingkungan SSH ke Travis CI melalui host pentalan. Fitur ini tidak dibangun di Travis CI, tetapi dapat dicapai dengan langkah-langkah berikut.

  1. Di host pentalan, buat travispengguna dan pastikan Anda bisa menggunakan SSH untuk itu.
  2. Letakkan garis-garis ini di script:bagian Anda .travis.yml(misalnya di akhir).

    - 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
    

    Di mana $bouncehostipIP / host host bouncing Anda, dan $sshpasswordkata sandi SSH Anda yang ditentukan. Variabel-variabel ini dapat ditambahkan sebagai variabel terenkripsi .

  3. Dorong perubahan. Anda harus dapat membuat koneksi SSH ke host pentalan Anda.

Sumber: Shell ke Travis CI Build Environment .


Ini adalah contoh lengkapnya:

# 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

Lihat: c-mart/travis-shelldi GitHub .


Lihat juga: Cara mereproduksi lingkungan build travis-ci untuk debugging

kenorb
sumber