travis-ci를 로컬로 실행하는 방법


524

방금 프로젝트에 참여했으며 travis-ci를 처음 사용합니다. 오히려 모든 작은 변경 사항을 .travis.yml로 푸시하고 빌드를 실행하기 위해 소스에 대한 모든 작은 변경 사항을 푸시하지 않아도됩니다. jenkins를 사용하면 jenkins를 다운로드하고 로컬로 실행할 수 있습니다. 트래비스는 이와 같은 것을 제공합니까?

참고 : travis-ci cli를보고 다운로드했지만 API를 호출하면 github 저장소에 연결되므로 푸시하지 않으면 다시 시작해도 중요하지 않습니다. 마지막 빌드.


3
Travis CI를 실행할 필요없이 테스트를 로컬에서 실행할 수 있어야합니다. 실행할 명령을 보려면 .travis.yml의 "스크립트"섹션을 확인하십시오.
Konstantin Haase 2014

69
그러나 테스트를 실행하는 것만으로는 문제가되지 않습니다. install:섹션 의 설정 및 설치 단계로 인해 Travis 빌드가 실패하는 경우가 많으며 이는 아마도 문제가 더 우려되는 부분 일 것입니다.
Brandon Rhodes

4
복잡한 프로젝트에서 다양한 이유 (예 : 런타임의 다른 포인트 릴리스 또는 시스템 상호 작용, 본질적으로 시간에 민감한 테스트, 시간 초과 테스트 등)와 같은 테스트 자체가 로컬 환경과 Travis CI에서 다르게 작동 할 수 있다고 덧붙입니다. .
서클 페인터

답변:


200

이 프로세스를 통해 컴퓨터에서 모든 Travis 빌드 작업을 완벽하게 재현 할 수 있습니다. 또한 언제든지 프로세스를 중단하고 디버그 할 수 있습니다. 아래는 php-school / cli-menu 작업 # 191.1 의 결과를 완벽하게 재현하는 예 입니다.

전제 조건

  • GitHub에 공개 리포지토리가 있습니다
  • Travis에서 하나 이상의 빌드를 실행했습니다.
  • 컴퓨터에 Docker가 설정되어 있습니다.

빌드 환경 설정

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

  1. 나만의 임시 빌드 ID를 구성하십시오.

    BUILDID="build-$RANDOM"
    
  2. 보기 빌드 로그를 (콜론 다음 태그 교체, 근무 내용은 쇼 더 많은 버튼을 열고 인스턴스 라인을 찾아, 여기 실행에 붙여 넣습니다 항상 최신 하나)를 :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. 헤드리스 서버 실행

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. 연결된 클라이언트를 실행하십시오.

    docker exec -it $BUILDID bash -l
    

작업을 실행

이제 Travis 환경 내부에 있습니다. su - travis시작하여 실행하십시오 .

이 단계는 잘 정의되어 있지만 더 지루하고 수동적입니다. Travis가 환경에서 실행하는 모든 명령을 찾을 수 있습니다. 이렇게하려면 오른쪽 열에서와 같은 태그가있는 모든 항목을 찾으십시오 0.03s.

왼쪽에는 실제 명령이 표시됩니다. 해당 명령을 순서대로 실행하십시오.

결과

이제 history명령 을 실행하기에 좋은시기 입니다. 프로세스를 다시 시작하고 해당 명령을 재생하여 업데이트 된 코드베이스에 대해 동일한 테스트를 실행할 수 있습니다.

  • 당신의 repo가 개인 인 경우 : ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"다음 cat ~/.ssh/id_rsa.pub여기를 클릭 키를 추가
  • 참고 : git pullDocker에서 GitHub로 푸시하기 전에 dev 상자에서 커밋을로드 할 수 있습니다.
  • Travis가 실행하는 명령을 변경하려면 그것이 어떻게 작동으로 변환되는지 알아내는 것은 귀하의 책임 .travis.yml입니다.
  • Docker 환경을 정리하는 방법을 모르겠습니다. 복잡해 보입니다. 아마도 메모리가 누출 될 수 있습니다.

