基于gitlab-runner实现自动部署

构思

gitlab-runner提供很多种运行环境,初次尝试所以选择比较容易上手的shell,流程基本与Jenkins无异,无缝集成gitlab所以不需要webhook。
基本流程:
git推送代码 ==> gitlab生成job ==> gitlab-runner监听到自己的job ==> gitlab-runner主动拉取代码 ==> 执行.gitlab-ci.yml操作

构建

  • gitlab服务器
    这个不用多说了吧

  • gitlab-runner服务器
    一台基于ubuntu20.04的机器
    ubuntu20应该直接就有,没有尝试更新一下apt

sudo apt-cache search gitlab-runner

sudo apt-get install gitlab-runner

注册一个runner

sudo gitlab-runner register

配置参数
基于gitlab-runner实现自动部署_第1张图片
参数从gitlab获取

基于gitlab-runner实现自动部署_第2张图片
注册完就能在gitlab看到了
基于gitlab-runner实现自动部署_第3张图片
此时gitlab-runner还没有运行,手动启动一下,可以通过 /etc/gitlab-runner/config.toml配置修改

sudo gitlab-runner run

编写 .gitlab-ci.yml 文件实现部署,因为资源限制就直接在gitlab-runner机器上部署了,远程部署的话多一步ssh登录过程
基本配置

stages:
  - deploy

service-deploy:
  stage: deploy
  only:
    - master  ##只关注master分支
  tags:
    - test-tag ##标签
  scripts:
    - mvn clean package ##构建jar,可以多加一个任务来构建
    - cp ./target/xxx.jar /xxx ## 处理jar包,给到谁谁谁
    ## 图方便直接用docker起
    - cd /xxx && docker-compose down && docker-compose up -d

整完测试

基于gitlab-runner实现自动部署_第4张图片
修改代码提交可以看到
在这里插入图片描述

基于gitlab-runner实现自动部署_第5张图片

你可能感兴趣的:(devops,devops)