Gitlab + Gitlab runner + Window powershell
需求说明
根据领导要求,要把python 项目移到Gitlab 进行管理,并利用Gitlab CI/CD 进行自动化测试,打包,部署。(听起来很简单吧)
比较头大,完全没有经验,python 也是刚上手两个月,什么Gitlab, Gitlab runner 完全没听说过,powershell 也不常用,可以说是零起步。疯狂的查询资料,国内网站,国外网站,七八十篇博客文档,总算是出了点成果。
坏境:(关于环境的安装部署,大家另行查询资料吧)
1.Linux 服务器: 安装Gitlab https://about.gitlab.com/
2.Window 服务器:安装Gitlab runner(https://docs.gitlab.com/runner/), powershell(系统自带), pyinstaller(https://www.pyinstaller.org/打包python使用),Git(https://git-scm.com/与Git lab交互拉取,推送代码).
Gitlab runner for windows 10
我们这里重点说一下Gitlab runner 的安装,注册,使用.
install
1. 把下载好的exe 文件放到路径 C:\GitLab-Runner 文件夹下,命名为gitlab-runner.exe

2. 以管理员身份运行CMD
输入以下命令
gitlab-runner.exe install

REGISTER
输入以下命令 进行注册
gitlab-runner.exe register

输入GitLab instance URL:(gitlab 部署的服务器网址)
在gitlab ->Settings->CI/CI: 找到Runner 展开后可以找到 URL 和 token。

输入URL, Token, description for the runner, tags for the runner
tags 很重要,因为当你在脚本里使用他的时候,可以根据tags 指定要使用的runner. 因为每个runner可以有不同的系统环境,你要用的可能是特殊的。
最后选择excutor:我这里选的是shell.
可选项如下:Enter an executor: virtualbox, docker-ssh+machine, kubernetes, custom, docker-windows, docker-ssh, shell, docker, parallels, ssh, docker+machine

注册成功!这时候服务gitlab runner 应该已经启动了
可以去gitlab 服务器查看结果。

代码管理
Gitlab 新建一个test项目, 用于我们本次的自动化测试。

在自己的PC 上使用Git bash 拉取刚刚建的test项目(网址写你自己的, git clone 命令)
git clone https://code.com/GAS_GC_IT/test.git
项目结构如下:
重点关注一下 .gitlab-ci.yml、build_binaries.ps1、test.py 这三个文件
.gitlab-ci.yml:这个文件是CI/CD 执行时的配置文件,网上很多教程,可以看看如何配置。https://docs.gitlab.com/ee/ci/quick_start/
build_binaries.ps1:这个文件是powershell 要执行的脚本文件
test.py:是我们的python 脚本

这里我要进行的操作是:客户端PC push 代码到gitlab 的时候,利用gitrunner 执行job 对python 脚本进行打包
.gitlab-ci.yml 内容如下:
build:
tags:
- wz94
script:
- "powershell.exe -File C:\\GitLab-Runner\\builds\\7zyx1xwC\\0\\GAS_GC_IT\\test\\build_binaries.ps1"
build_binaries.ps1 内容如下, 利用pyinstaller 打包 test.py脚本
pyinstaller.exe -F "test.py"
test.py 内容如下
if __name__ == "__main__":
print('TEST......')
划重点
一号坑
在安装gitlab-runner.exe的时候会生产一个配置文件:config.toml(for window. 其他系统可能名字不同)

看一下它的内容(它的内容是可以修改的!!!!)
shell = 'pwsh'要改成shell = 'powershell',否则在gitlab 运行的时候,会报错stackoverflow
exec: “pwsh”: executable file not found in %PATH%
另外有关配置还可以查看文档https://docs.gitlab.com/runner/configuration/advanced-configuration.html
concurrent = 1
check_interval = 0 [session_server]
session_timeout = 1800 [[runners]]
name = "wz94"
url = "https://code.com/"
token = "id7_cuyyyA-xWzNhtdsB"
executor = "shell"
***shell = "pwsh"***
shell = "powershell"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
二号坑
这个路径要搞清楚,你可能不知道它应该是哪个,这是因为你还没有理解gitlab runner的运行原理。gitlab runner 和gitlab 在不同的服务器,他们之间是怎么通信的?
答案是SSH(一种网络协议),SSH用于计算机之间的加密登录,还记得我们注册gitlab runner 时输入的 URL 和token么。
实际上在我们push 代码到gitlab 后,会触发CI/CD 的pipline job ,这时候,gitlab runner 会从gitlab 拉取(clone )代码到 gitlab runner 服务器,没错,我们已经在gitlab runner 服务器上配置好所需要的系统环境,我们可以在这台服务器上对代码进行打包(利用pyinstaller),那它把代码拉到哪里了?请看:

Reinitialized existing Git repository in C:/GitLab-Runner/builds/7zyx1xwC/0/GAS_GC_IT/test/.git/
起码C:/GitLab-Runner 你是知道的,后面的路径是根据项目自动生成的。当然你会问了,能自己设置路径么?答案是肯定的。还记得config.toml么?
[runners.custom_build_dir] 改成自己的路径(未经尝试,可以自己实验)

"powershell.exe -File C:\\GitLab-Runner\\builds\\7zyx1xwC\\0\\GAS_GC_IT\\test\\build_binaries.ps1"
结果
自己尝试吧兄嘚!祝你成功!
Gitlab + Gitlab runner + Window powershell的更多相关文章
- 利用docker compose启动gitlab及runner
添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...
- gitlab gitlab runner
1.安装gitlab https://about.gitlab.com/installation/#ubuntu 2.安装runner https://docs.gitlab.com/runner/i ...
- GitLab CI runner can't connect to tcp://localhost:2375 in kubernetes
报错的.gitlab-ci.yml配置如下 image: docker:latest services: - docker:dind variables: DOCKER_HOST: tcp://loc ...
- K8s 部署 Gitlab CI Runner
K8s 版本:1.20.6 GitLab CI 最大的作用是管理各个项目的构建状态.因此,运行构建任务这种浪费资源的事情交给一个独立的 Gitlab Runner 来做就会好很多,而且 Gitlab ...
- Docker安装GitLab与Runner(网关),常规设置,自动化用到k8s+token
[转]图文详解k8s自动化持续集成之GitLab CI/CD Windows里面使用Debian命令行工具完成 和Docker网络相关的命令 查看某一个容器的网络 docker inspect 容器I ...
- 在 Kubernetes 上安装 Gitlab CI Runner Gitlab CI 基本概念以及 Runner 的安装
简介 从 Gitlab 8.0 开始,Gitlab CI 就已经集成在 Gitlab 中,我们只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,即可进行持续集成.在介绍 ...
- Gitlab注册Runner
1.先启动Gitlab,然后登陆进去,找到项目设置界面 2.部署Runner 这里采用docker安装的方式,也可以采用其他方式安装 # 创建docker镜像使用的数据卷 {20-07-16 16:2 ...
- 3.在 Kubernetes 上安装 Gitlab CI Runner
结合文章:1. 在 Kubernetes 上安装 Gitlab ,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13852854.html 总结: 结合开头的文章 ...
- Docker搭建自己的Gitlab CI Runner
转载自:https://cloud.tencent.com/developer/article/1010595 1.Gitlab CI介绍 CI:持续集成,我们通常使用CI来做一些自动化工作,比如程序 ...
随机推荐
- C++五子棋(二)——游戏界面与棋子渲染
准备 我们首先要在程序中定义一个名为drawPNG的函数,用于输出png格式图片并使背景透明 引入头文件(需要提前安装EasyX) #include <graphics.h> 定义函数 d ...
- 新手入门C语言第七章:C判断
C 判断 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C 语言把任何非零和非空的值假定为 true,把零或 null ...
- Java的源码执行(建议结合Javase语法学习来加深印象)
一.源码执行时的先后顺序: 父类的静态属性和静态块(按照声明顺序) 本类的静态属性和静态块(按照声明顺序) main方法 父类的成员属性和成员块(按照声明顺序) 父类构造器 本类成员属性和块(按照声明 ...
- 小米电视去广告之adb实战
近日闲来无事,对小米电视的开机广告.系统内置应用决定进行一波优化 安卓系统大部分都有一个"开发者模式", 在这个模式下可以放开手脚对系统进行一系列操作 此次要针对小米电视的UI使用 ...
- 9.2 Linux硬盘分区和挂载
一块新的硬盘存储设备后,先需要分区,然后再格式化文件系统,最后才能挂载并正常使用. 分区:根据需求和硬盘大小划分空间 格式化:对分区安装文件系统 挂载:将设备文件与一个目录关联的动作叫挂载 硬盘分区格 ...
- python练习-20200826
1:L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python', 'Ruby', 'PHP'], ['Adam', 'Bart','Lisa'] ...
- LeetCode数组刷题——448、48、240、769
1.[LeetCode448]:448. 找到所有数组中消失的数字 题目分析: 1-n之间有重复的,有没出现的,有出现一次.使用hashmap,空间复杂度为O(n) 方法一:哈希表,但是空间复杂度超过 ...
- 使用Spring MockMVC对controller做单元测试
1.对单一controller做测试. import org.junit.Before; import org.junit.Test; import org.springframework.beans ...
- 基于SqlSugar的开发框架的循序渐进介绍(1)--框架基础类的设计和使用
在实际项目开发中,我们可能会碰到各种各样的项目环境,有些项目需要一个大而全的整体框架来支撑开发,有些中小项目这需要一些简单便捷的系统框架灵活开发.目前大型一点的框架,可以采用ABP或者ABP VNex ...
- OAuth2.0笔记
OAuth2.0笔记 角色 一般资源服务器和授权服务器是一个 资源拥有者 客户端应用 资源服务器 授权服务器 客户端类型 OAuth 2.0规范定义了两种客户端类型: 保密的:web应用 公有的:用户 ...