sca*_*ana 13 curl yaml travis-ci
好.这慢慢让我发疯.我在Travis上为我的一个项目设置了CI.我正在运行一些JUnit测试,我想将测试结果上传到我自己的服务器,因此浏览它们要容易得多.
基本上,我想做的只是称之为:
curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
Run Code Online (Sandbox Code Playgroud)
所以这就是我想在.travis.yml文件中做的事情.
after_script:
- curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
Run Code Online (Sandbox Code Playgroud)
问题是,对于上面的行我得到一个如下错误:
$ {:"curl -H '\"Authorization"=>"Token someToken\"' -X POST http://my.server.com -F filedata=@file.txt"}
/home/travis/build.sh: line 45: Token someToken"' -X POST http://my.server.com -F filedata=@file.txt}: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经了解到,在YAML冒号代表了一对键值,我发现可以使用引号来逃避冒号.
嗯 - 这是我被卡住的地方.我尝试以多种不同的方式应用这些引用,但不知怎的,每次我再次得到相同的错误.
例如:
curl -H '"Authorization: Token someToken"'
curl -H "\"Authorization: Token someToken\""
curl -H "'Authorization: Token someToken'"
curl -H '"Authorization": Token someToken'
Run Code Online (Sandbox Code Playgroud)
我觉得自己很愚蠢,而且我知道解决这个问题可能是一件简单的事情,但我已经感觉到了"逃避引号而逃避引号"的事情,如果有人能指出我正确的方向,我会真的感激.
当我试图跟随他们解决我的问题时,我也链接到这些问题:
ban*_*man 12
在YAML中,冒号是分隔映射键和值的分隔符.
你现在拥有的:
curl -H 'Authorization: token someToken' "https://api.github.com/repos/:owner/:repo/releases/tags/$TRAVIS_TAG"
Run Code Online (Sandbox Code Playgroud)
是一个带有键curl -H 'Authorization和值的地图token someToken' "https://api.github.com/repos/:owner/:repo/releases/tags/$TRAVIS_TAG".您可以看到它如何进入构建脚本.
你想要的是一个正确引用的字符串:
after_deploy:
- "curl -H 'Authorization: token someToken' \"https://api.github.com/repos/:owner/:repo/releases/tags/$TRAVIS_TAG\""
Run Code Online (Sandbox Code Playgroud)
好的 - 通过创建简单的bash脚本,我设法解决(或破解)这个问题:
#!/bin/bash
curl -H 'Authorization: Token someToken' -X POST http://my.server.com -F filedata=@file.txt
Run Code Online (Sandbox Code Playgroud)
然后我继续调用.travis.yml文件中的脚本:
- ./upload_script.sh
Run Code Online (Sandbox Code Playgroud)
所有学分转到@набиячлэвэлиь,以便在评论中向我建议该解决方案.
任何其他 - 更好的 - 解决方案都非常受欢迎.
| 归档时间: |
|
| 查看次数: |
5808 次 |
| 最近记录: |