22
아래 로그에서 instance:유효한 도커 이미지 경로를 볼 수 없습니다 travis-ci-garnet-trusty-1512502259-986baf0. 시도 travisci/ci-garnet:$INSTANCE하고 travisci/$INSTANCE-작동하지 않아 이미지를 찾을 수 없습니다. 또한 접미사 ( travisci/ci-garnet:packer-1512502259-986baf0)를 가져 오는 것이 효과가 없었습니다.
Roy Shilkrot

4
같은 문제가 발생합니다. 인스턴스 정보에 언급 된 이미지를 다운로드 할 수 없습니다. 또한 Travis docstravisci/ci-garnet:packer-1512502276-986baf0 에서 제안 된 이미지를 사용해 보았습니다 . 이것은 유효하지만 구식입니다. 예를 들어 CMake는 Travis에서 사용 가능한 것보다 오래되었습니다. 지난 6 개월 동안 Docker Hub 에 새 버전의 버전 이 업로드되지 않았지만 이전에는 한 달에 많은 업데이트가있었습니다. ci-garnet
skalee

7
참조 링크가 더 이상 작동하지 않습니다. 즉, '컨테이너 기반 Docker 이미지를 로컬로 실행'섹션이 해당 페이지에서 제거되었습니다. 인스턴스 출력의 차이가 sudo: required설정 되지 않았기 때문일 수 있습니다 . 광산의 현재 빌드에서 나는보고 travis-ci-sardonyx-xenial-1547455603-2c98a19난에 매핑 할 수있는 포장-1547455648-2c98a19 : travisci / CI-사도 닉스
maxschlepzig

4
도커 허브 (travisci / ci-garnet : packer-1515445631-7dfb2e1)에서 최신 버전의 travisci / ci-garnet을 사용하여 트릭을 수행했습니다
taleb

3
언어 별 travis 인스턴스에서 작업중인 경우 python one 과 같은 전용 이미지를 사용할 수도 있습니다 .
Zaccharie Ramzi

162

Travis-ci는 도커를 사용하는 새로운 컨테이너 기반 인프라를 제공합니다. travis-ci 빌드를 로컬로 재생하여 문제를 해결하려는 경우 매우 유용합니다. 이것은 Travis CI의 documentation 에서 발췌 한 것입니다 .

Docker 이미지에서 로컬로 문제 해결

빌드에서 정확한 문제를 추적하는 데 문제가 있으면 빌드를 로컬에서 실행하는 데 도움이되는 경우가 많습니다. 당신이 우리의 컨테이너 기반 인프라 이용해야이하려면 (즉,이 sudo: false당신에 .travis.yml), 당신은 트래비스 CI에 사용되는 도커 이미지 알고.

컨테이너 기반 Docker 이미지를 로컬로 실행

  1. Docker Engine을 다운로드하여 설치하십시오 .
  2. Docker Hub 에서 이미지를 선택하십시오 . 언어 별 이미지를 사용하지 않는 경우를 선택하십시오 ci-ruby. 터미널을 열고 이미지 URL을 사용하여 대화식 Docker 세션을 시작하십시오.

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. travis사용자로 전환하십시오 .

    su - travis
    
  4. git 저장소를 /이미지 의 폴더에 복제하십시오 .
  5. 종속성을 수동으로 설치하십시오.
  6. Travis CI 빌드 명령을 수동으로 실행하십시오.

6
@DustinGraham은 Travis CI에서 빌드중인 프로젝트가 빌드되도록 구성된 방식에 따라 다릅니다. 내가 작업했던 프로젝트에서 build 명령은 .travis.yml 파일의 스크립트 subsection and was에서 구성되었습니다 make test.
Scott McLeod

102
> Manually install any dependencies 일반적인 Travis 빌드와 일치하지 않는 결과를 얻는 좋은 방법 인 것 같습니다.
Gerry

