前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集成构建工具

集成构建工具

作者头像
章工运维
发布2024-04-16 09:25:43
680
发布2024-04-16 09:25:43
举报
文章被收录于专栏:章工运维章工运维

# 集成构建工具

嘿嘿,大家好。 构建工具是用来将代码编译打包成制品的工具。例如前端项目我们一般使用npm进行打包,后端java项目我们一般使用maven、gradle进行打包。构建工具很多很多,但是集成到gitlab中是一样的。所以这里简单介绍使用gitlabCI集成npm/maven完成前后端项目的构建。

# 软件包下载
# 环境配置

首先,我们需要在runner机器中安装配置好apache-maven。

代码语言:javascript
复制
#解压
tar zxf apache-maven-xxxx.tar.gz  -C /usr/local
tar zxf gradle-xxxx.tar.gz -C /usr/local
tar zxf node-xxxxx.tar.gz -C /usr/local
tar zxf apache-ant-xxxx.tar.gz -C /usr/local

#添加环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.0
export ANT_HOME=/usr/local/apache-ant-1.10.5
export GRADLE_HOME=/usr/local/gradle-5.3
export NODE_HOME=/usr/local/node-v10.15.3-linux-x64
export JAVA_HOME=/usr/local/jdk1.8.0_201
export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$GRADLE_HOME/bin:$NODE_HOME/bin
export PATH=$PATH:$JAVA_HOME/bin

# 生效全局环境变量
source /etc/profile   
# maven集成模板库配置

我们首先在jobs目录中创建一个build.yml,然后在里面编写build作业模板。

代码语言:javascript
复制
.build:
  stage: build
  tags:
    - build
  script: 
    - $BUILD_SHELL
    - ls

我们计划将测试相关的job都定义在jobs/test.yml中,我们开始创建并编写test作业。运行测试shell并收集单元测试报告。

代码语言:javascript
复制
#单元测试

.test:
  stage: test
  tags:
    - build
  script:
    - $TEST_SHELL
    - ls 
  artifacts:
    reports:
      junit: ${JUNIT_REPORT_PATH}

然后我们在template目录中创建maven流水线模板。 templates/java-pipeline.yml

代码语言:javascript
复制
include:
  - project: 'cidevops/cidevops-gitlabci-service'
    ref: master
    file: 'jobs/build.yml'
  - project: 'cidevops/cidevops-gitlabci-service'
    ref: master
    file: 'jobs/test.yml'

variables:
  BUILD_SHELL: 'mvn clean package  -DskipTests'  ##构建命令
  CACHE_DIR: 'target/'
  TEST_SHELL : 'mvn test'                                   ##测试命令
  JUNIT_REPORT_PATH: 'target/surefire-reports/TEST-*.xml'   ##单元测试报告
  
cache:
  paths:
    - ${CACHE_DIR}
    
stages:
  - build
  - test


build:
  stage: build
  extends: .build

test:
  stage: test
  extends: .test

最后我们在项目中添加.gitlab-ci.yml来引用模板构建流水线。

代码语言:javascript
复制
include:
    - project: 'cidevops/cidevops-gitlabci-service'
      ref: master
      file: 'templates/java-pipeline.yml'
  
variables:
  BUILD_SHELL: 'mvn clean package  -DskipTests'  
  TEST_SHELL: 'mvn  test'
  CACHE_DIR: 'target/'
caaa7d791c45025b.png
caaa7d791c45025b.png

好的,上面我们已经实现了构建,但是一般还回运行单元测试。接下来我们实现。

# npm

template/web-pipeline.yml

代码语言:javascript
复制
include:
  - project: 'cidevops/cidevops-gitlabci-service'
    ref: master
    file: 'jobs/build.yml'
    
variables:
  BUILD_SHELL: 'npm run build'     ##构建命令                                   
  CACHE_DIR  : "dist/"             ##构建缓存
  

cache:
  paths:
    - ${CACHE_DIR}
    - node_modules/
    
stages:
  - install
  - build
  
install:
  stage: install
  script:
    - 'npm install'
    
build:
  stage: build
  extends: .build
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 集成构建工具
    • # 软件包下载
      • # 环境配置
        • # maven集成模板库配置
          • # npm
          相关产品与服务
          腾讯云服务器利旧
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com