2014-12-02 9 views
2

Я настраиваю Travis-CI образует мои C++ - проект, и хочу иметь три различные рабочие мест в сборку:travis-ci: matrix.exclude игнорируется?

  • Linux (родной = 64bit)
  • OSX/64bit (родные)
  • OSX/32bit

для достижения этой цели, я настроить Трэвис построить на linux и osx, и создана Evironment переменной ARCH, который устанавливается либо конкретной архитектуры (например i386) или пустой (для родной сборки)

вот мой .travis.yml:

language: cpp 
env: 
    matrix: 
    - ARCH= 
    - ARCH=i386 
    global: 
    - secure: ... 
os: 
    - linux 
    - osx 
matrix: 
    exclude: 
    - os: linux 
before_install: 
- ./travis-ci/install-dependencies.sh 
script: 
- ./travis-ci/build.sh 

в script - и before_install -scripts настроены в честь ARCH envvar.

теперь по неизвестным мне причинам, когда я нажимаю на GitHub, сборка-матрица включает в себя:

  • OS:linux, env:ARCH=
  • OS:linux, env:ARCH=i386

и в самом деле, я получаю два рабочих места для Linux. поэтому кажется, что моя инструкция exclude игнорируется.

любые подсказки чем я могу заняться до неlinux/ARCH=i386?

ответ

1

Похоже, проблема в том, что у моего конкретного проекта не было OSX поддержка включена (в настоящее время это нужно делать вручную). Таким образом, ось матрицы не существовала.

После того, как были установлены сборки osx (и поэтому ось os была установлена ​​должным образом), инструкция exclude начала работать должным образом.

Смежные вопросы