6

我正在尝试使用 GitHub、Travis CI 和 AWS ECS 创建 CI 管道。当我将提交推送到 master 分支时,我在 travis CI 中遇到错误:'Could not parse .travis.yml'。我想不通,问题出在哪里。Travis 没有提供有关错误的更多信息。

有一个代码,我正在使用:

.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

我不知道问题出在哪里。你可以帮帮我吗?

4

3 回答 3

9

使用yamllint,您可以安装它,或者只是复制并粘贴到基于Web 的版本

通过问题中的示例,我得到:

(<unknown>):在第 7 行第 1 列扫描下一个标记时发现无法启动任何标记的字符

第 7 行有一个选项卡。请参阅“ YAML 文件不能包含选项卡作为缩进”。


文件的另一个在线资源.travis.ymlhttp://lint.travis-ci.org/,除了这个工具不选择制表符。它通常是一个很好的资源。

于 2019-02-21T21:03:57.450 回答
0

我有一个类似的问题。就我而言,我使用 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

看看效果如何。

于 2018-06-22T02:55:09.163 回答
0

travis cli 工具有一个 linter

gem install travis

但是,它仅针对示例给出警告。此外,它目前不适用于所有功能,例如阶段。

$ travis lint
Warnings for .travis.yml:
[x] unexpected key mono, dropping
[x] unexpected key dotnet, dropping
于 2019-06-15T13:16:04.867 回答