谊品生鲜如何从零开始快速打造CI/CD流水线

在当前DevOps的趋势下,持续集成(CI)和持续部署(CD)使得项目构建和发布更加的快捷频繁可靠,那么如何快速搭建CI/CD流水线就至关重要,本文讲解如何使用Ansible、Docker、GitLab Runner快速打造CI/CD工作流。

GitLab内置的CI/CD工具GitLab Runner

公司使用GitLab来管理代码,GitLab在生态环境上提供gitlab-runner来实现CI/CD。

安装搭建:下载rpm包安装,使用gitlab-runner命令注册到GitLab上,并使用Docker执行器。gitlab-runner start启动gitlab-runner服务。

使用:在项目根目录下,创建文件.gitlab-ci.yml,导入z_qz/cicd/templates/Maven.gitlab-ci.yml:

include:
  - project: "z_qz/cicd"                 # CICD项目
    ref: master                          # 分支
    file: /templates/Maven.gitlab-ci.yml # 导入模板文件

z_qz/cicd项目文件结构:

Demo项目以Maven打包为例。

Demo有两个流水线:build和deploy,并引入需要的操作步骤文件:

stages:
  - build
  - deploy
include:
  - local: /java/.before-script.yml
  - local: /java/maven_build.yml
  - local: /java/deploy.yml

在before-script.yml里声明了一些函数:

.function: &function |
  function maven_build() {
    echo "maven build"
    mvn clean package -U -Dmaven.test.skip=true
  }
  function gradle_build() {
    echo "gradle build"
  }
  function download_docker_files() {
    echo "download Dockerfile"
    echo "download entrypoint.sh"
  }
  function docker_build() {
    echo "[start] get docker args"
    docker build --build-arg JAR_PATH=${JAR_PATH} --build-arg JAR_FILE=${JAR_FILE} --no-cache -t ${DOCKER_IMAGE} .
    docker push ${DOCKER_IMAGE}
    echo "[end] done"
  }
  function download_ansible_roles() {
    echo "download site.yml"
    echo "download ansible roles.tgz"
  }
  function notice() {
    # 通知
    msg="${message:-'太懒了,什么都没留下'}"
    curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=企业微信机器人' \
      -H 'Content-Type: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值