我的项目使用nodejs和java
我尝试使用node_js构建然后安装java(因为这是一个npm模块)
但是安装java的脚本失败了,而且我认为当有一个已经存在的java版本时,需要安装它。
我应该从java构建开始然后安装节点吗?
我正在尝试这个
language: java
- oraclejdk8
language: node_js
node_js:
- "0.10"
忽略它看起来的前两行并构建一个具有java 7的node_js构建 我的项目使用java 8
我为python
尝试了这个answer使用
language: node_js
node_js:
- "0.10"
java: oraclejdk8
但那不起作用
如何添加java 8?
答案 0 :(得分:95)
现在似乎可以使用matrix:include
功能在一个.travis.yml文件中运行多种语言。举个例子,我的Github回购安排如下:
project/ - top-level github directory
project/backend - Python backend
project/backend/tests - Python tests
project/android/AppName - Android app
project/ios/AppName - iOS app
这是.travis.yml,它在Python,Java和Objective-C中运行测试:
matrix:
include:
- language: python
python: 2.7
before_script:
- cd backend/tests
script:
- python -m unittest discover
- language: android
jdk: oraclejdk8
android:
components:
- tools
- android-25
- build-tools-25.0.3
before_script:
- cd android/AppName
script:
- ./gradlew build connectedCheck
- language: objective-c
os: osx
osx_image: xcode8.3
before_script:
- cd ios/AppName
script:
- xcodebuild -workspace AppName.xcworkspace -scheme AppName
-destination 'platform=iOS Simulator,name=iPhone 7,OS=10.3' build test
notifications:
email:
- yourname@gmail.com
通过将矩阵中的每个条目视为顶级配置,您似乎可以使用此功能构建任意数量的不同配置。当然,如果您要设置适用于所有语言的任何参数,则可以在顶层执行此操作,就像我使用notifications:email
部分一样。
当它全部设置好后,在每次构建时,你都会得到这样的东西。吊杆。
答案 1 :(得分:15)
在Travis Java构建环境中,您可以使用nvm
来管理Node.js运行时:
<强> .travis.yml 强>
language: java
jdk:
- oraclejdk8
env:
- NODE_VERSION="0.12"
before_install:
- nvm install $NODE_VERSION
如果您的Node版本是最新版本,则可能还需要更新nvm
。
要更新nvm
,请在.travis.yml
:
before_install:
- wget https://raw.githubusercontent.com/creationix/nvm/v0.31.0/nvm.sh -O ~/.nvm/nvm.sh
- source ~/.nvm/nvm.sh
- nvm install 5 # for Node v5
- node --version
以上示例显示了如何首先更新为nvm v0.31
,然后获取Node v5
。
答案 2 :(得分:9)
我使用了.yml
:
language: java
jdk:
- oraclejdk8
node_js: "0.10"
install: "npm install"
script: "npm test"
答案 3 :(得分:9)
我的项目有一个Python / Django后端和一个JS / Vue前端,如下所示:
├── backend
│ ├── api
│ │ ├── tests
├── daemon
│ ├── frontend
│ │ ├── test
想法是在matrix' job中运行每个测试套件,其中一个用于Python / Django测试,另一个用于JS测试:
matrix:
include:
- language: python
python:
- 3.4
before_install:
- cd backend/
install:
- pip install -r requirements.txt
script:
- python manage.py test
- language: node_js
node_js:
- 4.8
before_install:
- cd daemon/frontend
install:
- yarn install
script:
- yarn test
notifications:
email: false
答案 4 :(得分:8)
您无法添加多种语言,这可以解释您所看到的行为,node_js
设置只能在节点语言项目中识别。您可以做的是在TravisCI中使用合并的nvm
。
例如,您可以包括
- nvm install 0.10
- nvm use 0.10
在before_install
部分中下载节点的最新v0.10.x版本。
答案 5 :(得分:0)
jobs:
include:
- language: python
python: 3.8
script:
- python -c "print('Hi from Python!')"
- language: node_js
node_js: 12
script:
- node -e "console.log('Hi from NodeJS!')"
- language: java
jdk: openjdk8
script:
- javac -help
Here是一个生产示例。