从 Jenkins 将 Debian 部署到 Artifactory 仓库

Deploy Debian to the Artifactory repo from Jenkins

如何将 Debian 包从 Jenkins 部署到 Artifactory Debian 存储库?
我在 Jenkins Freestyle 作业中使用了一个命令:

curl -uUSER:PASS -XPUT "https://ARTIFACTORY_URL/REPO/pool/package.deb;deb.distribution=xenial;deb.component=main;deb.architecture=amd64" -T ./package.deb

但在那种情况下,不会在 Artifactory 与 Jenkins 之间创建引用。意思是,我们不能在 Jenkins 构建到 Artifact 之间 link。
接下来,我们尝试使用管道并在创建 Debian 软件包后从 Freestyle 调用它。但是同样,没有关于使用 DSL 上传 Debian 软件包的 wiki/support
而且 FileSpec 似乎不支持 Debian 软件包。

如何通过architecture/distribution/component?

有没有人有将 Debian 软件包部署到 Artifactory 的经验?听起来很简单,但我仍然遗漏了一些东西。

要将 debian 包上传到 artifactory,您可以像这样在您的管道中使用 fileSpec:

{
  "files": [
    {
      "pattern": "YOUR_ARTIFACT_PATH",
      "target": "https://ARTIFACTORY_URL/REPO/pool/",
      "props": "deb.distribution=xenial;deb.component=main;deb.architecture=amd64"
    }
  ]
}

您可以使用 jfrog-cli 轻松完成:

jfrog rt u --deb=<distribution>/<component>/<architecture> <debian-package> <debian-repo>/pool/<component>/<first-latter-of-package-name>/<package-name>/<debian-package>

例如:上传cassandra

jfrog rt u --deb=bionic/main/all cassandra_1.2.3_all.deb debian-local/pool/main/c/cassandra/cassandra_1.2.3_all.deb