6
@Gerry 의존성을 수동으로 설치한다는 것은 의존성 설치를 처리하는 travis 구성 파일에있는 명령을 수동으로 실행하는 것을 의미한다고 가정합니다. 따라서 travis CI가 자동화하지 않고 수행하는 것과 동일한 명령입니다.
Chathan Driehuys

8
나는 이것이 어떻게 든 내 질문에 대한 답변이라고 생각하지만 Manually tun your Travis CI build command...처럼, 무엇? 어떻게? 무엇입니까? 나는이 .travis.yml파일을. travis-build를 시도했지만 막 다른 골목입니다.
Brandon

2
@Brandon .travis.yml 안에는 일반적으로 트래비스가 소스를 빌드하기 위해 호출하는 스크립트 하위 섹션이 있습니다. 이 답변의 핵심은 트래비스가 작동하는 환경과 동일한 로컬 환경을 설정하는 것입니다. 다음으로 트래비스에 의존하지 않고 직접 명령을 실행합니다. 이 방법으로이 환경 내에서 각 명령을 직접 실행 한 결과를 확인할 수 있습니다. 이렇게하면 액세스 할 수없는 트래비스에서 발생할 수있는 빌드 문제에 대한 통찰력을 얻을 수 있습니다.
Scott McLeod

86

