Не удалось разобрать .travis.yml - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь создать конвейер CI с GitHub, Travis CI и AWS ECS.Когда я выполняю push commit для master ветки, я получаю ошибку в travis CI: «Не удалось разобрать .travis.yml».Я не могу понять, где проблема.Трэвис не предоставляет больше информации об ошибке.

Существует код, который я использую:

.travis.yml

language: csharp
dist: trusty
sudo: required
mono: none
dotnet: 2.0.0
branches:
    only:
        - master
before_script:
    - chmod -R a+x scripts
script:
    - ./scripts/dotnet-build.sh
    - ./scripts/dotnet-publish.sh
    - ./scripts/docker-publish-travis.sh

dotnet-build.sh

 dotnet restore 
 dotnet build

dotnet-publish.sh

dotnet publish ./BookMeMobi2 -c Release -o ./bin/Docker

dotnet-publish-travis.sh

pip install --user awscli
eval $(aws ecr get-login --no-include-email --region eu-central-1)
docker build -t bookmemobi2 .
docker ps
docker tag bookmemobi2:latest 601510060817.dkr.ecr.eu-central-1.amazonaws.com/bookmemobi2:latest
docker push 601510060817.dkr.ecr.eu-central-1.amazonaws.com/bookmemobi2:latest

Я не знаю, в чем проблема.Не могли бы вы помочь мне?

Ответы [ 3 ]

0 голосов
/ 22 февраля 2019

Используйте yamllint , который вы можете установить, или просто скопируйте и вставьте веб-версию .

С примером в вопросе я получаю:

(): обнаружен символ, который не может запустить какой-либо токен при сканировании следующего токена в столбце 7 строки 1

В строке 7 есть вкладка. Файл YAML не может содержать вкладки с отступом".

0 голосов
/ 15 июня 2019

У инструмента travis cli есть линтер

gem install travis

Однако он выдает только предупреждения для примера.Кроме того, в настоящее время он работает не со всеми функциями, например, с этапами.

$ travis lint
Warnings for .travis.yml:
[x] unexpected key mono, dropping
[x] unexpected key dotnet, dropping
0 голосов
/ 22 июня 2018

У меня была похожая проблема.В моем случае я использовал Python для запуска нескольких скриптов.Я поместил их один за другим с дефисом в начале, точно так же, как вы.Поэтому я искал, чтобы выяснить, что я могу поместить их всех в одну строку с «&» между каждым сценарием, и я избавился от дефиса.

Что у меня было:

 script: 
 - python  test_Math_DC.py
 - python test_Math_Moy.py
 - python test_Math_Var.py
 - python test_Math_SQRT.py

Изменено на:

script: python test_Math_DC.py & python test_Math_Moy.py & python test_Math_Var.py & python test_Math_SQRT.py

В вашем случае вы можете попробовать:

script: ./scripts/dotnet-build.sh & ./scripts/dotnet-publish.sh & ./scripts/docker-publish-travis.sh

или что-то вроде этого:

script: sh ./scripts/dotnet-build.sh & sh ./scripts/dotnet-publish.sh & sh ./scripts/docker-publish-travis.sh

И посмотрите, как это работает.

...