首页 > 其他分享 >Docker的CI/CD流水线简单配置(在windous本地配置)

Docker的CI/CD流水线简单配置(在windous本地配置)

时间:2023-11-28 14:12:56浏览次数:36  
标签:runnertest1 CI shell runner gitlab CD Runner windous GitLab

在做配置之前,请先了解一下知识点,更加方便了解下面代码:

1.文件后缀名为.yml

2.gitlab-runner

3.CI/CD

了解完之后就开始本次代码讲解(一定要先进行了解)

首先先要做一些准备工作,方便下面步骤的使用

1.运行docker里的gitlab

2.找到你想应用的项目仓库里去设置弄一个访问令牌

 添加一个新令牌

 设置令牌的名称,访问权限,时间

创建之后这个令牌token需要暂时保存下来,留着待会会用到,下面代码说到令牌token就是在使用


一、进行安装Docker-runner软件
路径:在C盘创建文件夹名为 GitLab-Runner把文件下载到该目录。

网址:https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe

注册新的getlab-Runner,创建 gitlab-runner.yml文件,将以下代码写入(将我讲解的文字删除掉)

//注册一个 GitLab Runner。GitLab Runner 是一个用于在 GitLab CI/CD 中执行作业的执行器。
//cd c:\GitLab-Runner 用于切换到 GitLab Runner 的安装目录。而 .\gitlab-runner-windows-amd64.exe register 则是运行 GitLab Runner 注册命令。

cd c:\GitLab-Runner
.\gitlab-runner-windows-amd64.exe register
-------------------------------------------

