背景:
我们有一个Windows安装程序,只需安装并启动我们的自定义WinForms安装程序.此自定义安装程序执行实际安装:创建IIS Web应用程序,复制dll,安装数据库等...
我们现在想要编写一些自动验收测试,其中包括使用与我们在生产中使用相同的安装程序来安装软件.我们希望每天晚上在专用机器上运行验收测试,然后作为持续集成管道的一部分.
问题:
事实证明,自动化WinForms安装程序很困难.我们不需要特殊的安装代码进行验收测试.
题:
您有多聪明的建议将部署过程集成到自动化测试中?
我怀疑使用WinForms作为安装程序的决定是一个糟糕的选择 - 特别是因为生成的应用程序没有明确地将UI代码与真正的安装代码分开.
installer continuous-integration windows-installer winforms continuous-deployment
在tfs.visualstudio.com上使用托管的Team Foundation Service,可以在构建定义中选择"将构建输出复制到服务器",这将创建drop文件夹的zip,可以通过团队Web访问通过https下载.我真的需要自动下载这个drop,所以我可以将输入链接到我的构建管道中的下一个阶段.
不幸的是,丢弃URL并不明显,但可以使用TfsDropDownloader创建.
TL; DR - 我无法让TfsDropDownloader工作,我希望其他人使用此工具或类似的方法从https://tfs.visualstudio.com成功下载drop
使用命令行TfsDropDownloader.exe我可以这样做:
TfsDropDownloader.exe /c:"https://MYPROJECTNAME.visualstudio.com/DefaultCollection" /t:"ProjectName" /b:"BuildDefinitionName" /u:username /p:password
Run Code Online (Sandbox Code Playgroud)
...获取一个空的zip文件,其中包含上一次成功构建的正确构建标签名称,例如BuildDefinitionName_20130611.1.zip
在调试器中运行源代码,这是因为为下载而生成的URL:
https://tflonline.visualstudio.com/DefaultCollection/_apis/resources/containers/804/drop/BuildDefinitionName_20130611.1.zip
Run Code Online (Sandbox Code Playgroud)
..返回不受支持的application/json的内容类型.应用程序吞下此异常,但在创建空zip文件之前不会.
Team Foundation Service上的REST API是否可能以某种方式更改,因此生成的URL不再正确?
请注意,我使用的是我的Team Foundation Service帐户中定义的"备用凭据"(即不是我的实时ID) - 使用其他任何内容都可以获取TF30063:未经授权.
build-automation continuous-integration continuous-deployment azure-devops
我正在进行有关持续集成工具的研究,并从中受益。对于我的研究,我正在研究以下工具:
现在,我不会为您带来所有要求和好处。但是到目前为止,除以下这些以外,我在这些工具之间没有发现太多差异:
我想知道是否有些必须选择持续集成工具的人也可以分享那里的经验,为什么他们选择该工具,以及在选择我没有介绍的内容之前是否存在一些值得考虑的差异。
现在,由于有扇入扇出支持和连续交付管道的可视化,我倾向于GoCD的人对这个工具的支持有经验吗?
谢谢,
continuous-integration continuous-deployment continuous-delivery go-cd gitlab-ci
我在 VisualStudio.com 的 tfs Git 存储库中有私有代码。
我想不断地将它部署到 Heroku,因为代码被返回。
最简单/最简单的方法是什么?
例如,VisualStudio.com 是否支持推送到 Heroku git 存储库?
Heroku 是否支持监控除 GitHub 之外的任何其他 git 存储库?
还有其他创造性的解决方案吗?我有很多人推送到 VisualStudio 存储库,所以我想避免每个人都必须配置两个推送点……如果可能的话。
我已在travis-ci.org上将Travic-CI添加到我的github项目中。.travis.yml文件如下所示:
language: csharp
solution: MyProject.sln
Run Code Online (Sandbox Code Playgroud)
因此,当我转到
https://travis-ci.org/username/MyProject/builds/somenumber时
,它会将构建显示为通过。
我也可以看到日志文件,但无处可以看到生成的文件(.exe)。
我是否需要向.travis.yml中添加任何内容,以便在travis-ci.org上我的项目页面上将.exe作为工件显示/发布为工件?
还是我必须在其他地方拨动开关?
还是不认为特拉维斯这样做?
注意:
在travis-ci.org上显示可执行文件(这样我就可以从github链接到它了),而不是像发布到github那样自动地将其发布,尽管那也可以。
continuous-integration artifact continuous-deployment travis-ci
我可以使用以下命令归档ios项目
cordova build ios --device --debug
和
cordova build ios --device --release
但是,当我尝试做同样的事情时,jenkins我会得到以下错误.
11:08:01 SecKey API returned: -25308, (null)/Users/Jenkins/Library/Developer/Xcode/DerivedData/GRC_Pulse-ebufuetkmalmfxbiegclmzuryhrm/Build/Intermediates/ArchiveIntermediates/GRC Pulse/InstallationBuildProductsLocation/Applications/GRC Pulse.app: unknown error -1=ffffffffffffffff
11:08:01 Command /usr/bin/codesign failed with exit code 1
11:08:01
11:08:01 ** ARCHIVE FAILED **
11:08:01
11:08:01
11:08:01 The following build commands failed:
11:08:01 CodeSign /Users/Jenkins/Library/Developer/Xcode/DerivedData/GRC_Pulse-ebufuetkmalmfxbiegclmzuryhrm/Build/Intermediates/ArchiveIntermediates/GRC\ Pulse/InstallationBuildProductsLocation/Applications/GRC\ Pulse.app
11:08:01 (1 failure)
11:08:01 Error: Error code 65 for command: xcodebuild with args: -xcconfig,/Users/Jenkins/projects/grc-pulse-hybrid-custom/platforms/ios/cordova/build-debug.xcconfig,-workspace,GRC Pulse.xcworkspace,-scheme,GRC Pulse,-configuration,Debug,-destination,generic/platform=iOS,-archivePath,GRC Pulse.xcarchive,archive,CONFIGURATION_BUILD_DIR=/Users/Jenkins/projects/grc-pulse-hybrid-custom/platforms/ios/build/device,SHARED_PRECOMPS_DIR=/Users/Jenkins/projects/grc-pulse-hybrid-custom/platforms/ios/build/sharedpch
Run Code Online (Sandbox Code Playgroud) xcode continuous-integration continuous-deployment ios jenkins
我在VSTS中建立了一个版本,该版本在存储库中的每次提交时都会触发。一切都很好,只有一个例外。
我们不会在每次提交时发布新版本的nuget软件包。因此,我们的nuget push构建步骤以http状态代码409失败。我已经配置了该步骤,以便无论如何它都可以继续。
由于该错误,构建仅“部分成功”。我正在使用一个构建徽章,该徽章也声明相同(无上下文)。
如何告诉VSTS忽略409或仅替换现有软件包(在nuget.org上)?
使用我的Azure网站上的“连续交付”刀片:
我在VSTS中设置了构建和发布定义。
源代码控制正确触发了构建,然后在此之后运行发行版。一切都很好。
我不了解Build和Release定义是如何连接的。我看不到任何一个指向另一个的属性。它们如何链接?
第2部分让我感到困惑的是,当我查看Build定义中的Tasks时
没有Deploy任务-这对我来说确实有意义,因为该Deploy任务显示在Release定义中(似乎合乎逻辑):
但是,我看到在Build定义方面,我也可以直接添加Deploy任务。
将Deploy任务作为Build定义的一部分而不是Release定义的一部分是什么意思?
continuous-integration azure continuous-deployment azure-devops
是否可以在大厅中通过on_failure执行多个任务?我找不到文档或其他我想做的事情的例子
on_failure:
- aggregate:
- put: slack-notification
- put: mark-pr-as-failed
是否可行,还是应该结合以上两个步骤来创建新任务?
我有一个经典的环境。设置如下:
我有2个分支:Develop和Master。
Azure DevOps中有什么方法可以设置以下规则:
在dev环境(在azure devops的发布管道中定义)上成功部署后,------>将自动创建一个pull request将开发合并到Master中。
或另一个:如果成功执行Build了开发分支-------> 自动
创建一个pull request将开发合并到Master中。
任何帮助将不胜感激。
git continuous-integration continuous-deployment azure-devops azure-pipelines