Cách chạy travis-ci cục bộ


524

Tôi mới tham gia một dự án và tôi mới tham gia travis-ci. Tôi thà không phải đẩy từng thay đổi nhỏ lên .travis.yml và mọi thay đổi nhỏ tôi thực hiện đối với nguồn để chạy bản dựng. Với jenkins bạn có thể tải jenkins và chạy cục bộ. Liệu travis cung cấp một cái gì đó như thế này?

Lưu ý: Tôi đã xem travis-ci cli và tải xuống, nhưng tất cả những gì cần làm là gọi API của họ, sau đó kết nối với repo github của tôi, vì vậy nếu tôi không đẩy, tôi sẽ không khởi động lại bản dựng cuối cùng.


3
Bạn sẽ có thể chạy thử nghiệm cục bộ mà không phải chạy Travis CI. Kiểm tra phần "script" của .travis.yml để xem lệnh nào sẽ chạy.
Konstantin Haase

69
Nhưng chỉ đơn thuần là chạy các bài kiểm tra không phải là vấn đề - thường thì việc xây dựng Travis không thành công do các bước thiết lập và cài đặt trong install:phần này và có lẽ đây là những câu hỏi được quan tâm nhiều hơn.
Brandon Rhodes

4
Tôi sẽ nói thêm rằng trong các dự án phức tạp có nhiều lý do (ví dụ: các bản phát hành điểm khác nhau hoặc tương tác hệ thống của thời gian chạy, các thử nghiệm cảm tính thời gian thực chất, ví dụ như kiểm tra thời gian chờ ecc.) Đôi khi bản thân các bài kiểm tra có thể hoạt động khác nhau trên môi trường cục bộ và trên Travis CI .
circlepainter

Câu trả lời:


200

Quá trình này cho phép bạn tái tạo hoàn toàn bất kỳ công việc xây dựng Travis nào trên máy tính của bạn. Ngoài ra, bạn có thể làm gián đoạn quá trình bất cứ lúc nào và gỡ lỗi. Dưới đây là một ví dụ nơi tôi tái tạo hoàn hảo kết quả của công việc # 191.1 trên menu php-school / cli-menu .

Điều kiện tiên quyết

  • Bạn có repo công khai trên GitHub
  • Bạn đã chạy ít nhất một bản dựng trên Travis
  • Bạn đã cài đặt Docker trên máy tính của mình

Thiết lập môi trường xây dựng

Tham khảo: https://docs.travis-ci.com/user/common-build-probols/

  1. Tạo ID xây dựng tạm thời của riêng bạn

    BUILDID="build-$RANDOM"
    
  2. Xem nhật ký xây dựng , mở nút hiển thị thêm cho THÔNG TIN CÔNG NHÂN và tìm dòng INSTANCE, dán vào đây và chạy (thay thế thẻ sau dấu hai chấm bằng dấu mới nhất có sẵn) :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. Chạy máy chủ không đầu

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. Chạy máy khách đính kèm

    docker exec -it $BUILDID bash -l
    

Điều hành công việc

Bây giờ bạn đang ở trong môi trường Travis của bạn. Chạy su - travisđể bắt đầu.

Bước này được xác định rõ nhưng nó tẻ nhạt và thủ công hơn. Bạn sẽ tìm thấy mọi lệnh mà Travis chạy trong môi trường. Để làm điều này, hãy tìm mọi thứ trong cột bên phải có thẻ như thế nào 0.03s.

Ở phía bên trái, bạn sẽ thấy các lệnh thực tế. Chạy các lệnh đó, theo thứ tự.

Kết quả

Bây giờ là thời điểm tốt để chạy historylệnh. Bạn có thể khởi động lại quy trình và phát lại các lệnh đó để chạy cùng một bài kiểm tra đối với cơ sở mã được cập nhật.

  • Nếu repo của bạn là riêng tư: ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"thì cat ~/.ssh/id_rsa.pubbấm vào đây để thêm khóa
  • FYI: bạn có thể git pulltừ bên trong docker để tải các xác nhận từ hộp dev của bạn trước khi bạn đẩy chúng vào GitHub
  • Nếu bạn muốn thay đổi các lệnh mà Travis chạy thì trách nhiệm của bạn là tìm ra cách điều đó chuyển trở lại thành công việc .travis.yml.
  • Tôi không biết cách dọn dẹp môi trường Docker, nó có vẻ phức tạp, có thể bộ nhớ này bị rò rỉ

