Не удалось разобрать.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
И посмотри, как это работает.