在Windows运行Gitlab Runner打包基于.NET Framework 4.6.1的项目

news/2024/10/4 21:28:46

摘要

本文详细描述了运行在Windows商的Gitlab Runner,如何自动集成.NET Framework的项目。

Gitlab中的变量

变量1:NUPKG_OUTPUT_ROOT

这个目录是在git获取的解决方案根目录之外,因为stages变了以后,当前Gitlab Runner工作的当前解决方案根目录下会被清空。我们希望build了以后经过单元测试,测试通过了才push到仓库。所以这个目录必须是在Gitlab Runner的build目录之外。

img

变量2:BUILD_LIBRARY_SCRIPT

Windows服务器上存放PowerShell的文件路径。

img

变量3:MSBUILD_PATH

Windows服务器上,msbuild.exe文件所在的目录。

img

Gitlab Runner服务器上的PowerShell

function Build-Project {param ([string]$msbuild_dir,[string]$ci_project_dir,[string]$project_path,[string]$version,[string]$output_path )
$project_file = $ci_project_dir + "\\" + $project_path
if(( $project_path -like "/*") -or ($project_path -like "\\*")){$project_file = $ci_project_dir + $project_path
}
if (-not $output_path) {Write-Host "没有传入第5个参数,nupkg包将放在解决方案根目录的nupkg中"$output_path =$ci_project_dir + "/nupkg"
} else {Write-Host "指定了nupkg包的输出目录"
}
Write-Host "nupkg包的输出目录是:" + $output_pathecho "项目文件"$project_file 
echo "版本号"$version
echo "输出路径"$output_path
cd $msbuild_dir
dotnet nuget locals http-cache -c
.\msbuild -restore $project_file
.\msbuild $project_file /p:OutputPath=$output_path /p:Version=$version
.\msbuild -t:pack $project_file /p:Configuration=Release /p:OutputPath=$output_path /p:PackageOutputPath=$output_path /p:PackageVersion=$version
}

Visual Studio中编写.gitlab-ci.yml

stages:          # List of stages for jobs, and their order of execution- buildvariables:YEE_CLOUD_VERSION_ID : 2024.5.$CI_PIPELINE_IIDYEE_CLOUD_NUPKG_DIR : $NUPKG_OUTPUT_ROOT\\Yee.Cloud\\$YEE_CLOUD_VERSION_IDbuild-job:       # This job runs in the build stage, which runs first.stage: buildtags:- zhongfang-windowsbefore_script:- .$BUILD_LIBRARY_SCRIPTscript:- echo "Compiling the code..."# Yee.Cloud- Build-Project $MSBUILD_PATH $CI_PROJECT_DIR "Yee.Cloud/Yee.Cloud.csproj" $YEE_CLOUD_VERSION_ID $YEE_CLOUD_NUPKG_DIR

执行效果

有图有真相:

img

存在的问题:

如果编译出错,PowerShell不能让Gitlab Runner控制台认为是任务失败了。

本文还会有后续更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

何小鹏:活过淘汰赛,要做多边形战士下的规模第一

在北京车展上,小鹏汽车董事长 CEO 何小鹏接受媒体采访,就价格战、未来趋势、小米汽车等行业热点话题回答了媒体的提问。作为造车新势力的重要厂商,小鹏接下来也面临着市场淘汰赛的考验。 一方面是越来越激烈的价格战,另一方面还有小米、华为这样的科技大厂的强势入局,何小…

《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇

1.简介 前边文章中已经讲解过鼠标的拖拽操作,今天宏哥在这里对其的其他操作进行一个详细地介绍和讲解,然后对其中的一些比较常见的、重要的操作单独拿出来进行详细的介绍和讲解。 2.鼠标操作语法 鼠标操作介绍官方API的文档地址:https://playwright.dev/docs/api/class-mous…

windows下使用命令行查看已存储的wifi密码

netsh wlan show interface查看当前已连接wifi信息 netsh wlan show profiles查看所有已保存的wifi配置文件 netsh wlan show profiles name="XXXXXX" key="Clear"查看特定配置文件详情,包括wifi密码,密码在“关键内容”行

如何分析慢SQL语句

如果一条sql执行很慢的话,通常会使用MySQL自动的执行计划explain来去查看这条sql的执行情况,比如在这里面可以通过key和key_len检查是否命中了索引,如果本身已经添加了索引,也可以判断索引是否有失效的情况,第二个,可以通过type字段查看sql是否有进一步的优化空间,是否存…

sonarqube(一)安装

一、前置条件: 安装工具如下:JDK MySql服务器 SonarQube SonarScanner二、下载和安装 1.jdk和mysql和sonar有版本对应的要求,sonar7.5对应jdk1.8和mysql>=5.6,<8.0 下载地址:http://www.sonarqube.org/downloads/ 下载完成后解压后点击StartSonar.bat启动即可。 或者…

GreatSQL的sp中添加新的sp_instr引入的bug解析

GreatSQL的sp中添加新的sp_instr引入的bug解析 一、问题发现 在一次开发中用到的sp需要添加新的sp_instr以满足需求,但是添加了数个sp_instr以后发现执行新的sp会发生core。注:本次使用的GreatSQL 8.0.32-251、sp_head.cc的init_sp_psi_keys()代码里面添加10个新的sp_instr:…

对于习惯使用ftp传输的企业,如何寻找最佳的替代方案?

FTP协议广泛应用各行业的文件传输场景中,对于很多企业而言,由于FTP传输应用获取门槛低、使用普遍,因此,有较为稳定的FTP使用习惯,但即便如此,也不得不面对,FTP应用存在着严重缺陷: 传输效率问题:FTP协议作为最早的互联网文件传输协议,虽然解决了传输协议有无的问题,…

Keil编译后的Code,RO,RW,ZI等相关

在使用keil开发STM32应用程序时,点击Build后在Build Output窗口中经常会有如下信息:以前一直好奇这几个参数和实际使用的STM32芯片中Flash和SRAM的对应关系,于是上网搜了一圈,做如下总结:这些参数的单位是Byte 图中几个参数分别代表 Code:代码的大小 RO:常量所占空间(加…