22
Trong nhật ký bên dưới, instance:tôi không thể thấy đường dẫn hình ảnh docker hợp lệ, giống như vậy travis-ci-garnet-trusty-1512502259-986baf0. Đã thử travisci/ci-garnet:$INSTANCEtravisci/$INSTANCE- không hoạt động, không thể tìm thấy hình ảnh. Ngoài ra, chỉ lấy postfix (tức là travisci/ci-garnet:packer-1512502259-986baf0) không hoạt động.
Roy Shilkrot

4
Tôi đang gặp vấn đề tương tự - hình ảnh được đề cập trong thông tin ví dụ không thể tải xuống. Hơn nữa, tôi đã thử travisci/ci-garnet:packer-1512502276-986baf0hình ảnh được đề xuất trong tài liệu Travis . Cái này có sẵn, nhưng đã lỗi thời. Chẳng hạn, CMake cũ hơn một cái có sẵn trong Travis. Không có phiên bản mới ci-garnetnào được tải lên Docker Hub trong sáu tháng qua, trong khi trước đó có nhiều bản cập nhật mỗi tháng.
skalee

7
Liên kết tham chiếu của bạn không hoạt động nữa - tức là phần 'Chạy một Docker hình ảnh dựa trên container cục bộ' đã bị xóa khỏi trang đó. Có lẽ sự khác biệt trong đầu ra cá thể là do không có sudo: requiredthiết lập? Trong bản dựng hiện tại của tôi, tôi thấy travis-ci-sardonyx-xenial-1547455603-2c98a19tôi có thể ánh xạ tới travisci / ci-sardonyx: packer-1547455648-2c98a19
maxschlepzig

4
đối với tôi bằng cách sử dụng phiên bản mới nhất của travisci / ci-garnet trên docker hub (travisci / ci-garnet: packer-1515445631-7dfb2e1) đã thực hiện thủ thuật
Taleb

3
Nếu bạn đang làm việc trên một ví dụ cụ thể về ngôn ngữ của travis, bạn cũng có thể sử dụng hình ảnh chuyên dụng, như hình con trăn .
Zaccharie Ramzi

162

Travis-ci cung cấp một cơ sở hạ tầng dựa trên container mới sử dụng docker. Điều này có thể rất hữu ích nếu bạn đang cố gắng khắc phục sự cố bản dựng travis-ci bằng cách tái tạo nó cục bộ. Điều này được lấy từ tài liệu của Travis CI .

Khắc phục sự cố cục bộ trong hình ảnh Docker

Nếu bạn gặp khó khăn trong việc theo dõi vấn đề chính xác trong bản dựng, nó thường giúp chạy bản dựng cục bộ. Để làm điều này, bạn cần sử dụng cơ sở hạ tầng dựa trên bộ chứa của chúng tôi (nghĩa là có sudo: falsetrong của bạn .travis.yml) và để biết hình ảnh Docker nào bạn đang sử dụng trên Travis CI.

Chạy một Docker dựa trên hình ảnh cục bộ

  1. Tải xuống và cài đặt Docker Engine .
  2. Chọn một hình ảnh từ Docker Hub . Nếu bạn không sử dụng một lựa chọn hình ảnh ngôn ngữ cụ thể ci-ruby. Mở một thiết bị đầu cuối và bắt đầu một phiên Docker tương tác bằng URL hình ảnh:

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. Chuyển sang travisngười dùng:

    su - travis
    
  4. Sao chép kho git của bạn vào /thư mục của hình ảnh.
  5. Cài đặt thủ công bất kỳ phụ thuộc.
  6. Chạy thủ công lệnh xây dựng Travis CI của bạn.

6
@DustinGraham, điều đó phụ thuộc vào cách dự án được xây dựng bởi Travis CI đã được cấu hình để xây dựng. Trong dự án tôi đang thực hiện, lệnh build được cấu hình trong tệp .travis.yml theo tập lệnh: subsection và was make test.
Scott McLeod

102
> Manually install any dependencies Nghe có vẻ là một cách tốt để kết thúc với kết quả không phù hợp với các bản dựng Travis thông thường.
Gerry

6
@Gerry Bằng cách cài đặt phụ thuộc thủ công, tôi giả sử anh ta có nghĩa là chạy thủ công các lệnh bạn có trong tệp cấu hình travis của bạn để xử lý việc cài đặt các phụ thuộc. Vì vậy, đó là các lệnh tương tự travis CI sẽ làm, chỉ là không tự động.
Chathan Driehuys

