GitLab CI支持建立多個構建,並評估每次代碼提交是否經過測試和以及對您產品的影響。在構建過程當中,會生成大量二進制文件,若是不能正確的大規模管理這些文件,就會致使二進制文件管理混亂。爲了克服這個問題,Artifactory被無縫地集成到GitLab CI構建過程當中,以便更好的發佈和管理這些二進制文件,並經過JFrog CLI, GitLab CI緩存、發佈您的依賴包、製品包和構建信息到Artifactory。
這篇文章描述瞭如何將 GitLab CI 與 Artifactory 集成在一塊兒,不只能夠解析和部署二進制文件,還能夠從 Artifactory 的 Build Integration 功能中獲取更多幫助。
將 Artifactory 與 GitLab CI 集成後,您能夠存儲和查看如下信息:
構建信息和發佈的模塊git
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)docker
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
ARTIFACTORY_URL http://192.168.230.32:8081/artifactory ARTIFACTORY_USER admin ARTIFACTORY_PASS password MAVEN_REPO_KEY maven-virtual
* 在項目目錄下編寫腳本(.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
HAP-1007 - This is a sample issue
* 執行構建(可配置手動或自動執行) CI/CD--Pipelines
緩存
* Job中查看構建輸出 安全
* artifactory中的issue信息(可點擊 HAP-1007 連接至 Jira 地址)微信
更多 精彩內容 請微信搜索公衆號:jfrogchina
更多技術分享 能夠關注 2 月 20 日在線課堂:《Artifactory & GitLab CI持續集成實踐》curl
課程介紹
如今隨着開源項目愈來愈多,大部分開發人員都會去引用大量第三方依賴,開源第三方組件的使用頻率大幅增長。引用第三方已經開發好的組件給咱們全部開發者帶來極大的便利,減小了大量的重複性工做,提高了開發效率。但同時也給咱們帶來了一些隱患,由於開源並不表明這個軟件是安全的,如何對引用第三方包進行安全管控是企業須要關注的問題maven
課程收益
本次課程主要介紹JFrog Xray如何解決第三方組件的安全問題。ide
本期話題gitlab
課堂活動
本期課堂講師會在結束前進行抽獎活動
第一名:小米藍牙耳機
第二名:JFrog新版T恤
第三名:JFrog新版T恤測試