首页 > 系统相关 >gitlab-runner实现gitlab上的代码自动打包发布——windows版

gitlab-runner实现gitlab上的代码自动打包发布——windows版

时间:2024-01-19 13:44:36浏览次数:32  
标签:test1 ci runner gitlab windows build yml

gitlab中的项目,每次打包发布都比较麻烦,需要自己本地打包然后传输到服务器,再启动。考虑实现一种自动打包发布的方法。

    1)考虑使用jenkins实现,但是需要jdk11(当前环境不能升级),还有一些插件(这个虽然可以离线安装,但是需要高版本的jenkins,相对应的又依赖高版本的jdk)

    2)考虑使用docker实现,不熟。。。

    3)所以最后考虑使用gitlab-runner了,相对简单

以下为实现步骤:

一、windows安装gitlab-runner

  1、 先去gitlab官网下载windows版本的gitlab Install GitLab Runner on Windows | GitLab

  2、安装gitlab-runner

  

//安装gitlab-runner
gitlab-runner.exe install
 
//使用指定账户安装gitlab-runner
gitlab-runner.exe install --user your-username --password your-password
 
//启动gitlab-runner
gitlab-runner.exe start
 
//停止gitlab-runner
gitlab-runner.exe stop
 

二、把gitlab-runner注册到gitlab上

  注册成功后,Runners下面会生成一个runners,可以看到这个runners是正常运行的,没有什么错误。

                                                  

 

CI/CD里面生成了runners后,相应的在gitlab-runner的config.toml文件里面也会生成一个新的[[runners]],对新生成的[[runners]]的配置信息做一些修改。

pre_clone_script = "chcp 65001"
pre_build_script = "chcp 65001"
shell = "powershell"

 

          .\gitlab-runner.exe restart   重启一下以免修改的配置不生效!

三、在Maven项目中新增.gitlab-ci.yml文件【事先要有一个已经发布到gitlab上的项目(gitlab使用网上的或者自己安装一个都行)】

  由于我的项目代码是微服务形式,一个项目中有多个子项目,所以需要打的包也不止一个,因此要使用父级.gitlab-ci.yml调用子级.gitlab-ci.yml 【如果只有一个项目(一个pom文件)那使用一个.gitlab-ci.yml文件就可以了】     ,此外,.gitlab-ci.yml和src及pom.xml同级。

  我的目录结构类似于下图: 

                                                                                    

 父级.gitlab-ci.yml内容:

stages: # 指定运行的步骤,没有指定就顺序执行
  - build
  - test
  - build_test1
  - build_test2

build1:
  tags: 
    - k8s
  stage: build
  script:
    - echo "Do your build here"

test1:  
  stage: test
  script:
    - echo "Do a test here"
    - echo "For example run a test suite" 


