Многопоточная команда сценария развертывания Travis - PullRequest
0 голосов
/ 14 октября 2019

У меня следующий сценарий развертывания в файле Travis и проблема с многострочной командой. Я перепробовал много комбинаций и не смог найти правильного решения. Если я извлекаю его в файл и вызываю его из атрибута скрипта, он работает правильно, но наша цель - поместить все команды в атрибут скрипта как многострочную команду.

deploy:
  - provider: script
    skip_cleanup: true
    script: mvn deploy -B -DskipTests -Dbuild.number="$TRAVIS_BUILD_NUMBER"
    on:
      tags: false
      branch: dev

  - provider: script
    skip_cleanup: true
    script:
      pip install something &&
      another-command &&
      yet-another-command &&
      docker push "image-name"
    on:
      tags: false
      all_branches: true

Вот журналы ошибок:

sh: 1: Syntax error: "&&" unexpected

Если кто-то знает, как определять многострочные команды, я буду признателен. Заранее спасибо.

1 Ответ

0 голосов
/ 15 октября 2019

Я бы попробовал один из следующих вариантов:

Вариант 1: Создайте сценарий deploy.sh и вызовите его из .travis.yml. Мне нравится этот вариант, поскольку он облегчит жизнь - поскольку вы можете протестировать и запустить его отдельно и избежать этой проблемы, с которой вы столкнулись.

Вариант 2: Если вы настаиваете наимея команды только в .travis.yml - вы можете попробовать одно из следующих изменений синтаксиса:

a: Попробуйте либо |, либо > в определении script: (для обозначения многострочного текста):

script: >
  pip install something &&
  another-command &&
  yet-another-command &&
  docker push "image-name"

b: попробуйте предоставить script в виде массива (при условии, что Travis также поддерживает этот синтаксис - как это поддерживается во многих других их опциях):

script: 
  - pip install something
  - another-command
  - yet-another-command
  - docker push "image-name"
...