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

集成GitLab CI管道和JFrog平台,可以使您的软件发布快速和安全成为现实。这篇博文描述了如何集成GitLab CI与Artifactory而且x光,以确保部署的任何工件都得到适当的管理,并免受任何不必要的OSS安全和许可遵从性风险的影响。
管理和扫描已发布的工件
只要在代码中引入任何更改,GitLab CI就会触发CI管道,从而帮助您自动化交付过程。然而,跟踪这个交付过程并确保它得到良好的记录和管理是另一回事。为了克服这个问题,Artifactory无缝地使您能够跟踪您的工件部署,并收集所有相关的变量,以便能够正确地管理您的部署。通过JFrog CLI, giitlab 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 $ARTIFACTORY_SERVER_ID——url=$ARTIFACTORY_URL——user=$ARTIFACTORY_USER——password=$ARTIFACTORY_PASS - jf config show # configure gradle, set upload and Download repos - jf gradlec——repo-resolve $ articatory_repo——repo-deploy $ articatory_repo gitlab-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包$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 >管道然后点击“运行管道”。要查看管道执行日志,请导航到:CI / CD >工作并单击相关的作业执行。

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

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

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