8
Tôi cảm thấy như đây là câu trả lời cho câu hỏi của mình bằng cách nào đó nhưng Manually tun your Travis CI build command... Thích, cái gì? Làm sao? Nó là gì? Tôi có một .travis.ymltập tin. Tôi đã thử travis-build nhưng đó là một ngõ cụt.
Brandon

2
@Brandon Bên trong .travis.yml của bạn thường có một phần phụ tập lệnh được gọi bởi travis để xây dựng nguồn của bạn. Điểm của câu trả lời này là thiết lập một môi trường cục bộ giống hệt với môi trường mà chuyến đi sẽ hoạt động. Tiếp theo, bạn sẽ tự mình gọi các lệnh này thay vì dựa vào travis để chạy chúng cho bạn. Bằng cách này, bạn có thể thấy tác động của việc tự chạy từng lệnh trong môi trường này - điều này có thể mang lại cái nhìn sâu sắc về vấn đề xây dựng mà người ta có thể gặp phải trong các chuyến đi mà nếu không thì không thể truy cập được.
Scott McLeod

86

CẬP NHẬT: Bây giờ tôi có một chìa khóa trao tay hoàn chỉnh, câu trả lời tất cả trong một, xem https://stackoverflow.com/a/49019950/300224 . Chỉ mất 3 năm để tìm ra!

Theo tài liệu của Travis: https://github.com/travis-ci/travis-ci, có một loạt các dự án thông đồng để cung cấp dịch vụ web Travis CI mà chúng tôi biết và yêu thích. Tập hợp con sau đây của các dự án dường như cho phép make testchức năng cục bộ sử dụng .travis.ymltrong dự án của bạn:

du lịch-xây dựng

travis-build tạo kịch bản xây dựng cho từng công việc. Nó lấy cấu hình từ .travis.ymltệp và tạo một bashtập lệnh sau đó chạy trong môi trường xây dựng bởi travis-worker.

sách dạy nấu ăn

travis-cookbooks giữ các sách dạy nấu ăn Chef được sử dụng để cung cấp môi trường xây dựng.

công nhân du lịch

travis-worker chịu trách nhiệm chạy các tập lệnh xây dựng trong một môi trường sạch sẽ. Nó truyền đầu ra nhật ký đến travis-log và đẩy các cập nhật trạng thái (bắt đầu xây dựng / hoàn thiện) đến travis-hub.

(Các tiểu dự án khác chịu trách nhiệm liên lạc với GitHub, giao diện web, email và API của họ.)


4
Tôi tin rằng một dự án chỉ sử dụng ba thành phần đó và thực hiện make testchức năng sẽ là tuyệt vời. Nhận xét nếu bạn muốn làm việc với tôi.
William Entriken

4
Có một chủ đề về điều này trên repo travis .
rushmaplelad

5
GitHub ngừng hoạt động hôm nay vì DDOS github.com/blog/1981-large-scale-ddos-attack-on-github-com Đây là lý do tại sao chúng tôi cần thử nghiệm cục bộ
William Entriken

20
Làm thế nào để tôi thực sự cài đặt và chạy travis-build? Không có hướng dẫn trong repo.
DisgruntledGoat

1
@sindhus Không, xin lỗi. Giải pháp duy nhất tôi tìm thấy là phân nhánh repo, tiếp tục thực hiện các thay đổi của mình cho đến khi Travis hoạt động, sau đó sao chép tệp cấu hình vào repo chính và thực hiện một cam kết. Chỉnh sửa: hãy nghĩ về nó, bạn có thể sử dụng một nhánh tạm thời cho điều đó, xóa nhánh từ xa sau khi thực hiện và rebase / squash cam kết thành một.
Không hài lòngGoat

23

Tương tự như Scott McLeod, nhưng điều này cũng tạo ra một tập lệnh bash để chạy các bước từ .travis.yml.

Khắc phục sự cố cục bộ trong Docker với tập lệnh Bash được tạo

# 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

Tôi đã có thể làm theo các bước xuống travis # to create ~/.travis. Travis cần một lệnh để thực thi.
Eivind Gussiås Løkseth

3
sudo - travisnên su - travis.
Berend de Boer

1
Khi thực hiện bước biên dịch tôi nhận được:/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: Nếu bạn vẫn chưa tìm ra vấn đề này: đây là giải pháp để thoát khỏi vấn đề 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
Biên dịch travis cũng không còn hiệu lực? Tôi thấy trình biên dịch lệnh chưa biết: / travis -h không hiển thị nó: ////
Dawid Drozd

