Windows 上的 GitLab 运行程序并处理 &%ERRORLEVEL%

2024-01-01

在我的 .gitlab-ci.yml 中,我尝试使用 findstr 命令。

findstr /c:"%SOLUTION_DIR%" gitlab.dif > founded.ref

如果 gitlab.dif 中没有匹配“%SOLUTION_DIR%”,此命令会将 %ERRORLEVEL% 设置为 1。

看来 GitLab 运行者将此解释为工作失败。

ERROR: Job failed: exit status 1

有什么解决方法吗?

EDIT :

我的 .gitlab-ci.yml 文件

stages:
  - check
  - build

check_diff:
  stage: check
  script:
    - git diff --name-only origin/develop...HEAD > _gitlab_diff.txt
    - git diff --name-only HEAD~1 >> _gitlab_diff.txt
  artifacts:
    paths:
    - _gitlab_diff.txt
  only:
    refs:
    - merge_requests
    - develop

.generic_build_job:
  stage: build
  dependencies: 
    - check_diff
  before_script:
    - findstr /c:"%SOLUTION_DIR%" "_gitlab_diff.txt" > _check_%SOLUTION_FILE%.txt
    - for /f %%i in ("_check_%SOLUTION_FILE%.txt") do set size=%%~zi
    - if %size% == 0 exit 0
    - cd %SOLUTION_DIR%
  script:
    - '"%NUGET%" restore "%SOLUTION_FILE%"'
    - '"%MSBUILD%" /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "%SOLUTION_FILE%"'
  only:
    refs:
    - merge_requests
    - develop

