首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Buildbot和多个SVN分支

Buildbot和多个SVN分支
EN

Stack Overflow用户
提问于 2012-06-11 03:38:49
回答 2查看 1.8K关注 0票数 0

我的SVN仓库布局..。

代码语言:javascript
复制
Project_Name(root)/trunk
            /branches/
            /branches/new_feature_of_trunk1
            /branches/new_feature_of_trunk2
            /tags/
            /tags/ETC1
            /tags/ETC2

我试图让buildbot来构建我的存储库中的几个分支,例如./trunk和/分支/_/trunk 1 .This是我编写它的方式。

代码语言:javascript
复制
from buildbot.changes.svnpoller import SVNPoller, split_file_branches
source_code_svn_url='http://domain.com/svn/Project_Name/'
c['change_source'].append(
    SVNPoller(
        svnurl=source_code_svn_url,
        split_file=split_file_branches,
        pollinterval=60,
        histmax=10,
    )
)

def modified_files(change):
    for name in change.files:
        if name.endswith(".c"):
            return True
        elif name.endswith(".h"):
            return True
    return False

from buildbot import scheduler
from buildbot.changes.filter import ChangeFilter
s1=scheduler.AnyBranchScheduler(
    name="Project_Test",
    treeStableTimer=2*60,
    change_filter=ChangeFilter(
        branch=[
            'trunk',
            'branches/new_feature_of_trunk1'
        ]
    ),
    builderNames=[
        "Windows-x64-VS10",
    ],
    fileIsImportant=modified_files
)

c['schedulers']=[s1]

from buildbot.process import factory
from buildbot.steps import source,shell
from buildbot.process.properties import WithProperties
from buildbot.config import BuilderConfig
step_source_svn=source.SVN(
    mode='copy',
    baseURL=source_code_svn_url,
    defaultBranch='trunk',
    retry=(30,2)
)

f2=factory.BuildFactory()
f2.addStep(step_source_svn)
f2.addStep(
    shell.Compile(
        command=[
            "devenv.com",
            "MakeMe.sln",
            "/build",
            "Release^|Win32"
        ],
        logEnviron=False
    )
)

问题是这个..。我知道我添加了默认分支=‘后备箱’。但是为什么它只检出树干而不是整个根呢?然后每当我移除它时,defaultBranch。我犯了这个错误

exceptions.RuntimeError:属于构建器‘Windowsx64-VS 10’的SVN源步骤不知道使用哪个分支。这意味着更改源没有指定分支,而defaultBranch为None。

然后,我发布的代码是,如果在modified_files或/ /trunk /new_feature_trunk1 1中有/trunk,我的构建主将告诉奴隶构建。如果两个分支在相同的SVN修订版中都有修改。然后,它将首先编译/分支/新_ /trunk _of_trunk1 1之前的.

但正如我所说的,这并不像我想要的那样

EN

回答 2

Stack Overflow用户

发布于 2012-09-06 19:27:49

如果单个更改集包含两个分支中的更改,则应创建两个更改,并为每个更改触发一个构建。

票数 0
EN

Stack Overflow用户

发布于 2012-12-14 16:14:19

我知道这是个老职位,但对于其他人来说,这可能会有所帮助:

您需要为您的分支创建调度程序。现在看来,您只有一个分支构建,但是如果您有一个通过分支的调度程序,那么它可能会更适合您。

代码语言:javascript
复制
Nightly(name="new1",          builderNames=["Project_Test"], branch="branches/new_feature_of_trunk1", onlyIfChanged=True, hour=range(0, 24, 2)),
Nightly(name="new2",          builderNames=["Project_Test"], branch="branches/new_feature_of_trunk2", onlyIfChanged=True, hour=range(0, 24, 2)),

如果您希望同时签出所有的内容,并且编译步骤生成了所有分支,那么您的source_code_svn_url需要高出一个分支。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10974275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档