ITPub博客

首页 > 自动化运维 > DevOps > Artifactory & GitLab CI持续集成实践

Artifactory & GitLab CI持续集成实践

原创 DevOps 作者:JFrog杰蛙科技 时间:2020-02-19 16:41:13 0 删除 编辑

GitLab CI 支持创建多个构建,并评估 每次代码提交是否通过 测 试 和以及对您产品的影响 。在构建过程中,会生成大量二进制文件,如果不能 正确的 大规模管理这些文件,就会导致二进制文件 管理 混乱。为了克服这个问题,Artifactory 被无缝地集成到 GitLab  CI 构建过程中,以便 更好的 发布和管理这些二进制文件 , 并 通过JFrog CLI, GitLab CI 缓存、发布您的依赖包 、 制品包 和构建信息到Artifactory 。

这篇文章描述了如何将 GitLab CI 与 Artifactory 集成在一起,不仅可以解析和部署二进制文件,还可以从 Artifactory 的 Build Integration   功能 中 获取更多帮助 。

将 Artifactory 与 GitLab CI 集成后,您可以存储和查看以下信息:

·  构建信息和发布的模块

·  使用的依赖

·  环境变量

·  许可证摘要

·  链接到您的 Jira issue

·  构建之间的差异

 

一、  环境配置

·  安装Gitlab Runner 并 配置Gitlab ( 此处不再赘述 )

·  准备一个示例项目

https://gitlab.com/guoyunzong/maven-example.git

·  Artifactory 中创建仓库( 2 local , 1 remote , 1 virtual ): maven-dev-local 、 maven-pro-local 、 maven-remote 、 maven-virtual

·  在项目目录下编写配置文件 ( maven.conf )

version : 1

type : maven

resolver :

   snapshotRepo : maven-virtual

   releaseRepo : maven-virtual

   serverID : Default-Server

deployer :

   snapshotRepo : maven-virtual

   releaseRepo : maven-virtual

   serverID : Default-Server

 

在项目目录下编写配置文件 ( jira-cli.conf )

version : 1

issues :

   serverID : Default-Server

   trackerName : JIRA

   regexp : (.+-[0- 9 ]+)\s-\s(.+)

   keyGroupIndex : 1

   summaryGroupIndex : 2

   trackerUrl : http://my-jira.com/issues

   aggregate : true

   aggregationStatus : RELEASED

·  在gitlab 中配置 artifactory 的环境变量, Settings—CI / CD--Variables , 如:

ARTIFACTORY_URL   http://192.168.230.32:8081/artifactory

ARTIFACTORY_USER admin

ARTIFACTORY_PASS password

MAVEN_REPO_KEY   maven-virtual

 

二、编写 Gitlab CI 脚本并执行构建

·  在项目目录下编写脚本 ( .gitlab-ci.yml )

image : docker:git

services :

- docker:dind

 

stages :

- build

 

build :

   image : maven:3.5.4-jdk-8-alpine

   stage : build

   script :

     # Install

    - apk add git

 

     # Set the M2_HOME environment variable

    - export M2_HOME=/usr/share/maven

    

     # Download JFrog CLI

    - curl -fL https://getcli.jfrog.io | sh

 

     # Configure Artifactory instance with JFrog CLI

    - ./jfrog rt config --url=$ARTIFACTORY_URL --user=$ARTIFACTORY_USER --password=$ARTIFACTORY_PASS

    - ./jfrog rt c show

    

     # Mvn clean install

    - ./jfrog rt mvn "clean install" maven.conf --build-name=gitlabci-maven-artifactory --build-number=$CI_JOB_ID

  

     # Collect the environment variables

    - ./jfrog rt bce gitlabci-maven-artifactory $CI_JOB_ID

        

     # Add jira issue

    - ./jfrog rt bag gitlabci-maven-artifactory $CI_JOB_ID --config jira-cli.conf

    

     # Add sonar ( optional )

    - ./jfrog rt sp "maven-dev-local/org/jfrog/test/multi3/3.7-SNAPSHOT/*.war" "qulity.gate.sonarUrl=http://192.168.230.156:9000/dashboard/index/gitlabci-maven-artifactory"

    

     # Add properties ( optional )

    - ./jfrog rt sp "maven-dev-local/org/jfrog/test/multi3/3.7-SNAPSHOT/*.war" "deploy.tool=ansible"

    - ./jfrog rt sp "maven-dev-local/org/jfrog/test/multi3/3.7-SNAPSHOT/*.war" "ip=127.0.0.1"

    

     # Pass the build information to Artifactory   

    - ./jfrog rt bp gitlabci-maven-artifactory $CI_JOB_ID

    

     # Promote

    - ./jfrog rt bpr gitlabci-maven-artifactory $CI_JOB_ID maven-pro-local

    

     # Xray scan ( optional )

    - ./jfrog rt bs gitlabci-maven-artifactory $CI_JOB_ID --fail=false

    

     # Download ( optional )

    - ./jfrog rt dl maven-dev-local/org/jfrog/test/multi3/3.7-SNAPSHOT/multi3-3.7-20191213.050538-8.war all-my-frogs/

 

   when : manual

 

·  提交代码,输入git commit message ,格式如下

HAP-1007 - This is a sample issue

 

·  执行构建(可配置手动 或 自动执行)

CI/CD--Pipelines

 

 

·  J ob 中查看构建输出  

 

 

 

·  artifactory 中的 issue 信息 ( 可点击 HAP-1007 链接至 Jira 地址 )

 

 

 

 

 

更多   精彩内容   请微信搜索公众号: jfrogchina

   更多技术分享   可以关注   2   月   20   日在线课堂:《Artifactory & GitLab CI持续集成实践》

 

课程介绍

现在随着开源项目越来越多,大部分开发人员都会去引用大量第三方依赖,开源第三方组件的使用频率大幅增加。引用第三方已经开发好的组件给我们所有开发者带来极大的便利,减少了大量的重复性工作,提升了开发效率。但同时也给我们带来了一些隐患,因为开源并不代表这个软件是安全的,如何对引用第三方包进行安全管控是企业需要关注的问题

 

课程收益

本次课程主要介绍JFrog Xray如何解决第三方组件的安全问题。

 

本期话题

1. 第三方组件的介绍

2. Xray介绍

3. Xray使用场景及实践

 

课堂活动

本期课堂讲师会在结束前进行抽奖活动

第一名:小米蓝牙耳机

第二名:JFrog 新版 T 恤

第三名:JFrog 新版 T 恤

 

 

报名链接:https://www.bagevent.com/event/6370474


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69954434/viewspace-2676254/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-11-15

  • 博文量
    82
  • 访问量
    58997