热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用GitLabCIPipeline构建.NET解决方案

如何解决《使用GitLabCIPipeline构建.NET解决方案》经验,为你挑选了1个好方法。

我有一个包含几个.NET项目的解决方案.我使用GitLab而不是自托管来进行版本控制,并且也想开始使用他们的CI工具.我已将以下.gitlab-ci.yml文件添加到我的root:

stages:
  - build
  - test

build_job:
  stage: build
  script:
  - 'echo building...'
  - 'msbuild.exe Bizio.sln'
  except:
  - tags

test_job:
  stage: test
  script:
  - 'echo: testing...'
  - 'msbuild.exe Bizio.sln'
  - 'dir /s /b *.Tests.dll | findstr /r Tests\\bin\\ > tests_list.txt'
  - 'for /f %%f in (tests_list.txt) do mstest.exe /testcontainer: "%%f"'
  except:
  - tags

build阶段总是失败,因为它不知道什么msbuild是.确切的错误是:

/ bin/bash:第61行:msbuild.exe:找不到命令

经过一番调查,我发现我正在使用共享的跑步者.以下是作业运行的整个输出:

Running with gitlab-runner 10.6.0-rc1 (0a9d5de9)
  on docker-auto-scale 72989761
Using Docker executor with image ruby:2.5 ...
Pulling docker image ruby:2.5 ...
Using docker image sha256:bae0455cb2b9010f134a2da3a1fba9d217506beec2d41950d151e12a3112c418 for ruby:2.5 ...
Running on runner-72989761-project-1239128-concurrent-0 via runner-72989761-srm-1520985217-1a689f37...
Cloning repository...
Cloning into '/builds/hyjynx-studios/bizio'...
Checking out bc8085a4 as master...
Skipping Git submodules setup
$ echo building...
building...
$ C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe Bizio.sln
/bin/bash: line 61: msbuild.exe: command not found
ERROR: Job failed: exit code 1

看起来我拥有的共享运行器正在使用Ruby的Docker镜像,这似乎是错误的.我不知道如何更改它或选择可用于.NET的另一个.在进行了一些进一步的调查之后,我开始担心我将不得不通过大量的工作来获得我想要的东西,例如使用Azure VM来托管可以构建.NET应用程序的GitLab Runner.

使用GitLab的CI管道使用非自托管GitLab实例构建我的.NET解决方案需要做什么?



1> 小智..:

您应该能够在具有Framework 4构建工具的计算机上设置您自己的共享运行器(使用Docker映像,如microsoft/dotnet-framework-build,或者仅使用本机).

最简单的情况是使用您自己的桌面,您知道您的解决方案已经构建.(因为使用Docker镜像进行构建是绝对可行的,但需要确保让Docker在您的机器上工作的所有额外步骤).

从https://docs.gitlab.com/runner/install/windows.html下载计算机上的gitlab-runner

在计算机上创建一个目录(C:\ gitlab-runner)

将最新的二进制x86或x64下载到该文件夹

将二进制文件重命名为"gitlab-runner.exe"

为你的跑步者获取一个gitlab-ci标记

可能最简单的方法是在gitlab.com上转到您的项目,然后转到设置 - > CI/CD并展开常规管道设置.

在Runner Token部分中,单击Reveal Value按钮以显示标记值.在跑步者注册步骤中您将需要这个.

根据注册跑步者 - Windows注册gitlab跑步者

打开提升的命令提示符(以管理员身份运行)

cd到c:\ gitlab-runner

类型 gitlab-runner register

注册提示将指导您完成注册跑步者的步骤,但简而言之,您将投入使用

gitlab.com作为您的协调员URL,从您的项目中输入令牌

给你的跑步者一个名字

标记您的跑步者(以便您可以将其与能够构建,测试等的项目相关联 - 为简单起见,您现在可以跳过标记)

允许它运行无标记的工作(再次,简单,说真的)

锁定当前项目的跑步者(简单,说真)

并选择执行程序(输入shell,基本上是说使用Windows命令行)

安装gitlab-runner作为服务,因此它总是检查要做的工作

在命令提示符下,键入 gitlab-runner install

然后输入 gitlab-runner start

(现在,如果你去服务,你会看到列出的gitlab-runner,它应该正在运行 - 就在何时/如果跑步者崩溃,你应该去服务重新启动它)

呼.现在已经设置了运行器,它应该在您提交提交或请求合并时激活.

如果您仍然存在正确构建.gitlab-ci.yml文件的问题,可以在本地调试它(无需通过gitlab.com继续触发),方法是在命令行中转到解决方案文件夹,然后执行c:\gitlab-runner\gitlab-runner build(To例如,测试构建步骤.

如果构建步骤在查找解决方案文件时遇到问题,您可能需要尝试将其从"msbuild.exe Bizio.sln"更改为"msbuild.exe.\ Bizio.sln"


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • Iamtryingtocreateanarrayofstructinstanceslikethis:我试图创建一个这样的struct实例数组:letinstallers: ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • 我创建了一个SSH密钥,当我以admin身份在GitBash中运行ssh-Tgit@gitlab.com时,我得到W ... [详细]
  • AndroidJetpackNavigation基本使用本篇主要介绍一下AndroidJetpack组件Navigation导航组件的基本使用当看到Navigation单词的时候应 ... [详细]
author-avatar
平凡屋之换
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有