Runtime platform                                  [0;m  arch[0;
=windows pid[0;m=2756 revision[0;m=133d7e76 version[0;m=15.6.1
[0;33m

//GitLab 实例的 URL:这里是 http://localhost:8080/abc/abc,表示 GitLab 实例的地址。

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://localhost:8080/abc/abc

//注册 Token:这里是 glpat-JzSJsWcxMnNaAXaWWaxs,用于验证 Runner 的注册,这里采用上面创建的令牌Token。
Enter the registration token: glpat-JzSJsWcxMnNaWWaxs
[runnertest2]runnertest1 shell

//输入运行器的标签这个就是注册runner的表签(下面会用到)
Enter tags for the runner (comma-separated): shell,runnertest2_shell Enter optional maintenance note for the runner: shell for runnertest2 Registering runner... succeeded [0;m runner[0;m=gghjkkll... Enter an executor: ssh, virtualbox, kubernetes, custom, docker, docker-windows,parallels, instance, docker-ssh, shell, docker+machine, docker-ssh+machine: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [0;m Configuration (with the authentication token) was saved in "C:\\GitLab-Runner\\c onfig.toml"[0;me

 

二、把Runner安装成一个服务并启动

在windows启动菜单输入框输入 cmd ,然后不要回车,在菜单最上面把 cmd 设为以管理员身份运行,然后再执行(必须是管理员运行)

gitlab-runner-windows-amd64.exe install
gitlab-runner-windows-amd64.exe start

  在 控制台-->系统和安全-->管理工具-->服务 中找到了该服务,看到已经自动把登陆帐号设为本地系统账户并自动启动

 

三、编写一个运行流水线

创建一个.gitlab-ci.yml文件,写入一下代码(文字注释需要删除)

stages:                //系列的阶段
  - build 			     //构建阶段,用于构建项目。
  - test			      //测试阶段,用于运行项目的测试。
  - review		        //审查阶段,用于执行其他检查或审查操作。
  - deploy		        //部署阶段,用于将项目部署到目标环境
                  //相应的作业
build-job:              //在build阶段执行的作业,
  stage: build		      //执行build阶段
  script:		
    - echo "开始测试runnertest1 shell..."  
    - docker run --rm maven:3-jdk-11-slim mvn -v         //使用maven:3-jdk-11-slim镜像
    - echo "结束测试runnertest1 shell."	
  tags:		                        //提示信息
    - runnertest1_shell 		           //此作业标记为runnertest1_shell

test-job:                            //test阶段执行的作业
  stage: test
  script:
    - echo "开始测试runnertest1 maven..."  
    - mvn -v                               //运行mvn -v命令验证Maven版本
    - echo "结束测试runnertest1 maven."
  tags:
    - runnertest1_maven

review-job:      
  stage: review	                      //在review阶段执行的作业
  image: maven:3-jdk-11-slim		        //使用maven:3-jdk-11-slim镜像
  script:
    - echo "开始测试runnertest1 maven..."  
    - java -version			          //运行java -version命令验证Java版本
    - echo "结束测试runnertest1 maven."
  tags:
    - docker		                //此作业标记为docker。

deploy-job:      
  stage: deploy	                  //deploy阶段执行的作业
  script:
    - echo "开始测试windows shell runner..."  
    - java -version					      //运行java -version命令验证Java版本
    - echo "结束测试windows shell runner."
  tags:							        //此作业标记为shell,runnertest2_shell
shell,runnertest2_shell

  解释:tags这里的runnertest2_shell就是我们之前注册Runner时填写的标签。

.gitlab-ci.yml文件里的工作不是固定的,也是根据项目进行更改,这仅供参考。

保存.gitlab-ci.yml之后,流水线就会立刻运行,以后每次只要仓库有提交,都会触发流水线启动,到此代码编写完毕。

标签:runnertest1,CI,shell,runner,gitlab,CD,Runner,windous,GitLab
From: https://www.cnblogs.com/gyp2001/p/17861584.html

相关文章

  • HCIP 路由策略
    路由策略   基于FIB转发表转发报文,FIB基于IP路由表生成   路由策略,通过修改或删除路由来影响FIB转发表,实现控制设备转发报文路径       通过修改控制平面来影响数据平面   应用场景:1.过滤路由,从路由表删除发布的路由、接收的路由   ......
  • odigos 基于ebpf 以及OpenTelemetry 的分布式tracing 解决方案
    按照odigos官方的介绍是不需要进行代码的修改就可以实现方便的跨应用的分布式trace,目前支持java,python,net,go,js等语言目前看官方的介绍,安装是比较简单的(核心基于了k8s),目前官方文档比较清晰可以试用下说明目前开源分布式trace的工具是越来越多了,同时基于ebpf以及OpenTelemetry标......
  • Civil 3D导入样式后修改相应设置
    在上一篇随笔中,展示了从样板文件中导入样式到当前文档中,某些情况下,导入样式后需要"使用"从样式,比如创建横断面图时想使用刚刚导入的样式作为默认样式,只需简单的几行代码即可完成相应的操作。 下面是上一篇随笔中的代码修改后的情况: publicvoidC_SETest(){stri......
  • 【scipy 基础】--统计分布
    scipy.stats子模块包含大量的概率分布、汇总和频率统计、相关函数和统计测试、掩蔽统计、核密度估计、准蒙特卡罗功能等等。这个子模块可以帮助我们描述和分析数据,进行假设检验和拟合统计模型等。1.主要功能具体来说,scipy.stats子模块包括以下主要功能:类别说明连续......
  • MACD标准背离公式和选股公式
    一、MACD底背离可靠买点1、底背离产生之后的第一个金叉为最佳买点(macd面积背离)2、前提条件:第一个macd涨幅动能要充足,这样成功率高二、MACD底背离失败买点1、MACD标准背驰公式源码如下:DIFF:EMA(CLOSE,12)-EMA(CLOSE,26);DEA:EMA(DIFF,9);MACD:2*(DIFF-DEA),COLORSTICK,LI......
  • Codeforces Round 911 (Div. 2) D. Small GCD
    题目链接:https://codeforces.com/contest/1900/problem/D对于已经排序好的数组\(a\),我们需要计算:\[\sum_{i=1}^n\sum_{j=i+1}^ngcd(a_i,a_j)*(n-j)\]由于\(\sum_{d|n}\phi(d)=n\),因此:\[\gcd(a_i,a_j)=\sum_{d|a_i,d|a_j}\psi(d)\]代入可得:\[\sum_{i=1}^n\su......
  • C# double decimal 四舍五入
    传送门usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;publicclassProgram{publicstaticvoidMain(){//先看看double类型通过Math.Round取两位小数得到什么Console.WriteLine(Math.Round(2.345d,2));//2.35//再看看de......
  • CF1900 D Small GCD 题解
    LinkCF1900DSmallGCDQuestion定义\(f(x,y,z)=\gcd(a,b)\),其中\(a,b\)为\(x,y,z\)中较小的那两个数给出数组\(a\),求\[\sum\limits_{i=1}^n\sum\limits_{j=i+1}^n\sum\limits_{k=j+1}^nf(a_i,a_j,a_k)\]三个求和符号本质上就是选数组\(a\)中的三个数,也就是说,数......
  • D. Small GCD
    D.SmallGCDLet$a$,$b$,and$c$beintegers.Wedefinefunction$f(a,b,c)$asfollows:Orderthenumbers$a$,$b$,$c$insuchawaythat$a\leb\lec$.Thenreturn$\gcd(a,b)$,where$\gcd(a,b)$denotesthegreatestcommondivisor(GCD)ofi......
  • 更新 Kubernetes 集群中 Argo CD 的服务类型为 NodePort失败
    这个问题是我再做项目的时候要开区argoCD时并链接时端口开区不了kubectlpatchsvcargocd-server-nargocd-p'{"spec":{"type":"NodePort"}}'service/argocd-serverpatched(nochange)发现这样的问题这个问题我是换了一个思路是直接来做以刻kubernetes的yaml文件并且......