Файл Travis-ci для мультимодульного многоязычного проекта - PullRequest
0 голосов
/ 23 мая 2018

Есть ли способ настроить travis-ci для создания нескольких проектов на разных языках?

Допустим, мой репо

AwesomeRepoThatDoestOneThingInDifferentLanguages
-cpp
-csharp
-python2
-python3
-java
-go
-ruby
-lua
-objectivec

Теперь я хочу применить к этому ci.Если я просто добавлю файл .travis.yml в мой проект python2, travis-ci пожалуется, что не найден .travis.yml, так как он ищет его в корне репо.Итак, есть ли способ, где я могу поместить .travis.yml вверху, который затем вызывает travis.yml в каждом из моих подмодулей?

1 Ответ

0 голосов
/ 31 августа 2018

Я смог найти способ сделать это.Это еще не завершено, поскольку некоторые задания все еще не выполняются, и мне нужно исправить их по отдельности, но в целом идея работает просто отлично.Я использую матричный способ Трэвиса Си.Вот моя .travis.yml мысль, что это может помочь, если у кого-то есть такой же вопрос или сценарий.

---
matrix:
  include:
    -
      before_script:
        - "cd java"
      jdk: oraclejdk8
      language: java
      script: "mvn clean package"
    -
      before_script:
        - "cd python2"
        - "pip install --upgrade setuptools"
        - "pip install nose"
        - "pip freeze > requirements.txt"
        - "pip install -r requirements.txt"
        - "cd tests"
      cache: pip
      language: python
      python: 2.7
      script: nosetests
    -
      before_script:
        - "cd python3"
        - "pip install --upgrade setuptools"
        - "pip install nose"
        - "pip freeze > requirements.txt"
        - "pip install -r requirements.txt"
        - "cd tests"
      language: python
      python: 3.6
      script: nosetests
    -
      before_script:
        - "cd objectivec"
      language: objective-c
      os: osx
      osx_image: xcode10
      script:
        - "xcodebuild clean test -project DiffMatchPatch.xcodeproj -scheme DiffMatchPatch -destination 'platform=OS X,arch=x86_64'"

    -
      before_script:
        - "sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa"
        - "sudo apt-get update -qq"
        - "sudo apt-get install -qq qt5-qmake qtbase5-dev qtdeclarative5-dev libqt5webkit5-dev libsqlite3-dev"
      language: cpp
      script:
        - "qmake -qt=qt5 -v"
        - "qmake -qt=qt5"
        - make
    -
      before_script:
        - "cd csharp"
      dotnet: "1.1.5"
      env: DOTNETCORE=1
      language: csharp
      mono: latestscript
      script:
        - "dotnet restore"
      solution: solution-name.sln
    -
      before_script:
        - "cd dart"
      dart: "1.15.0"
      dart_task:
        -
          test: "--exclude-tags no-xvfb"
        -
          test: "--tags no-xvfb"
      language: dart
      with_content_shell: true
    -
      after_success:
        - coveralls -b .. -r .. -i ./lua --dump c.report.json
        - luacov-coveralls -j c.report.json -v
      before_install:
        - "cd lua"
        - "pip install --upgrade pip"
        - "pip install --upgrade setuptools"
        - "pip freeze > requirements.txt"
        - "pip install -r requirements.txt"
        - "sudo wget https://luarocks.org/releases/luarocks-2.4.4.tar.gz"
        - "sudo tar zxpf luarocks-2.4.4.tar.gz"
        - "cd luarocks-2.4.4"
        - "./configure --prefix=/usr/local/openresty/luajit \
           --with-lua=/usr/local/openresty/luajit \
           --lua-suffix=jit-2.1.0-beta2 \
           --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1; sudo make bootstrap"
        - "sudo luarocks install luasocket"
        - "pip install cpp-coveralls"
        - "luarocks install Lua-cURL  --server=https://luarocks.org/dev"
        - "luarocks install luacov-coveralls --server=https://luarocks.org/dev"
        - "luarocks install lunitx"
        - "luarocks install luabitop"
      language: python
      script:
        - "lunit.sh tests/diff_match_patch_test.lua"
        - "lunit.sh tests/speedtest.lua"
notifications:
  email:
    - 
sudo: required
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...