MyApp1:
  variables:
    SOLUTION_DIR: "MyApp1/"
    SOLUTION_FILE: "MyApp1.sln"
  extends: .generic_build_job
  only:
    changes:
      - MyApp1/*

MyApp2:
  variables:
    SOLUTION_DIR: "MyApp2/"
    SOLUTION_FILE: "MyApp2.sln"
  extends: .generic_build_job
  only:
    changes:
      - MyApp2/*

我找到了使用批处理脚本的解决方法。

这是我的skip.bat:

findstr /c:%1 %2 >nul 2>&1
if not %errorlevel% == 0 exit 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上的 GitLab 运行程序并处理 &%ERRORLEVEL% 的相关文章

  • Gitlab:无法识别对等方的证书颁发者

    我在全新安装 gitlab 时遇到此错误 该消息如下所示 fatal unable to access https gitlab ci token email protected cdn cgi l email protection som
  • 区分大小写的字符串操作

    假设我们有一个变量 例如 set test This is a Test string 我们想要替换每个小写字母t与大写X如此期望的输出 This is a TesX sXring 我尝试使用字符串操作set test test t X 但
  • Windows批处理文件:在for循环中设置变量

    我有许多具有相同命名方案的文件 作为示例 四个文件分别称为 num 001 001 txt num 002 001 txt num 002 002 txt num 002 003 txt 第一组数字代表它来自哪个 包 第二组数字只是用来区分
  • 批处理文件中的 Powershell - 如何转义元字符?

    运行 Windows 7 当我复制文件在例程期间到外部磁盘文件备份 我使用 Powershell v2 从批处理文件 在副本文件上重新创建原始文件的所有时间戳 以下代码在大多数情况下都能成功运行 但并非总是如此 SET file 1 SET
  • 用于从多个目录复制和重命名文件的批处理文件

    我之前曾寻找过我的问题的答案 但到目前为止还没有具体的答案 看 使用xcopy将多个目录中的文件复制到一个目录 https stackoverflow com questions 585091 using xcopy to copy fil
  • Windows 批处理文件中的 SQL 语句

    有没有办法让Windows批处理文件直接输入SQL语句而不需要调用脚本 我希望批处理文件登录SQL 然后直接输入语句 EDIT 我正在使用 Oracle v10g 对于单个命令 您可以使用以下技巧 echo select from dual
  • 批处理中嵌套 IF ( IF ( ... ) ELSE( .. ) ) 语句

    我正在尝试写一个IF ELSE语句嵌套在另一个语句中IF陈述 这是我所拥有的 IF dirdive 1 IF DEFINED log ECHO DATE TIME gt gt log FOR R root1 G IN DO SET G G
  • 双击时将文件名传递给 Windows 批处理 (.bat) 脚本,以便它将以八度运行

    我是使用批处理脚本的新手 并且对八度音程有一定的经验 我有很多使用八度函数检查的数据文件 我正在尝试进行设置 以便我可以双击具有自定义扩展名的文件来直接打开八度函数 想想 当我双击这个文本文件时 它会在记事本中打开 为此 我写了一个非常基本
  • 读取txt文件中的每一行并使用windows dos命令分配变量

    我通过使用 Beyond Compare 命令行比较这 2 个文件夹 将文件从一个路径复制到 svn 工作副本 使用 Beyond Compare 进行比较后将生成报告 如果右侧存在任何额外文件 则应从 svn 存储库中删除 所以我使用下面
  • 批量设置变量=%变量:~1%是什么意思

    谁能解释一下是什么 1 在批处理文件中的以下语句中 我分配的值 variable到服务器名称并尝试过echo variable 我得到与输出相同的服务器名称 谁能解释一下下面的语句是如何工作的 set variable variable 1
  • 从 CMD 切换启用/禁用以太网适配器

    我正在尝试创建一个 bat文件 可以启用 禁用我的以太网适配器 但我对编码或 cmd 语法没有太多了解 我正在考虑使用netsh命令如下 IF Ethernet adapter is enabled GOTO disable ELSE GO
  • 在批处理脚本中发送 Windows 密钥

    我最近一直在使用SendKeys使用批处理脚本的函数 我已经了解如何在窗口中输入某些键 例如 Tab 键 SendKeys TAB 或者退格键 SendKeys BACKSPACE 但我一直尝试在不按Windows键的情况下输入它 不幸的是
  • 在 GitLab CI 中使用合并请求作业中的工件

    在我的项目中 我使用合并请求来测试构建 并在提交合并到主版本后进行部署 目前我的 gitlab ci yml好像 build stage build script yarn build artifacts paths public depl
  • 批处理:在特定程序中打开特定文件?

    当记事本是 txt 文件的默认程序时 如何告诉 Windows 在写字板中打开 C test test txt 接受的答案对我不起作用 我不确定这是因为我试图运行的程序 还是因为路径中有空格 即使我用引号引起来 或者其他原因 不管怎样 我可
  • 如何使用 Windows forfiles 命令的完整路径运行命令?

    我正在尝试运行以下命令 forfiles p Schemas m xsd c cmd c C Program Files x86 Microsoft SDKs Windows v10 0A bin NETFX 4 6 1 Tools xsd
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • Gitlab CI - 如何启动 Shared Runner

    我是 Gitlab CI 的新手 我已经配置了 gitlab ci yml 文件 并使用 CI Lint 它已经通过了验证过程 基于此文档 https gitlab com help ci quick start README 我可以看到应
  • 如何消除批处理文件动画中的闪烁? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 因此 我一直在批量制作一个假 GUI 以作为我正在做的 YouTube 评论的结尾 它基本上是一堆方框
  • 批量设置命令的输出和错误以分隔变量

    在Windows 7批处理 cmd exe命令行 中 我试图将命令的标准输出 stdout 和标准错误 stderr 重定向到单独的变量 因此第一个变量设置为输出 第二个变量设置为输出 变量设置为错误 如果有 而不使用任何临时文件 我已经尝
  • 无法从 Gitlab CI 访问私有 MySQL Docker 映像

    我一直在尝试将私有 自定义 MySQL 映像从我的 Docker Hub 存储库拉入 gitlab ci yml 管道作为服务 我添加了一个 before script 尝试使用我的用户名和密码 CI 变量 登录 dockerhub 失败的

随机推荐

  • Windows Phone 7 通过 wifi 接收 UDP 数据包(广播或单播)

    我已经看了好几天有关 Windows Phone 7 的各个论坛 但没有一个给我明确的答案 到目前为止 我还无法接收从通过 wifi 连接到 Windows Phone 7 设备 在模拟器上运行 的计算机发送的 UDP 数据包 既不是广播也
  • Uploadify:使用 scriptData 将表单的 ID 作为参数传递

    我需要能够使用 Uploadify 在一页上有多个上传输入 可能有数百个 上传 PHP 文件将根据用于提交文件的输入按钮的 ID 重命名上传的文件 因此它将需要该 ID 由于我将在一个页面上有数百个上传按钮 因此我想创建一个通用实例 因此我
  • 带有主查询数据变量的 MySQL 子查询

    好的 这里需要一位 MySQL 专家 我正在尝试编写一个查询 当有人对您之前评论过的项目发表评论时 该查询将充当通知系统 drinkComment 表非常简单 commentID userID drinkID datetime commen
  • Flex/bison,错误:未声明

    你好 我有一个问题 下面的程序返回一个错误 error Undeclared first use in function 为什么会出现这个错误所有令牌都被声明了 但是这个错误来了 任何人都可以帮助我 这里是 lex 和 yac 文件 谢谢
  • TortoiseHG 和 TortoiseSVN 一起玩得好吗?

    我先安装了TSVN 并使用了很长时间 然后我安装 T HG 当我右键单击时 我没有看到任何 TortoiseHG 有人有同样的问题吗 所有 T SVN 覆盖仍然存在 从版本 0 8 2009 07 01 发布 开始 TortoiseHg 支
  • 在.NET 中连接来自不同源数据库的两个数据表?

    如何在 NET 中连接来自不同源数据库的两个数据表 理想情况下 我可以手动创建两个查询并简单地连接到单个字段 在这种情况下 链接服务器和计划导入不是一个选项 我已经研究了数据关系对象 但是 如果我错了 请纠正我 这只适用于父子关系 我也遇到
  • WinDbg 在 MS 符号服务器上找不到 ntdll 的符号

    我正在尝试调试可执行文件 notepad exe 来自 Windows 10 发行版 并且需要来自 Microsoft 符号服务器的符号 ntdll pdb 但调试器返回错误 指出找不到指定的文件 0 000 gt reload Reloa
  • 我可以在 Schema.org 的一个项目范围中使用多个项目类型吗? [复制]

    这个问题在这里已经有答案了 我想知道是否可以在一个项目范围内使用多个项目类型 例如我现在有这个 div class wrapper p p p p div 当我在 Google 的 Web 开发人员工具中进行结构化数据测试时 它仅选取
  • Trirand jqGrid 未显示;类型错误:$(...).jqGrid 不是函数

    网格不显示 Firefox 控制台显示 类型错误 jqGrid 不是函数 ASP NET MVC 5 2 2 剃刀 jQuery 2 1 1 特兰德 jqGrid 4 6 0 我检查过其他类似的问题 每次问题看起来都不一样 要么是语法问题
  • 通过Spark SQL进行批量数据迁移

    我目前正在尝试通过 Spark SQL 将非常大的 MySQL 表的内容批量迁移到 parquet 文件中 但这样做时 即使将驱动程序的内存限制设置得更高 我在本地模式下使用 Spark 我也会很快耗尽内存 示例代码 Dataset
  • 如何在 Dart 中使用正则表达式?

    在 Flutter 应用程序中 我需要检查字符串是否与特定的正则表达式匹配 但是 我从应用程序的 JavaScript 版本复制的正则表达式always在 Flutter 应用程序中返回 false 我验证了regexr https reg
  • 尾随返回类型语法因 noexcept 说明符而失败?

    此代码按预期工作 void f noexcept 但在 GCC 4 7 2 中 以下操作会失败并出现错误 auto f gt void noexcept error expected initializer before noexcept
  • 在 C++ 中使用 std::bind 和 std::function 时出错[重复]

    这个问题在这里已经有答案了 我尝试在多元函数上尝试牛顿法的片段并使用std bind and std function 但我陷入了一个错误 错误 从 std Bind helper int gt type aka 进行转换 std Bind
  • NetworkOnMainThreadException android 活动[重复]

    这个问题在这里已经有答案了 我正在使用此代码来检索 android 活动中的网站数据 它抛出 android os networkonmainthreadexception try URL url new URL https enigmat
  • jQuery 中的内容文档

    我有以下 js 脚本来访问对象内的元素 SVG jQuery document ready function window load function var a document getElementById alphasvg var s
  • “未设置对象引用”错误

    我收到错误 对象引用未设置到对象的实例 关于下一个方法 private void alSave Click object sender EventArgs e alRecord WriteXml alRecord xml XmlWriteM
  • 当值更改时,获取 QTableWidget 中的 QComboBox 的先前值

    说我有一个QTableWidget每行都有一个QComboBox and a QSpinBox 考虑到我存储它们的值是QMap
  • 从彭博终端抓取新闻源

    我可以访问并开始学习如何使用彭博终端 我当前的项目要求我抓取彭博终端上与给定搜索条件相关的所有新闻标题和内容 例如 NI微软 我已经查看过 Bloomberg API 但它似乎只提供对股票 债券报价等市场数据的访问 而不是新闻文章 我现在很
  • Powershell:命令行参数中的冒号

    需要冒号的 Powershell commandlet 开关参数是怎么回事 考虑 Exchange 2010 管理 shell cmdlet移动ActiveMailbox数据库 http technet microsoft com en u
  • Windows 上的 GitLab 运行程序并处理 &%ERRORLEVEL%

    在我的 gitlab ci yml 中 我尝试使用 findstr 命令 findstr c SOLUTION DIR gitlab dif gt founded ref 如果 gitlab dif 中没有匹配 SOLUTION DIR 此