背景.我的组织使用Maven,Bamboo和Artifactory来支持持续的集成过程.我们依靠Maven的SNAPSHOT限定符来帮助管理Artifactory中的存储(转出旧的SNAPSHOT构建),并帮助保持跨团队集成的最新状态(Maven在每个构建时自动检查SNAPSHOT依赖项的更新).
问题.我们面临的挑战之一是在继续使用SNAPSHOT的同时正确地推动从环境到环境的构建.假设测试人员将1.8.2-SNAPSHOT版本部署到功能测试环境中,并且在Subversion中的版本为1400.我们也说它通过了功能测试.当测试人员决定从Artifactory将1.8.2-SNAPSHOT拉入性能测试环境时,开发人员可能已经对Subversion进行了更改,因此Artifactory中的实际二进制文件处于不同的转速.在使用SNAPSHOT版本时,我们如何确保转速不会从我们下面改变?
约束.我们显然不希望在不知不觉中部署不同的构建.我们也不想从源代码重建,因为我们想要测试我们在功能测试中测试的性能测试中的确切二进制文件.
我们考虑过的方法.我们想要用第四个组件标记版本,比如1.8.2.1400,其中第四个组件是Subversion rev.(作为一个附带问题,是否有一个Maven插件或其他自动执行此操作的东西?)但是如果我们这样做,那么基本上我们失去了SNAPSHOT功能,因为Maven和Artifactory认为这些是不同的版本.
我们正在使用Scrum,因此我们很早就部署到测试环境(比如第二天左右).我不认为在开发周期的早期删除SNAPSHOT限定符是有意义的,因为我们再次失去了SNAPSHOT的好处.
很高兴知道其他组织如何解决这个问题.
我在Bamboo中创建了一个指向MSDeploy可执行文件的构建器.我想在部署新网站之前备份当前的网站.
这是我运行的命令行:"C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"-verb:sync -source:contentPath ="Default Web Site\MyService",computerName ="myserver" -dest:package ="MyService_backup_before_43.zip"-enableLink:AppPoolExtension
所以我设置了一个新的MSDeploy构建器指向"C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"然后我选择我的构建器为MSDeploy.
参数是:-verb:sync -source:contentPath ="Default Web Site\MyService",computerName ="myserver"-dest:package ="MyService_backup_before_43.zip"-enableLink:AppPoolExtension
但是,MSDeploy一直在抱怨:无法识别的参数'" - source:contentPath ="Default'.所有参数必须以" - "开头.
关于参数线的竹子明显地试图变得聪明.但是我需要它来保持双引号(")它们在哪里.
我已经尝试了我能想到的单引号和双引号的每一种组合,即在所有参数之前,只在具有空格的那些之前,或者仅在具有引号的那些之前.
有人知道怎么让这个工作吗?
我一直试图让Bamboo使用代码测试.我正在使用codeception来测试symfony项目中的代码.
经过一些研究,我发现了一篇关于如何使用代码设置Jenkins的文章.
一旦阅读,我发现我应该使用Ant来运行运行测试的代码命令.
问题是我真的不知道放在哪里.本文解释了新Ant任务的所有字段,但似乎没有任何效果.
有人可以帮帮我吗?
在使用Bamboo构建期间,我们创建文件/var/atlassian/bamboo/xml-data/build-dir/T4-TGDP-RD/release/dev_patch_release.tar.bz2.存在此文件,使用命令行进行检查.
在'工件定义'我有以下模式:**/release/*.bz2.
但不幸的是,在构建完成后,在Bamboo - > Build - > Artifact中No artifacts have been found for this build result..
同时,我在**/extra/build/logs/*.xmlJUnit成功解析的结果中进行了单元测试.
所以,我还创建了另一个工件模式**/extra/build/logs/*.xml- 仍然没有看到它,但JUnit解析它.
如何dev_patch_release.tar.bz2使用Bamboo 创建工件?
Bamboo构建日志:
simple 08-May-2014 23:11:33 Build Dev Patch - Release and Deploy #17 (T4-TGDP-RD-17) started building on agent Agent2
simple 08-May-2014 23:11:33 Build working directory is /var/atlassian/bamboo/xml-data/build-dir/T4-TGDP-RD
simple 08-May-2014 23:11:33 Executing build Dev Patch - Release and Deploy #17 (T4-TGDP-RD-17)
simple 08-May-2014 23:11:33 Starting task 'Source Code …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Bamboo中的maven构建mulesoft代码.Build是成功的,但现在给出如下错误.我正在使用Bamboo 6.5.0和jdk 1.8.使用Maven 3.错误详细信息如下,我的pom.xml,settings.xml也是如此!任何投入赞赏!
build 01-Oct-2018 11:46:02 Caused by: org.apache.maven.plugin.MojoExecutionException: NoFileAssignedException
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.java:152)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.execute(InstallMojo.java:108)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
build 01-Oct-2018 11:46:02 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
build 01-Oct-2018 11:46:02 ... 20 more
build 01-Oct-2018 11:46:02 Caused by: org.apache.maven.shared.transfer.project.NoFileAssignedException: The packaging plugin for this project did not assign a main file to the project but it has attachments. Change packaging to 'pom'.
build 01-Oct-2018 11:46:02 at org.apache.maven.shared.transfer.project.install.internal.DefaultProjectInstaller.install(DefaultProjectInstaller.java:116)
build 01-Oct-2018 11:46:02 at org.apache.maven.plugins.install.InstallMojo.installProject(InstallMojo.java:140)
build 01-Oct-2018 11:46:02 ... …Run Code Online (Sandbox Code Playgroud) 我有一个简单的计划,只有一个简单的工作.
任务:
通过四个步骤,我的实用程序生成带有屏幕截图的测试报告.该报告包含图像的绝对链接.(例如:) onclick="window.open('./Screenshots/66ef3a03-8b82-4b40-b49d-b0155e273738.png');return false;".
如果我在本地计算机上打开报告,报告工作正常,但在Bamboo上我收到错误"找不到页面",因为Bamboo没有收集"Screenshots"文件夹.
如何设置工件定义以收集带文件的文件夹?
PS我尝试设置\*.*复制模式,但Bamboo只收集文件(没有文件夹和子文件夹)
我在Bamboo中使用git checkout工具时遇到了一些麻烦.它工作太久了.例如,我有两个回购.我可以在5-10分钟内将它们克隆到本地机器上.但结帐任务陷入困境
从'ssh:// git @ [path/to/first/repo] .git'中获取'refs/heads/release-1.69'.
Git:remote:计算对象
Git:remote:压缩对象(120)
Git:接收物品(269)
Git:解决增量(83)
Git:更新参考文献(1)
Git:总计269(delta 83),重用128(delta 31)
检查修订版7c11b20b2495be8bb8091839794c4e80bdc7651e.
在'path'中创建本地git存储库
有时这项任务需要150分钟,有时甚至没有结束.
停止使用该任务计划而不停止代理的另一个麻烦.恢复代理的唯一方法是重启它.
代理人有问题吗?或者我配置回购错误?我发现了这个问题.唯一的建议是重新安装Bamboo.
我在Bamboo中有一个计划,只要对附加的存储库进行更改(通过轮询)就会启动.
现在,在每个构建上,如果成功,则在repo中更新CHANGELOG文件,这反过来会触发另一个构建.如何从Bamboo的轮询中省略某些文件,以便在找到这些文件的更改时不启动构建?因为否则,我进入无限循环,改变CHANGELOG触发另一个构建,然后更新CHANGELOG等等.
如果不可能,还有哪些其他可行的解决方案?是否有可能在构建开始之前在某处附加shell脚本以检查是否需要启动新构建?
我有一个将在Bamboo中运行的powershell脚本,它将更新Bamboo构建的状态.这在Github中调用,然后状态将更新调用脚本的任何构建.目前这在Windows机器上运行良好,但现在Mac机器上需要构建.
首先,脚本返回错误代码-1,因为我没有在Mac上安装PowerShell.现在我已经安装了PowerShell,我收到以下错误:
Failing task since return code of [powershell -ExecutionPolicy bypass -Command /bin/sh /var/folders/c6/T/MAC-CUSAPP-JOB1-14-ScriptBuildTask.ps1] was 134 while expected 0
Run Code Online (Sandbox Code Playgroud)
代码本身适用于Windows,因为在Bamboo上使用Windows代理的所有其他构建都将成功构建任务.
& "${bamboo.build.working.directory}\scripts\publish-status.ps1" `
-repoName MyRepo `
-status pending `
-revision ${bamboo.repository.revision.number} `
-buildUrl ${bamboo.buildResultsUrl} `
-description "Bamboo has started a build" `
-context "bamboo-build"
Run Code Online (Sandbox Code Playgroud)
无论如何都要正确地执行此操作,以便这适用于Mac.目前我已经检查过运行Powershell版本5.0.0+的Windows机器,而Mac是Powershell 6.0.0 Alpha,这就是它没有构建并给出错误代码134的原因吗?
当我甚至尝试这样做时:
if (2 -lt 3)
{
Write-Host this is lower
}
else
{
Write-Host this is higher
}
Run Code Online (Sandbox Code Playgroud)
它会给出相同的响应,即使我写了Write-Host hello它会响应134的返回码.
即使使用一个简单的powershell脚本,返回0仍然会给出返回代码为134的错误消息.此外,我检查了机器的ExecutionPolicy,它对所有内容都不受限制.
问题还不在于Mac上的powershell,因为它会成功运行一个PowerShell脚本,但竹子是如何在Mac上使用powershell脚本的.在使用Mac时,在Bamboo上使用powershell脚本时,是否需要做一些不同的事情?
这是我如何运行Bamboo的图像,它是Windows上需要的脚本任务,但这不适用于Mac.
更新
我添加了powershell作为可执行文件,然后使用命令任务来调用powershell文件,但是这仍然不起作用,任何想法是因为Bamboo不支持在mac上的powershell作为powershell工作使用visual studio代码和mac上的终端.我这样做了两种方式:
-ExecutionPolicy Bypass -File /Users/dev/Documents/PowreshellScripts/hello.ps1
Run Code Online (Sandbox Code Playgroud)
并且像这样: …
我们已经使用 Bamboo 构建服务器有一段时间了,并且安装了 GitVersion,因此可以将其选为构建计划中的任务。运行任务时,我们通常使用 /UpdateAssembleInfo 参数。对于.NET Framework项目,这将使用bamboo版本控制设置更新源中的程序集信息文件,以便.NET程序集具有与我们的Bamboo构建和后续Bamboo部署相同的版本信息,从而使我们能够了解已部署项目的版本通过检查程序集文件属性来确定该字段。这一切都运作得很好。
但是,我们现在正在构建和部署 .NET Core 2.0 解决方案,并发现 GitVersion /UpdateAssemblyInfo 不起作用。
我搜索了 .NET Core 的修复程序,但只能找到涉及使用 project.json 文件的解决方案,该文件不再与 .NET Core 2.0 一起使用(它更改为 *.csproj 文件)。
我查看了http://gitversion.readthedocs.io/en/latest/usage/command-line/我尝试运行
gitversion.exe /UpdateAssemblyInfo MyProjectName.AssemblyInfo.cs /EnsureAssemblyInfo
Run Code Online (Sandbox Code Playgroud)
其中 MyProjectName 表示 .NET Core 2.0 ..\\obj\release\netcoreapp2.0 文件夹中的 assemblyinfo.cs 文件的实际项目名称后缀。但它没有更新该文件。
我必须假设必须有一个将 GitVersion 与 Bamboo 和 .NET Core 2.0 一起使用的解决方案,但我很难找到一个解决方案。
有任何想法吗?
bamboo ×10
maven ×2
ant ×1
artifactory ×1
artifacts ×1
asp.net-core ×1
build ×1
codeception ×1
git ×1
gitversion ×1
java ×1
macos ×1
msdeploy ×1
mule ×1
powershell ×1
windows ×1