【问题标题】:Upload Build using CURL使用 CURL 上传构建
【发布时间】:2018-10-01 10:29:14
【问题描述】:

我一直在尝试找到一种使用 CURL 将构建上传到工件的方法。我知道我们可以轻松地发送包,但我找不到发送将在此处登陆的构建的信息:

Artifactory Build Browser

谢谢!

【问题讨论】:

  • 嗨佩德罗。如果您的意思是如何上传您使用conan_build_info 命令构建的build-info,则没有柯南命令可以上传它,但您可以使用JFrog-cli 上传它。 Artifactory 文档中可能有说明如何将通用构建信息上传到 Artifactory,例如:jfrog.com/knowledge-base/…。祝你好运!

标签: c++ curl artifactory conan


【解决方案1】:

一般来说,构建分两步发布:

  1. 属于构建的工件已部署。要将这些工件绑定到构建,它们必须具有两个属性:build.name 设置为构建名称,build.number 设置为构建编号。如果这些属性设置不正确,Artifactory 将不会知道它们属于您的构建。
  2. 构建信息文件已上传。这不是工件,它使用特殊的 REST API (this one)。构建信息文件本身是一个描述构建的 JSON 文件,包含构建名称和编号、属于该构建的所有文件的校验和以及许多其他(大部分是可选的)信息。这通常是由构建工具生成的,但是上面的 REST API 链接有一个示例文件,如果您真的需要,可以将其用作从头开始制作的参考。上传构建信息文件的示例:

    curl -XPUT http://localhost:8081/artifactory/api/build -H "Content-Type: application/json" -T build.json
    

在您的具体情况下,您似乎在使用柯南。您可以查看this,其中记录了如何生成和上传构建信息文件。步骤:

  1. CONAN_TRACE_FILE 环境变量设置为文件路径。这会将您的构建信息记录到可以转换为构建信息文件的跟踪文件中。
  2. 在你的柯南家中,创建一个文件artifacts.properties。该文件告诉柯南在部署工件时添加特定属性(包括部署构建所需的build.namebuild.number)。一个例子artifacts.properties文件:

    artifact_property_build.name=MyBuild
    artifact_property_build.number=23
    artifact_property_build.timestamp=1487676992
    
  3. 运行所有构建步骤,包括部署工件。每一步都会记录到你在CONAN_TRACE_FILE中设置的文件。

  4. 运行conan_build_info 命令并将路径传递给CONAN_TRACE_FILE。这将生成一个适当的构建信息文件。

    conan_build_info /tmp/traces.log --output /tmp/build_info.json
    
  5. 现在可以使用 curl 将新生成的构建信息文件上传到 Artifactory,如上所述。


您还可以使用 JFrog CLI 发布构建(文档 here

【讨论】:

  • 非常感谢您的回答!我使用柯南来托管依赖项,然后在 Bamboo 实例中使用 cmake 运行构建。由于我们没有 Artifactory 的 Bamboo 插件,我们想以“通用”方式将构建工件从 Bamboo 发送到 Artifactory。所以,这个 build.json 将引用我需要的所有构建元数据,但它会发送其中引用的文件(构建输出)吗?我也想在工件中托管构建结果。
  • 在第 3 步中,“运行所有构建步骤,包括部署工件。”我链接的文档有一个使用conan upload 的示例。我很确定这样做是导致工件首先正确显示在构建信息文件中的原因。
猜你喜欢
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-15
  • 2013-12-16
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多