章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • ansible系列文章

  • Kubernetes笔记

  • elk

  • jenkins

  • GitLabCI_CD

    • Gitlab ci与Jenkins对比
    • GitLabRunner简介
    • GitLabRunner安装
    • GitLabRunner注册
    • Runner-命令
    • 运行流水线任务
    • 集成构建工具
      • 制品库集成
      • 按时间统计GitLab所有用户代码提交量
      • gitlab ci部署web程序示例
      • gitlab部署

    • 专题
    • GitLabCI_CD
    章工运维
    2024-04-12
    目录

    集成构建工具

    # 集成构建工具

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

    # 软件包下载

    • maven软件包下载 (opens new window)
    • gradle软件包下载 (opens new window)
    • ant软件包下载 (opens new window)
    • node软件包下载 (opens new window)

    # 环境配置

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

    #解压
    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   
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # maven集成模板库配置

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

    .build:
      stage: build
      tags:
        - build
      script: 
        - $BUILD_SHELL
        - ls
    
    1
    2
    3
    4
    5
    6
    7

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

    #单元测试
    
    .test:
      stage: test
      tags:
        - build
      script:
        - $TEST_SHELL
        - ls 
      artifacts:
        reports:
          junit: ${JUNIT_REPORT_PATH}
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

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

    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
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

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

    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/'
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    caaa7d791c45025b.png

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

    # npm

    template/web-pipeline.yml

    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
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    微信 支付宝
    上次更新: 2024/04/16, 08:52:08

    ← 运行流水线任务 制品库集成→

    最近更新
    01
    不花一分钱从0到1建站教程
    04-22
    02
    批量拿取多台服务器的日志文件
    04-21
    03
    高德MCP智能体搞定旅游计划
    04-19
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式