GitLab CI和Artifactory: On Your Mark, Get Set, Build!

集成GitLab CI管道与JFrog平台,使您的软件发布快速和安全成为现实。这篇博文描述了如何将GitLab CI与Artifactory而且x光,以确保部署的任何工件都得到适当的管理,并免受任何不必要的OSS安全和许可证遵从性风险的保护。
管理和扫描已发布的工件
GitLab CI通过在代码中引入任何更改时触发CI管道来帮助自动化交付过程。然而,跟踪这个交付过程并确保它被良好地记录和管理是另一回事。为了克服这个问题,Artifactory无缝地支持您跟踪工件部署并收集所有相关变量,以便能够正确地管理部署。通过JFrog CLI, GitLab CI获取,缓存,并发布你的依赖,创建包,并构建信息到Artifactory。最后,Xray (JFrog的应用程序安全SCA工具)可确保对部署的任何工件进行安全漏洞扫描,防止将任何不安全的二进制文件部署到生产环境中。

Artifactory的构建集成自动将每个生成的包链接到其相关的构建、依赖项、信息,并收集一组新的元数据,您可能还没有从中受益。一旦Artifactory与GitLab CI集成,您就可以存储和查看元数据信息,例如:
- 发布模块
- 构建信息
- 系统变量
- 环境变量
- 包依赖关系(SBOM)
- 使用依赖关系
- 许可证的总结
- 链接到您的问题跟踪器
- 构建之间的差异
存储在Artifactory数据库中的数据也允许您使用Artifactory查询语言.
将Artifactory集成到您的GitLab管道中
下面的示例逐步演示如何将Artifactory和Xray集成到GitLab管道中。在本例中,我们将使用JFrog CLI来执行gradle构建,但是任何包构建器都可以以同样的方式与JFrog CLI一起使用。中可以找到GitLab示例管道GitHub示例项目.
- 创建一个新的GitLab项目。
- 克隆你的代码项目到GitLab VCS,例如:弹簧等.
- 下的GitLab中配置以下变量> CI/CD >变量:
JFROG_PLATFORM_SERVER_ID:唯一的服务器ID,用于从管道代码中引用服务器配置JFROG_PLATFORM_URL: JFrog平台服务器的URLJFROG_PLATFORM_USER:访问JFrog平台的用户名JFROG_PLATFORM_PASS:用于验证用户的密码或令牌
(注意:对于机密变量,如secrets,建议使用屏蔽变量。)JFROG_PLATFORM_REPO:用于从JFrog平台上传和下载工件的虚拟存储库
- 在GitLab中创建一个新的管道,并复制以下管道yaml代码:
image: gradle:latest before_script: # Download JFrog CLI - curl - fl https://install-cli.jfrog.io | sh # configure artifactory server - jf config add $JFROG_PLATFORM_SERVER_ID——url=$JFROG_PLATFORM_URL——user=$JFROG_PLATFORM_USER——password=$JFROG_PLATFORM_PASS - jf config show # configure gradle, set upload and Download repos - jf gradlec——repo-resolve $JFROG_PLATFORM_REPO——repo-deploy $JFROG_PLATFORM_REPO gilab -ci-gradle-build:#该作业名称将被用作artifactory阶段的构建信息存储库名称:#将构建的工件上传到artifactory - jf gradle clean artifactoryPublish——build-name=$CI_JOB_NAME——build-number=$CI_JOB_ID #收集构建的环境变量- jf rt bce $CI_JOB_NAME $CI_JOB_ID #从git中收集VCS详细信息并将它们添加到构建- jf rt bag $CI_JOB_NAME $CI_JOB_ID #发布构建信息- jf rt bp $CI_JOB_NAME $CI_JOB_ID #用x射线扫描- jf bs $CI_JOB_NAME $CI_JOB_ID
运行管道
默认情况下,当变更提交到项目回购时,GitLab管道将被触发。然而,你可以手动触发管道通过转到:CI/CD >管道点击“Run pipeline”。要查看管道执行日志,请导航到:CI/CD >任务并单击相关的作业执行。

在作业执行成功完成后,导航到JFrog平台并查看已部署的工件,包括所有收集的构建信息:

要查看x射线扫描结果,请在平台的构建页面中导航到“x射线数据”页签:

就是这样!你就完成了。
注:本博客于2022年9月20日更新。

