Artifactory & GitLab CI持續整合實踐

JFrog傑蛙科技發表於2020-02-19

GitLab CI 支援建立多個構建,並評估 每次程式碼提交是否透過 和以及對您產品的影響 。在構建過程中,會生成大量二進位制檔案,如果不能 正確的 大規模管理這些檔案,就會導致二進位制檔案 管理 混亂。為了克服這個問題,Artifactory 被無縫地整合到 GitLab  CI 構建過程中,以便 更好的 釋出和管理這些二進位制檔案 透過JFrog CLI, GitLab CI 快取、釋出您的依賴包 製品包 和構建資訊到Artifactory

這篇文章描述瞭如何將 GitLab CI Artifactory 整合在一起,不僅可以解析和部署二進位制檔案,還可以從 Artifactory   功能 獲取更多幫助

Artifactory GitLab CI 整合後,您可以儲存和檢視以下資訊:

·  構建資訊和釋出的模組

·  使用的依賴

·  環境變數

·  許可證摘要

·  連結到您的 Jira issue

·  構建之間的差異

 

一、  環境配置

·  安裝Gitlab Runner 配置Gitlab 此處不再贅述

·  準備一個示例專案

·  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 :

   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 | 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

 

 

報名連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2676254/,如需轉載,請註明出處,否則將追究法律責任。

相關文章