16

Sử dụng đá quý ruby wwtd (những gì sẽ làm) đá quý để chạy thử nghiệm trên máy cục bộ của bạn một cách đại khái như chúng sẽ chạy trên travis.

Nó sẽ tạo lại ma trận xây dựng và chạy từng cấu hình, rất tốt để kiểm tra thiết lập trước khi đẩy.

gem i wwtd
wwtd

lưu ý quan trọng: chỉ rubyhỗ trợ
msangel

nên có thể thêm hỗ trợ cho các ngôn ngữ khác vì nó trình bày để chạy các bước
thu nhập

Thật buồn nôn. Hoạt động tuyệt vời! Cảm ơn!
ppetraki

14

tl; dr Sử dụng hình ảnh được chỉ định tại https://docs.travis-ci.com/user/common-build-probols/#troubledhoot-locally-in-a-docker-image kết hợp với https://github.com/ travis-ci / travis-build # use-as-addon-for-travis-cli .


EDIT 2019-12-06

#troubleshooting-locally-in-a-docker-imagephần đã được thay thế bằng phần #running-builds-in-debug-modenày cũng mô tả cách SSH tới công việc đang chạy trong chế độ gỡ lỗi .

EDIT 2019-07-26

#troubleshooting-locally-in-a-docker-imagephần không còn là một phần của tài liệu; đây là lý do tại sao


Mặc dù vậy, nó vẫn còn trong lịch sử git: https://github.com/travis-ci/docs-travis-ci-com/pull/2193 .

Tìm các phiên bản hình ảnh (khá cũ, không thể tìm thấy mới hơn) tại: https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 .



Tôi muốn kiểm tra lý do tại sao một trong các thử nghiệm trong bản dựng của tôi không thành công với lỗi tôi không nhận được tại địa phương.

Đã làm việc.

Những gì thực sự hoạt động là sử dụng hình ảnh được chỉ định tại Khắc phục sự cố cục bộ trong trang tài liệu Hình ảnh Docker . Trong trường hợp của tôi, nó đã được travisci/ci-garnet:packer-1512502276-986baf0.

Tôi đã có thể thêm travise compilecác bước sau được mô tả tại 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

Mọi thứ từ .travis.ymlđược thực hiện như mong đợi (cài đặt phụ thuộc, chạy thử, ...).

Lưu ý rằng trước khi chạy bash ci.shtôi phải đổi --branch\=\'\'\sang --branch\=master\(xem lệnh thứ hai đến sed -i ...lệnh cuối cùng ) trong ci.sh.

Nếu điều đó không hoạt động, lệnh dưới đây sẽ giúp xác định số dòng đích và bạn có thể chỉnh sửa dòng thủ công.

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$

Không hoạt động.

Đã làm theo câu trả lời được chấp nhận cho câu hỏi này nhưng không tìm thấy hình ảnh ( travis-ci-garnet-trusty-1512502259-986baf0) được đề cập bởi instancetại https://hub.docker.com/u/travisci/ .

Xây dựng phiên bản worker worker trỏ tới travis-ci / worker commit và các tài liệu tham khảo travis-worker-install của nóquay.io/travisci/ như là registry hình ảnh. Vì vậy, tôi đã thử nó.

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

Chắc chắn không phải Trusty (Ubuntu 14.04) và cũng không nhỏ.


1
Cách tiếp cận làm việc đã làm điều đó cho tôi. Nhưng ngoài ra, tôi phải thiết lập http_proxymôi trường vì lợi ích của nó git clone. Trên mặc định git cloneném gnutls_handshakengoại lệ. Vì vậy, tôi mũ để thực thi cài đặt bundlerphiên bản cụ thể gem install bundler -v 1.16.6bundler binstubs travisthất bại trước đây. Cải thiện bundlerphiên bản bắt buộc bằng cách chạy `bó thông tin travis`
palik

1
Đây là câu trả lời tốt nhất ở đây, bởi vì nó giải thích cách biên dịch travis.ymlthành tập lệnh shell thực thi. Làm tốt lắm! Cải tiến duy nhất cho điều này sẽ là một cơ chế để tránh việc thay thế chuỗi thủ công khi chỉ định nhánh để xây dựng.
Ben Johnson

1
@BenJohnson Tôi đã thêm một sedlệnh giải quyết điểm bạn đã thực hiện. Xem lệnh trước khi chạy bash ci.sh.
Dušan Maďar

