একাধিক ভাষার সাথে ট্র্যাভিস সিআই কীভাবে সেট আপ করবেন


99

আমার প্রকল্পে নোডেজ এবং জাভা উভয়ই ব্যবহৃত হয়

আমি জাভা ইনস্টল করে নোড_জেএস বিল্ড দিয়ে শুরু করার চেষ্টা করেছি (যেহেতু এটি এনপিএম মডিউল)

তবে জাভা ইনস্টল করার স্ক্রিপ্টগুলি ব্যর্থ হয়েছে, এবং আমি মনে করি না যে জাভা দিয়ে একটি বিল্ড ইতিমধ্যে বিদ্যমান থাকলে এটি ইনস্টল করার দরকার আছে।

আমি কি জাভা বিল্ড দিয়ে শুরু করব নোড ইনস্টল করব?

আমি এই চেষ্টা করছি

language: java
  - oraclejdk8
language: node_js
node_js:
  - "0.10"

যা মনে হয় এটি প্রথম 2 টি লাইন উপেক্ষা করে একটি নোড_জেস বিল্ড তৈরি করে যা জাভা 7 রয়েছে এবং আমার প্রকল্পটি জাভা 8 ব্যবহার করে

অজগরটির জন্য আমি এই উত্তরটি চেষ্টা করেছিলাম

ব্যবহার

language: node_js
node_js:
  - "0.10"
java: oraclejdk8

কিন্তু এটি কার্যকর হয়নি

আমি কীভাবে জাভা 8 যুক্ত করতে পারি?


সম্পর্কিত: stackoverflow.com/questions/18456611/...
dmcc

উত্তর:


116

matrix:includeবৈশিষ্ট্যটি ব্যবহার করে একটি .travis.yml ফাইলটিতে বেশ কয়েকটি ভাষা চালানো এখন সম্ভব বলে মনে হচ্ছে । উদাহরণ হিসাবে, আমার গিথুব রেপোটি নিম্নরূপে সাজানো হয়েছে:

project/ - top-level github directory
project/backend - Python backend
project/backend/tests - Python tests
project/android/AppName - Android app
project/ios/AppName - iOS app

এখানে পাই। ট্র্যাভিস.আইএমএল, যা পাইথন, জাভা এবং উদ্দেশ্য-সিতে পরীক্ষা চালায়:

matrix:
  include:
    - language: python
      python: 2.7
      before_script:
        - cd backend/tests
      script:
        - python -m unittest discover

    - language: android
      dist: trusty
      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বিভাগটি দিয়ে যাচ্ছি ।

যখন এটি সমস্ত সেট আপ হয়ে যায়, তারপরে প্রতিটি বিল্ডে আপনি এমন কিছু পান। বুম।

এখানে চিত্র বর্ণনা লিখুন


4
এটি আশাব্যঞ্জক লাগছিল, তবে এটি ট্র্যাভিস
meisteg

4
আমি লিন্ট সরঞ্জামটির সাথে কথা বলতে পারি না, তবে আমি বলতে পারি যে আমি বেশ কয়েক মাস ধরে এই জাতীয় একটি সেটআপ ব্যবহার করছি এবং এটি পুরোপুরি কার্যকর হয়েছে।
কোডিয়াক

আমি পাইথন এবং নোডেজগুলির জন্য এই সেটআপটি ব্যবহার করেছি। এর পরিবর্তে ব্যবহার করার python: 3.5সংস্করণ সেট করতে, আমি ব্যবহার python:\n - "3.5"(নোটিশ এই দুটি পৃথক লাইন আছে) হিসেবে Travis-CI এর অফিসিয়াল পেজে সুপারিশ করেন। বিল্ডটি ব্যর্থ হয়েছে কারণ ট্র্যাভিস পুনরুদ্ধার করার চেষ্টা করে python-["3.5"]( [এবং লক্ষ্য করুন ")। আপনি কি জানেন যে কেন হতে পারে? ওয়ান-লাইনার কাজ করে।
ক্রেজিফ্রোগ

4
এখানে কিছু অদ্ভুত বিষয় রয়েছে: ওপি একই বিল্ডে একাধিক ভাষা স্থাপনের বিষয়ে জিজ্ঞাসা করেছিল, প্রতিটি বিল্ডের জন্য একাধিক ভাষা স্থাপনের বিষয়ে নয়।
ফুজিআমি

4
@meisteg যখন অফিসিয়াল ট্র্যাভিস লিন্ট সরঞ্জামটি ব্যবহার করে এটি এটি সূক্ষ্মভাবে বৈধ করে। $ travis lint ~/Desktop/test.yml Hooray, /Users/nathanf/Desktop/test.yml looks valid :)
নাথান এফ।

23

ট্র্যাভিস জাভা বিল্ড এনভায়রনমেন্টে আপনি নোড.জেএস রানটাইম nvmপরিচালনা করতে ব্যবহার করতে পারেন :

.travis.yml

language: java

jdk:
  - oraclejdk8

env:
  - NODE_VERSION="0.12"

before_install:
  - nvm install $NODE_VERSION

যদি আপনার নোড সংস্করণটি খুব সাম্প্রতিক হয় তবে আপনাকেও আপডেট করতে হতে পারে 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


এটা আমার প্রিয় সমাধান।
নাতিম


13

আমার প্রকল্পের একটি পাইথন / জ্যাঙ্গো ব্যাকএন্ড এবং নীচের মতো জেএস / ভ্যু ফ্রন্ট্যান্ড রয়েছে:

├── backend
│   ├── api
│   │   ├── tests                               
├── daemon                                                          
│   ├── frontend
│   │   ├── test

ম্যাট্রিক্সের চাকরিতে প্রতিটি পরীক্ষার স্যুট চালানোর ধারণাটি , একটি পাইথন / জ্যাঙ্গো পরীক্ষার জন্য এবং অন্যটি জেএস পরীক্ষার জন্য:

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

আরো দেখুন


10

আপনি একাধিক ভাষা যুক্ত করতে পারবেন না, যা আপনি যে আচরণটি দেখছেন তার ব্যাখ্যা দেয় এবং node_jsসেটিংসটি কেবল নোডের ভাষা প্রকল্পে স্বীকৃত হবে। আপনি যা করতে পারেন তা nvmট্র্যাভিসিসিআই-তে অন্তর্ভুক্তিকে কাজে লাগানো। উদাহরণস্বরূপ, নোডের সর্বশেষ v0.10.x প্রকাশটি ডাউনলোড করতে - nvm install 0.10 - nvm use 0.10 আপনি আপনার before_installবিভাগে অন্তর্ভুক্ত করতে পারেন ।


4
তবে আমি নিজেই যে কনফিগারেশন ফাইলটি দিয়েছি তা নিজেই পরিচালনা করতে পেরেছি
আমর ড্রজ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.