-
Notifications
You must be signed in to change notification settings - Fork 722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support settings multiple languges in one travis ci file #4090
Comments
Thanks for the issue. Can you please explain the use case and how the install steps might work? |
Use can be if you have one project that has mutple files for different programming langugages like for example having php and js then you want to be able to test both js and php not just one or the other. It could go like for example language: php, js or can go like language: php js |
Do you have an open source which is a good example of this? |
I haven't got an open source for this since it woulden work. |
@paladox Is there a repo that you would like to use this sort of behavior on, or is it just an idea? |
I have a project which uses Python flask for backend and AngularJS for frontend. I have tests for both the language files. I currently have set up npm to run JS tests. Now I would like to add Python nosetests as well. I think this should be a good example. project is at https://github.com/GluuFederation/gluu-webui |
@tecoholic I suggest using |
@BanzaiMan Thanks for the tip. I never knew you could straight away call nvm. Saw some places where people have installed nodejs from scratch. nvm was simple. |
I'm working on a project that depends on both Needless to say this looks like a messy matrix, and any suggestions or examples would be welcomed. |
I want to upstream my go version of the subunit library ( https://github.com/elopio/go-subunit ). I have in that project a travis file that runs the go tests. |
The FlatBuffers project (https://github.com/google/flatbuffers) uses many languages. The compiler is built in C++, and we have runtime code for the following languages: C++, C#, Go, Java, Javascript, and Python. Has there been any progress on this issue? |
We are also having the same issue with https://github.com/mapbox/mapbox-gl-native. Our project is fundamentally implemented in C++, but we are building and testing on a variety of platforms, including Android, plain Linux, Node.js bindings etc. We've selected "Android" as the base image, since it contains the Android NDK; but selecting that affects other parts of the system, like caching (only one global cache, which doesn't help us much since our build artifacts are vastly varying). |
👍 GlobaLeaks is an other example of this. GlobaLeaks is a framework composed by a python web backend that servers a javascript client The language used on travis for what relates to the testing is should so be python(2.7) and node_js (4.2); thos are the two main requirements imposed by the testing frameworks. The missing possibility for specifying multiple languages and their respective version is causing that we need to use python(2.7) in the language directive and then install node.js with sudo that makes not possible to use the new container. |
+1 So we need ability to specify both Playing around this and trying to solve problem hadn't succeeded... |
Same here, building and testing Ice requires C++, Python, Java, Ruby, PHP, and Node.js. Would be great if we could specify various versions of each language. I tried to do this manually using the various version managers (nvm, phpenv, etc.) but they're not all available at the same time. |
Tinkered a bit and worked out the below solution using the Travis Ubuntu 14.04 Trusty beta and This pretty much let you setup a VM where you can install anything; I have sudo: required
dist: trusty
language: node_js
node_js:
- "5.5"
- "4.2"
python:
- "3.4"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
# nodejs >v4 compiler requirements
- g++-4.8
- openjdk-7-jdk
before_install:
- sudo apt-get -y install python3-pip python-dev
- sudo pip3 install -U setuptools
- sudo pip3 install -U virtualenvwrapper
- python3 -V
- pip3 -V
# install Neo4j locally:
- wget dist.neo4j.org/neo4j-community-2.3.2-unix.tar.gz
- tar -xzf neo4j-community-2.3.2-unix.tar.gz
- sed -i.bak s/dbms.security.auth_enabled=true/dbms.security.auth_enabled=false/g neo4j-community-2.3.2/conf/neo4j-server.properties
- neo4j-community-2.3.2/bin/neo4j start
install:
- npm install
- sudo pip3 install -r requirements.txt
env:
global:
- CXX=g++-4.8
- NODE_ENV=development |
The directive
On the new infrastructure running Trusty builds, the boot time issue is much less of a concern, so we have one build image that has everything (the "mega" image mentioned in https://docs.travis-ci.com/user/trusty-ci-environment#Image-differences-from-Precise). If you need multiple language runtimes, Trusty is currently the best bet. This may change in the future, but I don't know when that future comes. |
@BanzaiMan Could I use docker containers to have multiple languages and avoid some of the boot time issue? |
This feature is starting to look like something we'd use at https://github.com/openworm/tracker-commons where we intend to support multiple languages (e.g. Scala, Julia, octave, python) for a common access API template to a standard JSON format for worm movement data. Meanwhile, I'll be taking a look at the Trusty option as a workaround. |
Same issue here. Python backend and js frontend. Would like to run javascript tests. |
The Blue Alliance uses a Python backend and is moving to a JS-powered client. It would be great to be able to easily run both sets of unit tests on Travis. |
Can someone please fix the spelling mistake in the issue title... ;-) ping @paladox |
It is unlikely that this is going to change in the near future. We will update this ticket when we have news to share. |
Hey everyone! As of right now, we don't have any specific plans to implement this. For those that need this functionality there are some examples of workarounds (thanks everyone!) and the [generic image] (https://docs.travis-ci.com/user/languages/minimal-and-generic/#generic) provides a good springboard for several languages. If we do end up doing something like this we'll be sharing such news and I'll see if I can find out if there's anything in the roadmap with similar functionality. Thanks everyone for your feedback! |
Hi please support setting multiple languges in one travis ci file please.
for example like
language: php, ruby, java, js
or
language: php ruby java js
The text was updated successfully, but these errors were encountered: