标签: appveyor

调用 `cdb.exe` (windbg) 以非交互方式运行,并在崩溃时生成回溯?

我有一个与 travis-ci 一起使用的 C++ 项目。现在,我使用 boost.build 构建它,在 travis 上,当我运行单元测试时,我通过 来完成它gdb,以便在发生崩溃时获得回溯。

为了以gdb非交互方式执行此操作,我在命令行上像这样调用它:

gdb -return-child-result -batch -ex "run" -ex "thread apply all bt" -ex "quit" --args ./${file}
Run Code Online (Sandbox Code Playgroud)

${file}我的可执行文件在哪里。

这告诉它:

  • 启动进程
  • 适用bt于所有线程,它在发生崩溃时发出回溯,如果没有崩溃也不会执行任何操作。
  • 最后它导致gdb退出,并以孩子的退出代码退出。

现在我想在 appveyor 上做同样的事情。

Boost 构建似乎在 appveyor VM 中完美地开箱即用,因此向他们致敬。

不过,我在努力弄清楚如何配置cdb,控制台表弟windbg。它似乎挂在我的构建日志中。我在网上找到的大多数示例都与检查小型转储文件有关,而不是启动进程并在运行时对其进行调试。

我目前正在这样调用cdb(来自 appveyor powershell 脚本):

cdb -c "$$><cdb_script.txt" -o $file.fullName
Run Code Online (Sandbox Code Playgroud)

我的cdb_script.txt样子

.sympath srv*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols;
.reload;
~* k 99;
q
Run Code Online (Sandbox Code Playgroud)

我基本上是从我用谷歌搜索的各种东西拼凑起来的,包括

我真的希望找到更好的文档或关于如何具体做到这一点的例子。

我现在得到的错误是:

Microsoft (R) …
Run Code Online (Sandbox Code Playgroud)

c++ continuous-integration windbg appveyor

6
推荐指数
1
解决办法
1014
查看次数

使用环境变量在AppVeyor构建中标记Git存储库

我试图在AppVeyor成功构建之后标记存储库.我已阅读以下资源:

但我不知道如何在AppVeyor环境变量中替换.这是我正在使用的Yaml:

on_success:
  - git config --global credential.helper store
  - ps: Add-Content "$env:USERPROFILE\.git-credentials" "https://$($env:access_token):x-oauth-basic@github.com`n"
  - git tag -a release/$($env:APPVEYOR_BUILD_VERSION)
  - git push origin release/$($env:APPVEYOR_BUILD_VERSION)
Run Code Online (Sandbox Code Playgroud)

这会导致AppVeyor构建日志中出现以下错误

git config --global credential.helper store
Add-Content "$env:USERPROFILE\.git-credentials" "https://$($env:access_token):x-oauth-basic@github.com`n"
git tag -a release/$($env:APPVEYOR_BUILD_VERSION)
fatal: 'release/$($env:APPVEYOR_BUILD_VERSION)' is not a valid tag name.
Command exited with code 128
Run Code Online (Sandbox Code Playgroud)

鉴于powershell Add-Content行应该按照示例工作,你应该如何将变量替换为git命令?

git yaml environment-variables appveyor

5
推荐指数
1
解决办法
753
查看次数

$Env:APPVEYOR_REPO_TAG powershell 变量在非标签上评估为真

我有一个appveyor.yml包含片段的定义

init:
- ps: $Env:LABEL = If ($Env:APPVEYOR_REPO_TAG) { "Tag" + $Env:APPVEYOR_REPO_TAG_NAME } else { "nontaglabel" }
Run Code Online (Sandbox Code Playgroud)

稍后尝试访问时%LABEL%,在非标记提交时,它包含纯字符串“Tag”。我希望它包含字符串“nontaglabel”。

在标签提交时,它包含带有标签名称作为后缀的预期字符串 Tag。

如何将环境变量“nontaglabel”分配给非标签提交的环境变量?

powershell appveyor

5
推荐指数
1
解决办法
248
查看次数

AppVeyor 中的 UTF-8,Python 3.6

一、总结

我不知道如何为 AppVeyor 构建使用非 ascii 符号。


2. 设置

我的简单SashaAppVeyorEncoding.py文件:

print('???? ?????????!')
Run Code Online (Sandbox Code Playgroud)

我的简单appveyor.yml文件:

environment:

  matrix:

    - PYTHON: "C:\\Python36-x64"
      PYTHON_VERSION: "3.6.3"
      PYTHON_ARCH: "64"
      PIP: "C:\\Python36-x64\\Scripts\\pip"

platform: x64

build_script:

  - cmd: "%PYTHON%\\python SashaAppVeyorEncoding.py"
Run Code Online (Sandbox Code Playgroud)

我以 UTF-8 编码保存的两个文件。


3. 预期行为

如果我SashaAppVeyorEncoding.py在终端或解释器SublimeREPL 中运行文件,我会得到:

D:\SashaPythonista>python SashaAppVeyorEncoding.py
???? ?????????!
Run Code Online (Sandbox Code Playgroud)

如果我的SashaAppVeyorEncoding.py文件不包含西里尔符号:

print('Sasha superior!')
Run Code Online (Sandbox Code Playgroud)

AppVeyor 构建成功通过

Build started
git clone -q --branch=master https://github.com/Kristinita/SashaPythonista.git C:\projects\sashapythonista-7l3yk
git checkout -qf 3a0393a5b9548a5debabebfc5e28d17f3000a768
%PYTHON%\python SashaAppVeyorEncoding.py
Sasha superior!
Discovering tests...OK
Build success
Run Code Online (Sandbox Code Playgroud)

4. 实际行为 …

python unicode python-3.x appveyor python-3.6

5
推荐指数
1
解决办法
538
查看次数

将应用程序设置部署到azure功能应用程序

需要帮助找到一种方法来部署我的应用程序的自定义应用程序设置 - 1.使用我的.funproj创建的appsettings.json(vs 2015年的工具)2.appveyor的环境变量3.任何其他技巧

我想要的是避免在门户中手动设置这些东西并让它们受源控制(更好 - 使用部署,例如 - appveyor的安全环境变量)

提前致谢!以下是我目标的门户网站设置示例 -

在此输入图像描述

appveyor的环境变量设置示例 -

environment:
    SolutionDir: $(APPVEYOR_BUILD_FOLDER)\
    my_var1: value1
    my_var2: value2
Run Code Online (Sandbox Code Playgroud)

函数应用程序中的示例用法(run.csx) -

using System;
using System.Runtime.InteropServices;
using System.Runtime.Remoting.Messaging;

public static void Run(string input, TraceWriter log)
{
    log.Info($"C# manually triggered function called with input: {input}");
    log.Info($"This is a custom setting: {GetEnvironmentVariable("my_var1")}");
}

public static string GetEnvironmentVariable(string name)
{
    return name + ": " +
        System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
}
Run Code Online (Sandbox Code Playgroud)

azure appveyor azure-functions

5
推荐指数
1
解决办法
1681
查看次数

如何在本地运行appveyor.yml脚本?

我想在windows中安装mlpack,我在github上找到了appveyor.yml脚本.而不是手动跟踪和执行每个步骤,有没有办法在我的笔记本电脑中运行此脚本?比如,类似于bat文件的东西?

appveyor

5
推荐指数
1
解决办法
2590
查看次数

Appveyor似乎忽略了infomational版本

我正在尝试通过AssemblyInformationalVersion对我的NuGet包进行版本控制,同时保持AssemblyVersion相同.我在.nuspec中使用tag $ version $.

但是,如果我使用appveyor构建NuGet,它会继续使用AssemblyVersion.

我的appveyor.yaml:

version: 1.0.{build}
pull_requests:
  do_not_increment_build_number: true
configuration: Release
assembly_info:
   patch: true
   file: '**\AssemblyInfo.*'
   assembly_file_version: '{version}'
   assembly_informational_version: '{version}'
before_build:
   nuget restore
build:
   publish_nuget: true
   parallel: true
   verbosity: minimal
deploy:
   provider: NuGet
   api_key: <SKIPPED>
Run Code Online (Sandbox Code Playgroud)

我的.nuspec摘录

<metadata>
 ....
    <version>$version$</version>
 ....
</metadata>
Run Code Online (Sandbox Code Playgroud)

UPD:我检查了信息版本正确设置为文件: 信息版

此外,我不知道它是否相关,但它似乎忽略了我的 <files>指令并把所有内容都放入lib而不是analyzers\dotnet\cs

nuget-package appveyor

5
推荐指数
1
解决办法
122
查看次数

在 AppVeyor 上运行 Coverlet 并显示消息“vstest.console process failed to connect to testhost process”

当我尝试运行床单AppVeyor使用以下命令:

dotnet test GeneticSharp.Domain.UnitTests -f netcoreapp2.0 /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

vstest.console process failed to connect to testhost process after 90 seconds. This may occur due to machine slowness, please set environment variable VSTEST_CONNECTION_TIMEOUT to increase timeout.

Incrementing VSTEST_CONNECTION_TIMEOUT did not solve.

The command runs with no problem on my local Windows and Mac machines.

code-coverage appveyor .net-core

5
推荐指数
0
解决办法
600
查看次数

AppVeyor CI:对于 Linux 使用构建脚本,对于 Windows 使用 MSBuild

设想

我在 AppVeyor 上有一个 CMake 项目,我正在尝试将 Linux 版本添加到其中。我的 Windows 构建在脚本中使用 CMake 生成器before_build来生成使用build: project.

我想用它build_script:来执行我的 Linux 构建。但是,当我将构建脚本添加到矩阵时,我收到错误:

生成阶段设置为“MSBuild”模式(默认),但在根目录中找不到 Visual Studio 项目或解决方案文件。如果您不构建 Visual Studio 项目,请将构建模式切换为“脚本”并提供自定义构建命令。

尝试过的解决方案

我尝试将build: off和添加build: Script到矩阵中,但是这些选项都没有帮助。我是为 Windows 定义脚本并build_script在两个平台上使用的唯一选择吗?

例子

我的appveyor.yml文件看起来像这样

version: 'build-{build}-{branch}'

image:
  - Visual Studio 2017
  - Ubuntu

platform:
  - x64

configuration:
  - Release
  - Debug

environment:
  APPVEYOR_YML_DISABLE_PS_LINUX: true

install:
  - ps: .\install-dependency.ps1
  - sh: ./install-dependency.sh

for:
-
  matrix:
    only:
      - image: Ubuntu
  before_build: …
Run Code Online (Sandbox Code Playgroud)

appveyor

5
推荐指数
1
解决办法
1132
查看次数

使用 API 以编程方式在 Azure DevOps Pipeline 中添加和更新测试

我正在将我们的一个项目转换为使用 Azure DevOps 而不是 AppVeyor 进行 CI。作为构建的一部分,我们使用自定义测试运行器来执行某些测试。

在 AppVeyor 中运行时,我们直接从测试运行器调用 REST API,以通知构建服务器正在运行的测试并更新其状态。这非常简单,如添加测试更新测试文档的 REST 部分所示,并且使我们能够很好地集成到 AppVeyor 的 UI 中。

我一直在研究如何在 Azure DevOps 中做同样的事情。我找到了 REST API 的一部分,用于添加更新测试结果。从 API 文档中尚不完全清楚这是否是我在运行管道期间使用的,或者是否适用于其他场景。我已经搜索过其他人试图做同样的事情,但到目前为止没有任何运气。大多数示例都讨论上传测试结果文件,但这似乎是发布测试结果的一种相当间接的方式,特别是因为我想在运行之前注册所有测试,然后在完成时更新其状态。

有没有人有关于在构建期间使用 Azure DevOps API 发布测试结果的任何指示或示例?


详细解决方案:

在梅林梁的回答指导下,我现在已经开始工作了。

步骤 1.首先,我创建了一个新的测试运行,这是我在构建作业(称为 )结束时Build使用 powershell 脚本执行的:

  - powershell: |
      $url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/test/runs?api-version=5.0"
      $body = @{
          "name" = "IntegrationTests"
          "build" = @{
              "id" = $env:BUILD_BUILDID
          }
          "isAutomated" = $TRUE
          "state" = "InProgress"
      }
      $json = $body | …
Run Code Online (Sandbox Code Playgroud)

tfvc appveyor azure-devops azure-pipelines

5
推荐指数
1
解决办法
1736
查看次数