• Gitlab 自动构建心得


    上面是简单接受一下gitlab ci的工作原理

    GitLab-CI

    这个是一套配合GitLab使用的持续集成系统,是GitLab自带的,也就是你装GitLab的那台服务器上就带有的。无需多考虑。.gitlab-ci.yml的脚本解析就由它来负责。

    GitLab-Runner

    这个是脚本执行的承载者,.gitlab-ci.yml的script部分的运行就是由runner来负责的。GitLab-CI浏览过项目里的.gitlab-ci.yml文件之后,根据里面的规则,分配到各个Runner来运行相应的脚本script。这些脚本有的是测试项目用的,有的是部署用的。

    .gitlab-ci.yml

    这个是在git项目的根目录下的一个文件,记录了一系列的阶段和执行规则。GitLab-CI在push后会解析它,根据里面的内容调用runner来运行。

    1.gitlab安装教程就不介绍了(公司架设好的).

    具体请百度

    2.创建上传你的项目.

    具体请百度

    3.配置流水线

    进入 设置->CI/CD 流水线进行操作

    需要设置流水线就需要先添加一个runner.(就是到时候用来构建的远程机器)

    如何设置一个新项目的特定 Runner

    • 安装 GitLab Runner 软件。 请参阅 GitLab Runner 章节 来安装
    • 在 Runner 安装时使用下面的链接: https://gitlab.xxxxxxx.com:6062/ci
    • 在设置时使用下面的注册授权码: xxxxxxxxxxxxxz(这个在CI/CD 流水线页面里面)
    • 启动 runner!

    4.编写.gitlab-ci.yml文件(主要步骤来了)

    下面贴一个我的

    # This file is a template, and might need editing before it works on your project.
    # see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options
    # you can delete this line if you're not using Docker
    image: busybox:latest
    before_script:
    - echo "Before script section"
    - echo "For example you might run an update here or install a build dependency"
    - echo "Or perhaps you might print out some debugging details"
    
    after_script:
    - echo "After script section"
    - echo "For example you might do some cleanup here"
    stages:
    - build
    - test
    - deploy
    
    #构建节点
    build_default_job:
    stage: build
    script:
    - echo "Do your build here"
    - make clean
    - make
    - make install
    
    #测试
    test1_job:
    stage: test
    script:
    - echo "test1"
    
    #默认上次打包
    deploy_default_job:
    stage: deploy
    script:
    - echo "Clear residue file"
    - python3 PackageUpload.py
    - make clean
    
    #构建失败后邮件提醒
    deploy_failure_job:
    stage: deploy
    script:
    - echo "build break,mail..."
    - make clean
    when: on_failure
    

    简单解释一下上面的内容:

    1. stages:描写的是构造的顺序 上面的如果失败下面的就不会允许(部分设置了when的除外)

    2. sage:描述的是job的类型(同样类型的job是同时运行的配有先后顺序)

    3. before_script: 是在所有job之前运行的内容.

    4. after_script:是在所有job之后运行的内容.

    5. when:可以设置每个job在什么情况下运行

      设置值 内容
      on_success 只有当前一个阶段的所有工作成功时才执行工作。这是默认值。
      n_failure 仅当前一个阶段的至少一个作业发生故障时才执行作业。
      always 无论前一阶段的工作状况如何,执行工作。
      manual 手动执行作业(在GitLab 8.10中添加)。阅读 下面的手动操作。

    这个文件具体可以看https://segmentfault.com/a/1190000010442764 这篇文章写得非常的详细

    注意:

    关键字 是否必须 描述
    image 用于docker镜像,查看docker文档
    services 用于docker服务,查看docker文档
    stages 定义构建阶段
    before_script 定义在每个job之前运行的命令
    after_script 定义在每个job之后运行的命令
    variable 定义构建变量
    cache 定义一组文件列表,可在后续运行中使用
  • 相关阅读:
    [LeetCode] Wildcard Matching, Solution
    [LeetCode] Add Binary 解题报告
    [LeetCode] Validate Binary Search Tree 解题报告
    [LeetCode] ZigZag Conversion 解题报告
    [LeetCode] Best Time to Buy and Sell Stock II Solution
    [LeetCode] Anagrams 解题报告
    [LeetCode] Word Search 解题报告
    【转载】git/github初级运用自如
    关于实训的那点事儿
    【转载】解决git Push时请求username和password,而不是sshkey验证
  • 原文地址:https://www.cnblogs.com/xie-tong/p/9304414.html
Copyright © 2020-2023  润新知