build-test1:
  stage: build
  trigger:
    include: # 运行 test1 目录下的 ci.yml 文件
      - local: test1/ci.yml # 相对路径
    strategy: depend # 状态同步
  rules: # 触发规则,test1 目录下的任何文件改变时触发
    - changes:
      - test1/* # test1 下的任何文件发生改变就执行
      when: always

build-test2:
  stage: build
  trigger:
    include: # 运行 test2 目录下的 ci.yml 文件
      - local: test2/ci.yml  # 相对路径
    strategy: depend # 状态同步
  rules: # 触发规则,test2 目录下的任何文件改变时触发
    - changes:
      - test2/* # test2 下的任何文件发生改变就执行
      when: always

 

子级.gitlab-ci.yml内容:【  only:    - mydev 这个是设置对应的分支,你提交代码到其他分支不会触发的】

stages: # 指定运行的步骤,没有指定就顺序执行
  - build
  - deploy
  - test
  - package

build1:
  tags: 
    - k8s
  only:
- mydev
stage: build script: - echo "Do your build here" test1: tags: - k8s 
  only:
- mydev
stage: test script: - echo "Do a test here" - echo "For example run a test suite" package: tags: - k8s
only:
- mydev stage: package script: - echo "开始打包" - echo "For example run a lint test"
- cd D:\xxx\xxx\myprojectbasepath
- D:\xxx\apache-maven\bin\mvn compile
deploy1: tags: - k8s
  only:
- mydev
stage: deploy script: - echo "Do your deploy here"

    把以上文件推送到对应分支。

四、在对应的分支,和对应的子项目中,修改文件然后提交再push到对应分支,登录到gitlab查看是否成功

                                                        

 至此已完成一个子项目的打包,其他子项目亦复如是。

后续会尝试在linux环境实现(一般部署服务都是使用linux机器)

 



参考:

https://blog.csdn.net/weixin_42032770/article/details/128998760

https://blog.51cto.com/busy/6237260

标签:test1,ci,runner,gitlab,windows,build,yml
From: https://www.cnblogs.com/51python/p/17974450

相关文章

  • Opera 漏洞可能让黑客在 Mac 或 Windows 上运行任何文件
    网络安全研究人员披露了MicrosoftWindows和ApplemacOSOpera网络浏览器中的一个现已修补的安全漏洞,该漏洞可被利用来执行底层操作系统上的任何文件。GuardioLabs研究团队将远程代码执行漏洞代号为MyFlaw,因为它利用了名为MyFlow的功能,可以在移动设备和桌面设备之间同步......
  • Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab
    Jira母公司即将全面停服旗下部分Server端产品的销售和服务支持!Jira母公司Atlassian在几年前确定了公司的战略为“全面上云”,为此做出了停止Server产品的销售和支持。整个时间线从2021年2月2日开始,直到今年2月15日,彻底停止Server端产品的服务支持。Server......
  • 实操开源版全栈测试工具RunnerGo安装(三)MacOS安装
    以Sonoma14.1.2系统为例视频教程:https://www.bilibili.com/video/BV1fG411e7h2/?spm_id_from=333.999.0.01、下载并安装docker​下载地址:https://docker.p2hp.com/下载后安装2、打开终端,准备docker和docker-compose环境​gitclonehttps://github.com/Runner-Go-T......
  • 实操开源版全栈测试工具RunnerGo安装(四)Windows安装
    以windows10系统为例视频教程:https://www.bilibili.com/video/BV14H4y1C71u/?spm_id_from=333.999.0.01、设置手动进入系统BIOS启用虚拟化技术​(展示型号是HUAWEIMateBook13),重启电脑按F2进入BIOS,然后启用虚拟化(Inter启动虚拟化)将VirtualizationTechnology设置为 <Enabl......
  • Windows系统安装下载ERNIE Bot教程
    1、使用pip命令下载pipinstallerniebot==0.5.0Successfully~2、使用AccessToken进行认证鉴权(Python)importernieboterniebot.api_type='aistudio'erniebot.access_token='{YOUR-ACCESS-TOKEN}'第三行内容需要换成自己的AccessToken内容(注册、登录获取相关内容......
  • 实操开源版全栈测试工具RunnerGo安装(二)Linux安装
    手动安装(支持Linux、MacOS、Windows)Linux安装步骤以debian系统为例,其他linux系统参考官方文档:https://docs.docker.com/engine/install 进行docker安装视频教程:https://www.bilibili.com/video/BV1Mj41157db/?spm_id_from=333.999.0.01、安装docker​卸载所有冲突的程序包......
  • Loadrunner性能、接口测试工具
           LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。   Lo......
  • Windows的mysql版本升级 windows mysql版本(转载)
    Windows下安装和使用MySQL8.0一、下载MySQL二、安装MySQL三、使用MySQL3.1、配置环境变量3.2、命令行使用MySQL一、下载MySQL偷懒直接点击下载即可: 下载MySQL8.0,如果你要切换版本,请进入官网下载!https://dev.mysql.com/downloads/installer/首先进入MySQL官网下载界面(Downlo......
  • 实操开源版全栈测试工具RunnerGo安装(一)
    Docker版安装文档一、环境要求​1.1部署服务器要求​操作系统:任何支持Docker的Linuxx86CPU内存:最低要求4C8G,推荐8C16G网络要求:可访问互联网​ ❗并发量较大时,请关注您的带宽、服务器的cpu及内存使用率等,以免影响测试结果和业务运行。1.2网络端口要求​为保证R......
  • gitlab账号密码忘记(docker部署)
    1.进入容器dockerexec-itgitlabexec 2.修改密码sugitgitlab-railsconsole-eproduction//可以带上-e参数查看版本,不同版本修改用户密码有细微差别u=User.where(id:1).firstu.password='Qwer@1234'u.save[root@DevOPS~]#dockerexec-itgitlabbashroot@a3674......