- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个 Jenkins 管道,它使用 tox 构建和测试我的 python 包。 。如果所有单元测试都通过,它将上传到我本地的 devpi 索引。
使用devpi test <mypackage>
我可以将测试结果附加到索引上的发布文件中。但这将再次下载已经构建的包,重复 tox.ini
中定义的所有已通过的测试套件。文件,然后以 toxresult.json
的形式上传结果。 .
有没有办法直接上传toxresult.json
与发布文件一起?根据quickstart和 documentation of test command似乎没有命令行选项,upload 中也没有。命令。
当然,我可以更改 Jenkins 管道以在上传之前跳过测试,然后使用 devpi 构建、上传和测试包。如果devpi test
命令失败我可以从索引中删除该包。但我不想首先上传测试失败的包。
最佳答案
如果允许匿名用户上传测试结果(这是默认设置 IIRC),则相对容易。向上传的 dist 的 URL 发出 POST
请求,将 tox
结果作为 JSON 负载传递。示例:
$ curl -i \
-H "content-type: application/json" \
-X POST \
--data-binary "@/tmp/toxreport.json" \
http://my-server/myuser/myindex/+f/19b/d3544d03b1716/mypkg-1.0.tar.gz
成功后,您应该得到类似于以下内容的结果
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Content-Length: 143
Content-Type: application/json
Date: Wed, 08 Jan 2020 15:48:32 GMT
Server: waitress
X-Devpi-Api-Version: 2
X-Devpi-Master-Uuid: d800735d04a14c2d9bde920149cb8dbc
X-Devpi-Serial: 42
X-Devpi-Server-Version: 5.3.1
X-Devpi-Uuid: d800735d04a14c2d9bde920149cb8dbc
{
"result": "myuser/myindex/+f/19b/d3544d03b1716/mypkg-1.0.tar.gz.toxresult-20200108154832-0",
"type": "toxresultpath"
}
您可以在项目页面文件表的File
列中找到目标URL。或者查询 JSON API 并过滤结果,例如
$ devpi getjson /myuser/myindex/mypkg | jq -r '[ .result[] | .["+links"][] | .href ]'
devpi
使用基本身份验证,因此只需在 Authorization: Basic
header 中传递 Base64 编码的凭据即可。例如,再次使用 curl
:
$ curl -i \
--user myuser:mypass \
-H "content-type: application/json" \
-X POST \
--data-binary "@/tmp/toxreport.json" \
http://my-server/myuser/myindex/+f/19b/d3544d03b1716/mypkg-1.0.tar.gz
如果您需要有关测试上传身份验证的详细信息,请查看我的其他答案 here .
关于python - devpi:手动上传toxresult.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518800/
我是一名优秀的程序员,十分优秀!