Jfrog CLI Maven 快照和发布部署

问题描述 投票:0回答:1

在我们的项目中,我们使用 maven 作为构建工具,使用 GitHub actions 作为构建代理,使用 Jfrog 作为部署 jar 文件的工件。我们有快照版本和发布版本(使用 pom 中版本标记中的“SNAPSHOT”进行标识)。目前,我们使用maven部署插件将构建的工件部署到Jfrog,并且存储库的详细信息在maven设置中使用maven配置文件中的以下标签进行配置:

artifactory repo configuration in maven settings file

运行 Maven 部署时,部署插件会构建项目并根据工件的版本(是否有“SNAPSHOT”)将其部署到工件和相应的存储库。在浏览了一些文档和博客后,如下所示:

https://jfrog.com/blog/dont-let-maven-deploy-plugin-trip-you

我们认为最好使用 jfrog artifactory 插件来实现这一点,这样我们就可以捕获构建信息和其他信息。由于我们使用的是 GitHub actions,我找不到用于 GitHub actions 的神器插件(找到了一个用于 Jenkins 和其他一些但不是用于 GitHub actions 的插件),我也不想将该插件添加到我的 pom 文件中并在那里配置存储库详细信息,因为它将在 pom.xml 中绑定存储库详细信息。另外,我想将部署逻辑与 pom 分离并将其移动到 CI 服务器,以便开发人员可以隐藏这些详细信息(maven 部署插件在某种程度上执行此操作,因为所有工件配置都发生在 Maven 设置文件中)

artifactory插件可以在pom中配置如下:

artifactory plugin configuration from Jfrog blog

参考自https://www.jfrog.com/confluence/display/JFROG/Maven+Artifactory+Plugin

然后我发现我们可以在 GitHub actions 中使用 Jfrog CLI 来部署工件,但我找不到如何配置 CLI 以使用快照和发布存储库,这样我就不必手动决定将它们上传到哪里使用存储库名称。有人可以指导我如何在 CLI 中实现这一目标吗?

我参考了 GitHub 和 jfrog 的以下链接:

maven github-actions artifactory jfrog-cli
1个回答
2
投票

所以,我终于设法弄清楚如何使用 github actions 来完成此操作。

在我的 actions.yml 文件中,我添加了一个新步骤,该步骤利用 github actions 市场中的“jfrog/setup-jfrog-cli”操作,其链接如下。它向您展示了如何配置操作。

https://github.com/marketplace/actions/setup-jfrog-cli

我在此操作中配置了artifactory 平台url 以及用户名和访问令牌。

创建了一个新操作,它将使用“jf maven”目标构建我的代码。在使用 jfrog CLI 使用 maven 之前,需要使用“jf mvn-config”命令对其进行配置,您可以在此处指定要使用的版本和快照存储库。以下是我用于相同目的的代码片段。请注意,这些是 github actions pipeline 作业中的步骤,而不是完整的构建 yml 文件'

- name: Setup jfrog
        uses: jfrog/setup-jfrog-cli@v3
        with:
          version: latest
        env:
          JF_URL: "https://artifactory.com"  #be mindful not to add the path /artifactory here as it will cause authentication issue
          JF_USER: ${{ secrets.ARTIFACT_USER_ID }}
          JF_ACCESS_TOKEN: ${{ secrets.ARTIFACT_TOKEN }} # You have an option of giving password as well

- name: maven build
        run: |
              jf mvn-config --repo-deploy-releases=${ARTIFACTORY_RELEASE} --repo-deploy-snapshots=${ARTIFACTORY_SNAPSHOT} # mention the names of your release and snapshot repos within the jfrog artifacory
              jf mvn deploy
              jf rt bp # (optional, deploy build info, use --dry-run flag to see the build info in console without committing it)

还有许多其他可选参数可用于丰富和配置构建,可以在以下链接中找到

https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-RunningMavenBuilds https://www.jfrog.com/confluence/display/JFROG/QuickStart+Guide%3A+Maven+and+Gradle https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-BuildIntegration

© www.soinside.com 2019 - 2024. All rights reserved.