Не удалось разобрать.travis.yml

Я пытаюсь создать конвейер 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

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

1 ответ

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

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

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

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

Инструмент travis cli имеет линтер

gem install travis

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

$ travis lint
Warnings for .travis.yml:
[x] unexpected key mono, dropping
[x] unexpected key dotnet, dropping

У меня была похожая проблема. В моем случае я использовал 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

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

Другие вопросы по тегам