Ricardo Giaviti Ricardo Giaviti - 1 year ago 97
PHP Question

Building failing at Travis-CI due to composer command call

I am trying to build my PHP project at Travis-CI but I'm getting an error when he tries to execute a composer command. The build log of my project at Travis-CI:

Using worker: worker-linux-docker-c22a70ed.prod.travis-ci.org:travis-linux-3

Build system information
Build language: ruby
Build image provisioning date and time
Thu Feb 5 15:09:33 UTC 2015
Operating System Details
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
Linux Version
Cookbooks Version
a68419e https://github.com/travis-ci/travis-cookbooks/tree/a68419e
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

LLVM version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Pre-installed Ruby versions
Pre-installed Node.js versions
Pre-installed Go versions
Redis version
redis-server 2.8.19
riak version
MongoDB version
MongoDB 2.4.12
CouchDB version
couchdb 1.6.1
Neo4j version
RabbitMQ Version
ElasticSearch version
Installed Sphinx versions
Default Sphinx version
Installed Firefox version
firefox 31.0esr
PhantomJS version
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_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.13.0-29-generic", arch: "amd64", family: "unix"

$ git clone --depth=50 --branch=master git://github.com/rgiaviti/laravel-correios-track.git rgiaviti/laravel-correios-track
Cloning into 'rgiaviti/laravel-correios-track'...
remote: Counting objects: 69, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 69 (delta 14), reused 0 (delta 0), pack-reused 20
Receiving objects: 100% (69/69), 11.17 KiB | 0 bytes/s, done.
Resolving deltas: 100% (14/14), done.
Checking connectivity... done.
$ cd rgiaviti/laravel-correios-track
$ git checkout -qf e2c8293aa5a996f5d8bbdef6788e4e2d84c15c1e

This job is running on container-based infrastructure, which does not allow use of 'sudo', setuid and setguid executables.
If you require sudo, add 'sudo: required' to your .travis.yml
See http://docs.travis-ci.com/user/workers/container-based-infrastructure/ for details.
$ rvm use default
Using /home/travis/.rvm/gems/ruby-1.9.3-p551
$ ruby --version
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]
$ rvm --version
rvm 1.26.10 (latest-minor) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ bundle --version
Bundler version 1.7.6
$ gem --version
$ composer self-update
/home/travis/build.sh: line 41: composer: command not found

The command "composer self-update" failed and exited with 127 during .

Your build has been stopped.

I think the problem is here:

$ composer self-update
/home/travis/build.sh: line 41: composer: command not found

My .travis.yml file:

language: php

- 5.4
- 5.5
- 5.6
- hhvm
- hhvm-nightly

- composer self-update
- composer install --prefer-source --no-interaction --dev

I am new to Travis-CI and what I see is that composer is not installed or not working. When I read the Travis-CI documentation for PHP projects, they say that composer are available.

From the docs:

Note that we update composer every time we update the PHP build
environment, which is every 30-60 days. Because composer has a
time-based update warning, you may see messages such as this, which
may be safely ignored:

Warning: This development build of composer is over 30 days old. It is recommended to update it by running "/home/travis/.phpenv/versions/5.6/bin/composer self-update" to get the latest version.

You can also install Composer packages into the Travis CI PHP
environment. The composer command comes pre-installed, use the

composer install

Maybe I am missing some configuration, but I can't figure what configuration is that.

Answer Source

The problem here is that your build language was set to ruby - for whatever reason. A ruby env doesn't have Composer pre-installed and your command fails.

You find the entry at the first few lines of the Travis build log.

Your composer.json and .travis.yml are allright. In other words: you requested a PHP env with Composer. But Travis didn't recognize this. It's a rather strange issue and maybe it's only temporary.

Please check the file permissions - that's my only guess.

Else you might decide to jump on IRC and ask the Travis guys or file a bug.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download