我们在Windows上使用Jenkins 1.504 .
我们需要在不同的子网络中拥有Master和Slave,其间有防火墙.
我们不能拥有任何任何端口防火墙规则,我们必须指定确切的端口号.
我知道Master正在听的端口.
我还看到Slave从每次运行动态分配的任意端口打开与Master的连接,而Master端口上的端口也是任意的.
我可以通过在管理Jenkins>配置全局安全性> JNLP从属代理的TCP端口中指定它来修复Master的端口.
如何修复Slave端口?
更新:找到此处描述的连接机制: https: //wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI#JenkinsCLI-Connectionmechanism
我认为它可能对我们有用,但仍然会更好地拥有固定2固定端口连接.
我想在Powershell中使用后台作业.
如何在ScriptBlock定义时评估变量?
$v1 = "123"
$v2 = "asdf"
$sb = {
Write-Host "Values are: $v1, $v2"
}
$job = Start-Job -ScriptBlock $sb
$job | Wait-Job | Receive-Job
$job | Remove-Job
Run Code Online (Sandbox Code Playgroud)
我得到$ v1和$ v2的空值.如何让它们在(通过)脚本块中进行评估,从而对后台作业进行评估?
只是想知道.NET构建版本化的最佳方法是什么?
我用:
我想设置版本:
理想的版本号将允许跟踪已安装的软件回到确切的源代码.
就像是:
<Major>.<Minor>.<TFS_changeset_number>
Run Code Online (Sandbox Code Playgroud)
我希望在解决方案附近的版本控制中存储一些简单文本\ XML文件的前两部分版本,因为我相信它们应该共存.开发人员将手动更新此文件(例如,遵循语义版本控制方法).每个构建都将读取此版本文件,从调用CI工具获取3d版本的部分,并使用该版本更新所有必需的文件.
实现这个的最佳方法是什么?
我过去曾使用过几种方法:
1)执行此版本的NAnt\MsBuild包装器,然后调用MsBuild获取解决方案.它可以从CI工具(Jenkins\TeamCity\etc)调用.
问题 - 当我构建解决方案两次时,与TFS门控签入的集成很难看.
2)自定义TFS构建过程模板
问题 - 它不是那么简单,并导致一些合并工作TFS升级.此外,在门控签到中还不存在变更集编号,因此我们只能使用先前的变更集ID.
3)解决方案中的单独MsBuild项目,它仅执行此版本控制任务,并配置为首先在VS解决方案的项目构建顺序中运行.
问题 - 需要在所有其他项目(包括所有未来的项目)中引用这个元项目,这些项目感觉很难看
我知道不同的MsBuild和TFS扩展包可以简化更新.这个主题不是关于哪一个是最好的.问题是方法论而不是技术问题.
我还认为,如果微软在其标准TFS构建模板中包含版本控制功能,那将是理想的选择.其他CI工具已经具有此功能(AssemblyInfo修补程序).
更新11/09/2014
我决定明确表达符合敏捷\持续交付最佳实践的版本控制原则:
1)能够再现任何历史建筑
2)由于1)并且根据CD原则,所有内容(源代码,测试,应用程序配置,环境配置,构建\包\部署脚本等)都存储在版本控制下,因此具有分配给它的版本
3)版本号与其适用的源代码紧密存储在一起
4)人们可以根据他们的业务\营销逻辑更新版本
5)该版本只有一个主副本,用于自动构建\包装过程的所有部分
6)您可以轻松地说出目标系统上当前安装了哪个版本的软件
7)已安装软件的版本必须明确标识用于构建它的源代码
8)比较版本比较低,哪些更高,以控制允许哪些升级\降级方案及其实现细节是非常简单的
更新15/09/2014
请看下面我自己的答案.
我很幸运能找到满足我所有要求的解决方案!
我们使用jetBrains TeamCity持续集成服务器进行构建.
我们在TeamCity中有几十个不同的项目,并希望从他们的开发质量方面看到他们之间的一个大局,找出哪些项目缺乏质量和哪种意义.我们使用单位测试覆盖率,圈复杂度,可维护性指数,重复项,缺陷率等指标...
我们从测试工具收集TeamCity的指标,或者:
[##teamcity[buildStatisticValue key='<valueTypeKey>' value='<value>']所以我们在TeamCity中获得了它们,并且可以在每个项目图表上看到它们.我们甚至可以通过REST协议以XML或JSON格式将它们从TeamCity中取出.
我们的目标是了解所有项目的整体情况.这里有两个例子表是我们希望看到的:
或者它可以是具有类似方法的二维图表.
所以,问题是:
是否有这样的现有仪表板工具,可以显示描述的表和/或图表?单独的应用程序与TeamCity紧密集成,还是TeamCity的插件?
谢谢!
我正在尝试在PowerShell中获取Java版本.版本字符串打印到stderr,所以我试图将其重定向到stdout并将其分配给字符串变量.
我收到以下奇怪的错误:
PS P:\> & java -version 2>&1
java.exe : java version "1.7.0_25"
At line:1 char:2
+ & <<<< java -version 2>&1
+ CategoryInfo : NotSpecified: (java version "1.7.0_25":String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
没有重定向的呼叫(2>&1)给出了这个:
PS P:\> & java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我认为这里的Java是无关紧要的,对于任何其他程序打印字符串到stderr也会发生同样的情况.
我使用的PowerShell版本是2.0. …
我们正在使用SonarQube 5.5(迄今为止最新).
我们的项目包含许多遗留代码,这些代码无法通过我们所需的质量门,因此我们决定忽略已经存在的技术债务,但要严格对待新的变更.
因此,我们正在享受泄漏概念和默认质量门,仅考虑新的变化.
我们使用持续集成和持续交付,因此我们为每个CI构建运行SonarQube分析,以便能够立即向开发人员反馈他们的更改是否未通过质量门,因此问题不会留到sprint结束或累积新的技术债务.
我们将Leak Period设置为previous_version,因为我们每次运行都会增加版本号,但据我所知,在我们的情况下,它可以设置为previous_analysis并具有相同的效果.
这种方法的问题在于下一个好的提交将清除项目的状态(绿色,是红色),因为对最后一次提交的分析将通过质量门.虽然代码已包含先前提交中引入的问题.
如果将"泄漏期间"设置为固定日期\版本(自定义日期或A版本选项),则将对累积提交进行分析,并且单个"错误"提交可能会被忽视,从而导致周期后期出现问题.所以它不满足"直接"要求.想象一下,在一个固定的日期\版本之后,有5个相同大小的提交 - 4个来自"好"的开发人员跟随TDD所以100%覆盖率,1个来自"坏"的人,其变化覆盖率为0%.平均而言,它将通过默认条件"新代码的覆盖率不低于80%",但实际上我们希望尽快向这些"坏"人提供反馈,以便他们改进他们的实践.
如果将"泄漏期间"设置为滚动分析前的天数,则自上次"错误"提交后经过此天数后,门的状态将立即清除,而代码中仍可能存在问题.
我们需要能够分析单个提交(类似于SQ中的"previous_version"泄漏期选项).但是如果最后一次提交通过QG而前一次提交失败,我们应该一起分析它们以查看最后一次提交是否实际修复了前一次提交的问题,以便整个项目可以被视为已通过.
因此,实质上我们应该分析自上次成功分析以来的所有提交
泄漏期没有这样的选择.有没有其他方法来实现这一目标?
continuous-integration software-quality continuous-delivery sonarqube
有没有办法在DataDog中监控docker容器的磁盘使用情况?
我可以在 DataDog Web 中查看容器的所有 CPU、RAM 和 IO 指标。
但我看不到任何与磁盘空间相关的指标。
他们的页面https://docs.datadoghq.com/integrations/docker/介绍了:
docker.disk.used (now reported as docker.data.used)
docker.disk.free (now reported as docker.data.free)
docker.disk.total (now reported as docker.data.total)
Run Code Online (Sandbox Code Playgroud)
我在仪表板 > Docker 和指标 > 资源管理器中都找不到这些
我是 DataDog 的新手,所以这里可能遗漏了一些明显的东西。
我正在开发一个 NuGet 包并在 github.com 上保持开源
我安装后的包需要在 VS 解决方案中完成一些配置步骤,我在 github 上的 README.md 文件中记录了这一点。
我想在 NuGet 包中引用这个 README.md 文件,以便人们知道安装包后要做什么。
我已<projectUrl>在我的.nuspec 中指定文件中指向我在 github 上的 Git 存储库。但是对于用户来说,他们需要单击它来阅读文档并不明显。
我想让用户按照链接阅读完整文档,大声而清晰。最好有一个超链接,例如在.nuspec文件的<description>字段中,因此它在以下位置显示为超链接:
我尝试了不同的方法来添加链接,例如 XML 转义<和>as <and>但它没有将其显示为链接,而只是作为 html 文本。
我在Jenkins作业的后期构建步骤中使用以下代码:
evaluate(new File("Set-BuildBadge.groovy"));
Run Code Online (Sandbox Code Playgroud)
所以它成功运行一个脚本,如果它不包含的功能.
如果在脚本中我定义了一个函数,例如:
def addSummaryWithText(Icon, Text) {
manager.createSummary(Icon).appendText(Text, false)
}
...
addSummaryWithText("installer.gif", "Project: " + ProjectName)
Run Code Online (Sandbox Code Playgroud)
然后我收到以下错误:
致命错误:类文件中的非法类名"Set-BuildBadge $ addSummaryWithText"Set-BuildBadge $ addSummaryWithText java.lang.ClassFormatError:类文件中的非法类名"Set-BuildBadge $ addSummaryWithText"在java.lang.ClassLoader中的Set-BuildBadge $ addSummaryWithText .defineClass1(原生方法)......
我没有得到GroovyShell.evaluate如何工作.谁能帮我?
我们正在使用VSTS来构建我们的VS解决方案.
有没有办法定义自定义构建步骤,例如PowerShell脚本,它创建一个新变量以传递给进一步的构建步骤?
在MSDN中没有任何关于它的内容:https: //msdn.microsoft.com/Library/vs/alm/Build/scripts/variables
jenkins ×2
powershell ×2
.net ×1
azure-devops ×1
background ×1
containers ×1
dashboard ×1
datadog ×1
docker ×1
firewall ×1
function ×1
groovy ×1
java ×1
jobs ×1
metrics ×1
msbuild ×1
nuget ×1
nuget-spec ×1
nuspec ×1
port ×1
rest ×1
scriptblock ×1
slave ×1
sonarqube ×1
start-job ×1
teamcity ×1
tfs ×1
version ×1
versioning ×1
wix ×1