SShpass not allowed with Travis CI

Context

I have an application where I am using unit tests and I need to run it all the time. I decided to use github + travis + docker.

My Docker container is Ubuntu 12.04 with openSSL, which I cannot connect externally and I have no problem with that

I need, when the travis build is ok, connect the docker container via SSH and run the script.

Problem

Actually, I am using:

enter image description here

But that doesn't work at all because sshpass is not whitelisted. It seems that I cannot use the before_install command because I am using a container based framework.

NB: port 22, I missed it during the snapshot.

Questions

  • How do I do to connect my ssh container from travis to deploy my app (just run the script that git clone / git pull if the directory exists)
  • Is this a good way to do it like it does with travis, or is there something else?

EDIT:

New travis file: enter image description here

And the magazine

Using worker: worker-linux-968a87ce-1.bb.travis-ci.org:travis-linux-14
system_info
Build system information
Build language: node_js
Build image provisioning date and time
Wed Feb  4 18:22:50 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:    12.04
Codename:   precise
Linux Version
2.6.32-042stab090.5
Cookbooks Version
23bb455 https://github.com/travis-ci/travis-cookbooks/tree/23bb455
GCC version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
ruby-1.9.3-p551
Pre-installed Node.js versions
v0.10.36
Pre-installed Go versions
1.4.1
Redis version
redis-server 2.8.19
riak version
2.0.2
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
1.9.4
Cassandra version
2.0.9
RabbitMQ Version
3.4.3
ElasticSearch version
1.4.0
Installed Sphinx versions
2.0.10
2.1.9
2.2.6
Default Sphinx version
2.2.6
Installed Firefox version
firefox 31.0esr
PhantomJS version
1.9.8
ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011
mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
Maven home: /usr/local/maven
Java version: 1.7.0_76, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-042stab090.5", arch: "amd64", family: "unix"
git.checkout
0.26s$ git clone --depth=50 --branch=master git://myPrivateRepo/Project
Cloning into 'user/Project'...
remote: Counting objects: 1363, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 1363 (delta 4), reused 0 (delta 0), pack-reused 1354
Receiving objects: 100% (1363/1363), 874.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (263/263), done.
Checking connectivity... done.
$ cd user/Project
$ git checkout -qf commitId
1.56s$ nvm install 0.10
######################################################################## 100.0%
Now using node v0.10.38
$ node --version
v0.10.38
$ npm --version
1.4.28
$ nvm --version
0.23.3
before_install
6.72s$ sudo apt-get install sshpass
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  libgeos-3.2.2
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  sshpass
0 upgraded, 1 newly installed, 0 to remove and 102 not upgraded.
Need to get 10.5 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe sshpass amd64 1.05-1 [10.5 kB]
Fetched 10.5 kB in 0s (234 kB/s)
Selecting previously unselected package sshpass.
(Reading database ... 75363 files and directories currently installed.)
Unpacking sshpass (from .../sshpass_1.05-1_amd64.deb) ...
Processing triggers for man-db ...
Setting up sshpass (1.05-1) ...
install
1.12s$ npm install 
npm WARN package.json UnitTest@0.0.0 No description
npm WARN package.json UnitTest@0.0.0 No repository field.
npm WARN package.json UnitTest@0.0.0 No README data
0.95s$ npm test
> UnitTest@0.0.0 test /home/travis/build/user/project
> node test
    First test should fail:   1) First test should fail
  0 passing (8ms)
  1 failing
  1) First test should fail:
      AssertionError: true == false
      + expected - actual
      -true
      +false

      at Context.<anonymous> (test/first.js:8:16)
The command "npm test" exited with 0.
after_success
0.91s$ sudo sshpass -p password ssh root@ip -p 7000
Done. Your build exited with 0.

      

+3


source to share


3 answers


I see two possible solutions to your problem:



  • Switch to the non-containerized Travis-CI infrastructure by adding sudo: true

    to your .travis file so you can install the package you need.
  • Ask to be added sshpass

    to the whitelist. A request can be made here: https://github.com/travis-ci/travis-ci/labels/apt-whitelist
+1


source


Can you use SSH key instead sshpass

? This way you can simply use the SSH key to connect to the Docker container instead of using a password.



0


source


sshpass can be installed in the Travis CI container by adding:

addons:
  apt:
    packages:
    - sshpass

      

0


source







All Articles