Мы думаем, что задания приходят из osx_image: xcode10.1 в .travis.yml
Это было неверно. Мы удалили глобальный ключ osx_image
, но проблема все еще решена.
Но мы до сих пор не совсем понимаем, откуда берутся задания, кроме того, что это был побочный продукт расширения matrix:
, которое мы пыталисьчтобы избежать.
Как мы можем исправить задания с ошибками "не заданы переменные среды"?
Исправлено было избавление от расширения matrix:
, но это не легкодоступная информация. Это, конечно, не было указано в документации. Или мы не смогли найти его в документации.
Чтобы избежать расширения matrix:
, избавьтесь от всех глобальных ключей для env
, arch
, os
, compiler
. Идея в том, что глобальные ключи запускают расширение матрицы. Расширение матрицы не зависит от наличия клавиш matrix:
или jobs:
.
Наш полученный файл yml выглядит следующим образом . Мы должны вручную построить кросс-произведение {env} x {arch} x {os} x {compiler}
(что мы уже делали).
language: cpp
dist: xenial
sudo: required
git:
depth: 5
jobs:
include:
- os: linux
name: Linux with GCC (all)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=all
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (native)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=native
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (no-asm)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=no-asm
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (debug)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=debug
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (asan)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=asan
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (ubsan)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=ubsan
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (pem)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=pem
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (autotools)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=autotools
- BUILD_JOBS=2
- os: linux
name: Linux with GCC (cmake)
arch: amd64
compiler: gcc
env:
- BUILD_OS=linux
- BUILD_MODE=cmake
- BUILD_JOBS=2
...
jobs:
- это псевдоним для matrix:
, поэтому вместо matrix.include
используется jobs.include
не имеет ожидаемого эффекта. Также см. Схему Travis YML .