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

giitlab CI和Artifactory

集成GitLab CI管道和JFrog平台,可以使您的软件发布快速和安全成为现实。这篇博文描述了如何集成GitLab CI与Artifactory而且x光,以确保部署的任何工件都得到适当的管理,并免受任何不必要的OSS安全和许可遵从性风险的影响。

管理和扫描已发布的工件

只要在代码中引入任何更改,GitLab CI就会触发CI管道,从而帮助您自动化交付过程。然而,跟踪这个交付过程并确保它得到良好的记录和管理是另一回事。为了克服这个问题,Artifactory无缝地使您能够跟踪您的工件部署,并收集所有相关的变量,以便能够正确地管理您的部署。通过JFrog CLI, giitlab CI获取、缓存并发布您的依赖项、创建的包,以及构建信息到Artifactory。最后,Xray, JFrog的应用程序安全SCA工具,确保任何部署的工件都被扫描以查找安全漏洞,防止任何不安全的二进制文件被部署到您的生产环境中。

集成GitLab和Artifactory_new

Artifactory的构建集成自动地将每个生成的包链接到其相关的构建、依赖项和信息,并收集一组新的元数据,您可能还没有从这些元数据中获益。一旦Artifactory与GitLab CI集成,您就可以存储和查看元数据信息,例如:

  • 发布模块
  • 构建信息
  • 系统变量
  • 环境变量
  • 包依赖关系(SBOM)
  • 使用依赖关系
  • 许可证的总结
  • 链接到您的问题跟踪器
  • 构建之间的差别

存储在Artifactory数据库中的数据允许您使用Artifactory查询语言

将Artifactory集成到您的GitLab管道中

下面的示例逐步演示了如何将Artifactory和Xray集成到您的GitLab管道中。在本例中,我们将使用JFrog CLI来执行gradle构建,但是任何包构建器都可以以同样的方式与JFrog CLI一起使用。可以找到GitLab示例管道GitHub示例项目

  1. 创建一个新的GitLab项目。
  2. 克隆你的代码项目到GitLab VCS,例如:弹簧等
  3. 在GitLab中配置以下变量设置> CI/CD >变量
    • JFROG_PLATFORM_SERVER_ID:一个唯一的服务器ID,用于从管道代码中引用服务器配置
    • JFROG_PLATFORM_URL:使用的JFrog平台服务器URL
    • JFROG_PLATFORM_USER:访问JFrog平台的用户名
    • JFROG_PLATFORM_PASS:用于验证用户的密码或令牌
      (注意:建议对机密变量(如secrets)使用屏蔽变量。)
    • JFROG_PLATFORM_REPO:用于从JFrog平台上传和下载工件的虚拟存储库
      GitLab和Artifactory
  4. 在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 >工作并单击相关的作业执行。

GitLab工作视图

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

GitLab和Artifactory

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

GitLab和x射线数据

就是这样!你就完成了。

注:本博客于2022年9月20日更新。