热门标签 | 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"


推荐阅读
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在本地环境中调试远程服务器上的网站代码执行问题,可以通过以下步骤实现:首先,在本地安装 Visual Studio 并配置远程调试工具。接着,确保服务器和本地机器之间的网络连接畅通,并正确设置防火墙规则以允许调试流量。最后,使用 Visual Studio 的远程调试功能连接到服务器,进行代码调试。这种方法不仅提高了开发效率,还减少了在服务器上直接操作的风险。 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 本文深入解析了HTML框架集(FRAMESET)的使用方法及其应用场景。首先介绍了几个关键概念,如如何通过FRAMESET标签将主视图划分为多个独立的区域,每个区域可以加载不同的HTML文件。此外,还详细探讨了FRAMESET在实际开发中的优缺点,并提供了具体的实例代码,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 如何高效地安装并配置 PostgreSQL 数据库系统?本文将详细介绍从下载到安装、配置环境变量、初始化数据库、以及优化性能的全过程,帮助读者快速掌握 PostgreSQL 的核心操作与最佳实践。文章还涵盖了常见问题的解决方案,确保用户在部署过程中能够顺利解决遇到的各种挑战。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • Windows 10系统对Intel服务器的影响:来自微软官网的下载选项分析 ... [详细]
  • 本文提供了在 Windows 环境下编译 Google Test 框架的详细步骤。首先,从 GitHub 下载最新版本的 Google Test 源代码。由于最新版本未包含 MSVC 配置文件,需要使用 CMake 工具进行配置。具体操作包括下载并安装 CMake,然后通过修改 CMake 文件来生成适用于 MSVC 的项目文件。此外,还需要进入 Google Mock 目录,确保所有依赖项正确配置。本文将详细介绍每个步骤,帮助开发者顺利完成编译过程。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
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社区 版权所有