Liên kết * Khắc phục sự cố cục bộ trong Docker Image * không hoạt động nữa
juliangonzalez 26/07/19

1
@juliangonzalez chỉnh sửa với thông tin tốt nhất tôi có thể đào.
Dušan Maďar

7

Bạn có thể thử Trevor , sử dụng Docker để chạy bản dựng Travis của bạn.

Từ mô tả của nó:

Tôi thường cần chạy thử nghiệm cho nhiều phiên bản của Node.js. Nhưng tôi không muốn chuyển đổi phiên bản theo cách thủ công bằng cách sử dụng n / nvm hoặc đẩy mã sang Travis CI chỉ để chạy thử nghiệm.

Đó là lý do tại sao tôi tạo ra Trevor. Nó đọc .travis.yml và chạy thử nghiệm trong tất cả các phiên bản bạn yêu cầu, giống như Travis CI. Bây giờ, bạn có thể kiểm tra trước khi đẩy và giữ lịch sử git của bạn sạch sẽ.


2
FYI cho những người muốn thử điều này ... không hỗ trợ PHP
Craig Wayne

2
dường như là dành riêng cho node.js. sẽ rất tuyệt nếu gia hạn nó
João Neto

6

Tôi không chắc lý do ban đầu của bạn khi chạy Travis cục bộ là gì, nếu bạn chỉ muốn chơi với nó, thì hãy dừng đọc ở đây vì nó không liên quan đến bạn.

Nếu bạn đã có kinh nghiệm với Travis được lưu trữ và bạn muốn có cùng trải nghiệm trong trung tâm dữ liệu của riêng mình, hãy đọc tiếp.

Kể từ tháng 12 năm 2014, Travis CI cung cấp phiên bản Enterprise tại chỗ.

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

Giá cả cũng là một phần của bài viết:

Việc cấp phép được thực hiện trên mỗi ghế, trong đó mỗi giấy phép bao gồm 20 người dùng. Giá khởi điểm $ 6.000 mỗi giấy phép, bao gồm 20 người dùng và 5 bản dựng đồng thời. Có một tùy chọn cao cấp với các bản dựng không giới hạn với giá $ 8,5.


3
Tôi thực sự quan tâm đến điều này là tốt. Tôi đang cố gắng cấu hình một công việc travis cho một dự án thực sự khó xử. Tất cả những cam kết vào ngày 26 tháng 4 đã được xử lý với tệp .travis.yml ( github.com/gregturn/su-aggregator/commits/master ). Tôi ước có một cách dễ dàng hơn để sửa đổi cấu hình mà không cần phải đẩy từng chỉnh sửa.
gregturn

4
@gregturn Một cách giải quyết xấu xí nhưng giảm căng thẳng mà tôi nghĩ ra là sao chép repo của tôi sang repo GitHub thứ hai. Vì vậy, repo whackamolelà một bản sao của dự án mà tôi thực sự muốn làm việc và tôi có thể thiết lập một công việc xây dựng Travis tạm thời cho dự án đó trong khi tôi thực hiện các bước ngoặt của tự động hóa xây dựng. Khi tôi đã đóng đinh nó xuống, hãy loại bỏ hàng tá "oops" cam kết và đẩy tới repo GitHub thực sự. (Và có thể xóa whackamolerepo GitHub và công việc Travis tương ứng.)
tripleee

3
Tự hỏi nếu lệ phí giấy phép $ 6000 là một lần, hoặc hàng năm.
Erik

0

Có thể SSH đến môi trường Travis CI thông qua máy chủ thoát. Tính năng này không được tích hợp trong Travis CI, nhưng có thể đạt được bằng các bước sau.

  1. Trên máy chủ thoát, tạo travisngười dùng và đảm bảo rằng bạn có thể SSH tới nó.
  2. Đặt những dòng này trong script:phần của bạn .travis.yml(ví dụ ở cuối).

    - 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
    

    Trong trường hợp $bouncehostiplà IP / máy chủ của máy chủ không truy cập, và $sshpasswordlà mật khẩu SSH xác định của bạn. Các biến này có thể được thêm vào dưới dạng các biến được mã hóa .

  3. Đẩy các thay đổi. Bạn sẽ có thể tạo kết nối SSH đến máy chủ thoát của mình.

Nguồn: Shell vào Travis CI Xây dựng môi trường .


Dưới đây là ví dụ đầy đủ:

# 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

Xem: c-mart/travis-shelltại GitHub .


Xem thêm: Cách tái tạo môi trường xây dựng travis-ci để gỡ lỗi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.