请支持开源软件:https://gitee.com/bing300/aspfm
目录
摘要
1、Gitlab
2、创建群组及项目
3、找到项目独立的token
4、部署gitlab runner
现在越来越多的公司使用Gitlab来管理代码。以前都是用Jenkins来做自动编译及部署。现在Gitlab本身自带CI/CD持续集成。
这篇文章是关于CI/CD入门。
这是代码管理的基础平台。一般公司都已经安装好了。如果没有,可以自己去下载安装。
对于Gitlab来说,是通过项目来管理代码的。群组就相当一个项目分类。项目创建好了之后,就会有独立的URL。
在个人电脑安装Git。使用Git clone命令复制代码,然后完成commit,push等操作。在这里不做详细描述。
项目界面,左侧菜单,设置---CI/CD,展开“Runner”功能组,找到“手动设置specific Runner”组。
就可以看到Runner指定的URL地址,以及注册令牌(token),例:bzYnp6-39gF7zKqrcbqP
还有最重要的运行器唯一ID号,例:fLYMe3yE,最后编写yml代码时会用到。
gitlab runner的window版本,是一个独立的exe文件。
在Gitlab官网可以下载:https://docs.gitlab.com/runner/install/windows.html
下载完成之后,存放在一个文件路径不包含空格、特殊符号的文件夹里。
下载的Gitlab runnber运行程序,名称为:gitlab-runner-windows-amd64.exe
名字太长了,给改短一点:gitlab-runner.exe 放在 D:\zhoubb\GitLab-Runner 目录。
以管理员的方式,打开Windows PowerShell。
cd D:\zhoubb\GitLab-Runner
.\gitlab-runner.exe register
Please enter the gitlab-ci coordinator URL:
这里输入的是步骤3标记的那个地址。
Please enter the gitlab-ci token for this runner:
这里输入的是步骤3标记的token。
Please enter the gitlab-ci description for this runner:
这里输入编译器的描述信息,比如runner服务器名称等。
Please enter the gitlab-ci tags for this runner
runner标记。可以填写多个用,号分隔。非常重要。在CI\CD配置(.gitlab-ci.yml)中,需要指定这个名称。
Please enter the executor
shell
注册runner到系统服务
./gitlab-runner.exe install
使用特定账号注册系统服务
./gitlab-runner.exe install —user ENTER-YOUR-USERNAME —password ENTER-YOUR-PASSWORD
启动runner
./gitlab-runner.exe start
注册完成之后,再通过步骤3,查看token值时,会发现多了一个已运行的运行器。这个运行器的描述里有步骤4输入的runner服务器名称,runner标记等。
其中sln的地址中,出现了fLYMe3yE,这里运行器的唯一ID,在步骤3的提到。
variables:
msbuild: "C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\"
stages:
- xxx_正式环境
deploy_正式环境:
stage: xxx_正式环境
variables:
runnerRootPath: "D:\\zhoubb\\GitLab-Runner"
sln: "D:\\zhoubb\\GitLab-Runner\\builds\\fLYMe3yE\\0\\xxxx.sln"
script:
- $ErrorActionPreference = "Stop"
- echo "msbuild mes"
- $collectionOfArgs = @($sln,"/target:Clean", "/target:Build","/p:Configuration=Debug")
- cd $msbuild
- .\msbuild.exe $collectionOfArgs
- echo "start Application"
- $nowdate=Get-Date -Format 'yyyy-MM-dd-hh-mm-ss'
- $logfile="$runnerRootPath\Console\loger\$nowdate.log"
- $AutoDeploy=@(“$logfile”)
- cd $runnerRootPath
- Start-Process -FilePath ./Console/Console.exe -ArgumentList $AutoDeploy -Wait
- echo "Application End"
- echo "Show Log"
- Get-Content $logfile
when: manual
only:
- master
tags:
- bing