업데이트 : 이제 완전한 턴키, 올인원 답변을 얻었습니다 ( https://stackoverflow.com/a/49019950/300224 참조) . 알아내는 데 3 년 밖에 걸리지 않았습니다!

Travis 문서에 따르면 https://github.com/travis-ci/travis-ci 우리가 알고 사랑하는 Travis CI 웹 서비스를 제공하기 위해 협력하는 프로젝트가 있습니다. 다음 프로젝트 하위 집합은 프로젝트 에서를 make test사용하여 로컬 기능 을 허용하는 것으로 보입니다 .travis.yml.

트래비스 빌드

travis-build 는 각 작업에 대한 빌드 스크립트를 만듭니다. .travis.yml파일 에서 구성을 가져 와서 bashtravis-worker에 의해 빌드 환경에서 실행 되는 스크립트를 작성합니다 .

트래비스 요리 책

travis-cookbooks 는 빌드 환경을 제공하는 데 사용되는 Chef 요리 책을 보유 합니다.

트래비스 노동자

travis-worker 는 깨끗한 환경에서 빌드 스크립트를 실행합니다. 로그 출력을 travis-logs로 스트리밍하고 상태 업데이트 (빌드 시작 / 종료)를 travis-hub로 푸시합니다.

다른 하위 프로젝트는 웹 인터페이스, 이메일 및 API 인 GitHub와 통신해야합니다.


4
이 세 가지 구성 요소 만 사용하고 make test기능을 수행하는 프로젝트가 좋을 것이라고 생각합니다. 나와 함께 일하고 싶다면 의견을 말하십시오.
William Entriken

4
travis repo 에 이것 대한 스레드가 있습니다 .
hurrymaplelad

5
GitHub의 때문에 오늘날 다운 DDOS github.com/blog/1981-large-scale-ddos-attack-on-github-com 우리는 현지 테스트를 필요로하는 이유는
윌리엄 Entriken

20
실제로 설치하고 실행하려면 어떻게합니까 travis-build? 리포지토리에는 지침이 없습니다.
DisgruntledGoat

1
@sindhus 아니요, 죄송합니다. 내가 찾은 유일한 해결책은 repo를 포크하고 Travis가 작동 할 때까지 계속 변경 한 다음 구성 파일을 기본 저장소에 복사하고 커밋하는 것입니다. 편집 : 생각해 보니 임시 분기를 사용하고 원격 분기를 한 번 삭제하고 리베이스 / 스쿼시 커밋을 하나로 만들 수 있습니다.
DisgruntledGoat

23

Scott McLeod와 유사하지만 .travis.yml에서 단계를 실행하는 bash 스크립트도 생성합니다.

생성 된 Bash 스크립트를 사용하여 Docker에서 로컬로 문제 해결

# 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

아래 단계를 따라갈 수있었습니다 travis # to create ~/.travis. Travis를 실행하려면 명령이 필요합니다.
Eivind Gussiås Løkseth

3
sudo - travis이어야합니다 su - travis.
Berend de Boer

1
컴파일 단계를 수행하면 다음과 같은 결과를 얻습니다./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 :이 문제를 아직 파악하지 못한 경우 :이 문제를 해결하는 해결책은 다음과 같습니다 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
트래비스 컴파일 또는 더 이상 유효합니까? 알 수없는 명령 컴파일 참조 : / travis -h는 그것을 표시하지 않습니다 : ////
Dawid Drozd

16

사용 (트래비스가 어떻게 할 것인지) wwtd 가 트래비스에 실행됩니다 약으로 로컬 컴퓨터에서 테스트를 실행하는 루비 보석을.

빌드 매트릭스를 다시 만들고 각 구성을 실행하여 푸시하기 전에 설정을 확인합니다.

gem i wwtd
wwtd

중요 사항 : ruby지원 만
msangel

실행 단계에 밖으로부터도 껍질을 다른 언어에 대한 지원을 추가 할 수 있어야한다
그로서의

아파요 잘 작동합니다! 감사!
ppetraki

14

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-modeSSH 하는 방법도 설명 합니다 .

2019-07-26 수정

#troubleshooting-locally-in-a-docker-image섹션은 더 이상 문서의 일부가 아닙니다. 여기 왜


그럼에도 불구하고 여전히 자식 역사에 있습니다 : https://github.com/travis-ci/docs-travis-ci-com/pull/2193 .

https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 에서 (오래된, 최신 버전을 찾을 수 없음) 이미지 버전을 찾으십시오 .



내 빌드의 테스트 중 하나 가 로컬에서 얻지 못하는 오류로 실패한 이유를 검사하고 싶었습니다 .

일했다.

실제로 작동 한 것은 Docker Image docs 페이지의 로컬문제 해결에 지정된 이미지를 사용하는 것 입니다. 내 경우에는이었다 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예상대로 실행되었습니다 (종속성 설치, 테스트 실행 등).

참고 실행하기 전에 것을 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 committravis-worker-install 참조 quay.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

확실히 신뢰할 수 없으며 (우분투 14.04) 작지도 않습니다.


1
일한 접근 방식이 나를 위해했습니다. 그러나 추가적으로 나는 http_proxy환경 을 설정해야했다 git clone. 기본적으로 예외 git clonegnutls_handshake발생합니다. 그래서 나는 이전에 실패 했기 때문에 특정 bundler버전의 설치를 강요하는 것을 싫어합니다 . `bundle info travis`를 실행하여 필요한 버전을 개선하십시오gem install bundler -v 1.16.6bundler binstubs travisbundler
palik

1
이것은 travis.yml실행 가능한 쉘 스크립트 로 컴파일하는 방법을 설명하기 때문에 여기에 가장 좋은 대답 입니다. 잘 했어요! 이것에 대한 유일한 개선 사항은 빌드 할 분기를 지정할 때 수동 문자열 교체를 피하는 메커니즘입니다.
벤 존슨

1
@ BenJohnson 나는 sed당신이 만든 요점을 다루는 명령을 추가했습니다 . 실행하기 전에 명령을 참조하십시오 bash ci.sh.
Dušan Maďar

링크는 *는 도커 이미지에서 로컬 문제 해결 * 더 이상 작동하지 않습니다
juliangonzalez

1
@juliangonzalez는 내가 파낼 수있는 최고의 정보로 편집했습니다.
Dušan Maďar

7

Docker를 사용하여 Travis 빌드를 실행하는 Trevor를 시도 할 수 있습니다.

설명에서 :

여러 버전의 Node.js에 대한 테스트를 실행해야하는 경우가 종종 있습니다. 그러나 테스트를 실행하기 위해 n / nvm을 사용하여 버전을 수동으로 전환하거나 코드를 Travis CI로 푸시하고 싶지 않습니다.

내가 Trevor를 만든 이유입니다. Travis CI와 마찬가지로 .travis.yml을 읽고 요청한 모든 버전에서 테스트를 실행합니다. 이제 푸시하기 전에 테스트하고 자식 기록을 깨끗하게 유지할 수 있습니다.


2
이것을 시도하는 사람들을위한 참고 사항 ... PHP를 지원하지 않습니다
Craig Wayne

2
node.js 전용 인 것 같습니다. 그것을 확장하는 것이 좋을 것입니다
João Neto

6

Travis를 로컬로 실행 한 원래 이유가 무엇인지 잘 모르겠습니다. 방금 플레이하고 싶다면 여기와 관련 이 없으므로 여기에서 읽기를 중단하십시오.

호스팅 된 Travis에 대한 경험이 있고 자체 데이터 센터에서 동일한 경험을 얻으려면 계속 읽으십시오.

201412 월부터 Travis CI는 Enterprise 온-프레미스 버전을 제공합니다.

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

가격도 기사의 일부입니다.

라이센스는 각 라이센스마다 20 명의 사용자가 포함되는 라이센스별로 수행됩니다. 가격은 라이센스 당 $ 6,000에서 시작하며 여기에는 20 명의 사용자와 5 개의 동시 빌드가 포함됩니다. $ 8,500에 무제한 빌드가 가능한 프리미엄 옵션이 있습니다.


3
실제로 이것에도 관심이있었습니다. 정말 어색한 프로젝트에 대해 트래비스 작업을 구성하려고합니다. 4 월 26 일 커밋은 모두 .travis.yml 파일 ( github.com/gregturn/issue-aggregator/commits/master )로 처리되었습니다. 매번 편집 할 필요없이 구성을 쉽게 다룰 수있는 방법이 있었으면 좋겠습니다.
gregturn

4
@gregturn 내가 생각한 추악하지만 스트레스를 줄이는 해결 방법은 내 저장소를 두 번째 GitHub 저장소에 복제하는 것이 었습니다. 따라서 repo whackamole는 실제로 작업하려는 프로젝트의 사본이며 빌드 자동화의 꼬임을 해결하는 동안 해당 프로젝트에 대한 임시 Travis 빌드 작업을 설정할 수 있습니다. 일단 그 문제가 해결되면 수십 개의 "oops"커밋을 리베이스하고 실제 GitHub 리포지토리로 푸시하십시오. (그리고 아마도 제거 whackamoleGitHub의의의 repo와 해당 트래비스 작업을.)
tripleee

3
$ 6000 라이센스 비용이 일회성 또는 연간인지 궁금합니다.
Erik

0

바운스 호스트를 통해 Travis CI 환경에 SSH로 연결할 수 있습니다. 이 기능은 Travis CI에 내장되어 있지 않지만 다음 단계를 통해 수행 할 수 있습니다.

  1. 바운스 호스트에서 travis사용자를 생성 하고 SSH로 연결할 수 있는지 확인하십시오.
  2. 이 줄 script:을 귀하 의 섹션 .travis.yml(예 : 끝에)에 넣으십시오 .

    - 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
    

    $bouncehostip바운스 호스트의 IP / 호스트는 어디에 있으며 $sshpassword정의 된 SSH 비밀번호입니다. 이러한 변수는 암호화 된 변수 로 추가 할 수 있습니다 .

  3. 변경 사항을 푸시하십시오. 바운스 호스트에 SSH로 연결할 수 있어야합니다.

출처 : Travis CI 빌드 환경으로의 쉘 .


전체 예는 다음과 같습니다.

# 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

c-mart/travis-shellGitHub에서 참조하십시오 .


참조 : 디버깅을 위해 travis-ci 빌드 환경을 재생성하는 방법

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.