2017-07-10 18 views
0

First Runチュートリアルはすべて順調です。すべてが正しくインストールされ、WebUIが表示されます。ただし、runtestsは実行できません。このチュートリアルでは、学生にWaterfallビューを指示してruntestsの作成者を表示します。 runtestsは、Waterfallページのどこにも表示されません。実行を強制するには、Builderページに行き、強制ボタンをクリックします。残念ながら私はWebUIでそのボタンを使用することはできません。ログに問題がある行が1行表示されています。しかし、私はそれを作るために何を知らない:Buildbot firstrun、Web UIには、滝の表示でForceSchedulerが表示されません。

2017-07-10 00:09:15+0000 [Broker,0,127.0.0.1] Worker example-worker attached to runtests 
2017-07-10 00:09:37+0000 [-] dropping connection to peer tcp4:127.0.0.1:48686 with abort=False 

...労働者は(TCP, '127.0.0.1', 39436)でIPv4Addressをから添付ので。だから、どの接続が切断されたのかわからない。

以下は、buildbotNetUsageDataによって送信された情報です。私はec2インスタンスのAWSでこれを実行しています。私が開いているポートだけが80,443,22,9989です。ワーカーはマスターと同じマシンにいます。私はNginxをproxy_pass localhost:8010に公開ポート80に使用しています。Ubuntu 16.04サーバーでデフォルトのPythonを使用しています。

私の最初の本能は私が何か明白なものを見落としているということです。これはビルドボットの私の最初の経験です。しかし、私はどのようにこれをデバッグするか分からない。私はどこのエラーも失敗もない。

Web UIもファンキーなことをしています。 example-worker/#/workersページに表示される唯一の方法は、最初に/#/buildersページを表示している場合です。 /#/(自宅)または/#/waterfallから来ている場合は表示されません。最初に/#/buildersに行ってから、/#/workersに行ってください。これが唯一の方法です。example-workerがそこに現れます。

私はちょっとハッキングしています。私はubuntu 14.04を使ってみましたが、buildbotをインストールするのに問題がありました。 REHLと同じ。私は、私も学んでいる無力でこれをやっています。だから、私はかなりの時間をかけて自分の作ったプレイブックと役割を調整しました。

質問:

私の質問はこれです。これを回避し、ビルダーruntestsを強制的に実行するにはどうすればよいですか?

ない答え:私はforceボタンが表示されていないので、

This questionは答えではありません。

buildbotNetUsageData:

{ 
    "versions": { 
"Python": "3.5.2", 
"Twisted": "17.5.0", 
"Buildbot": "0.9.9.post2" 
    }, 
    "platform": { 
"system": "Linux", 
"version": "#22-Ubuntu SMP Fri Mar", 
"python_implementation": "CPython", 
"machine": "x86_64", 
"processor": "x86_64", 
"platform": "Linux-4.4.0-1013-aws-x86_64-with-Ubuntu-16.04-xenial", 
"distro": "ubuntu:16.04" 
    }, 
    "mq": "simple", 
    "db": "sqlite", 
    "www_plugins": [ 
"waterfall_view", 
"console_view" 
    ], 
    "plugins": { 
"buildbot/changes/gitpoller/GitPoller": 1, 
"buildbot/schedulers/basic/SingleBranchScheduler": 1, 
"buildbot/config/BuilderConfig": 1, 
"buildbot/schedulers/forcesched/ForceScheduler": 1, 
"buildbot/worker/base/Worker": 1, 
"buildbot/steps/shell/ShellCommand": 1, 
"buildbot/steps/source/git/Git": 1 
    }, 
    "installid": "<some long number>" 
} 

EDIT#1:

# -*- python -*- 
# ex: set filetype=python: 

from buildbot.plugins import * 

# This is a sample buildmaster config file. It must be installed as 
# 'master.cfg' in your buildmaster's base directory. 

# This is the dictionary that the buildmaster pays attention to. We also use 
# a shorter alias to save typing. 
c = BuildmasterConfig = {} 

####### WORKERS 

# The 'workers' list defines the set of recognized workers. Each element is 
# a Worker object, specifying a unique worker name and password. The same 
# worker name and password must be configured on the worker. 
c['workers'] = [worker.Worker("example-worker", "pass")] 

# 'protocols' contains information about protocols which master will use for 
# communicating with workers. You must define at least 'port' option that workers 
# could connect to your master with this protocol. 
# 'port' must match the value configured into the workers (with their 
# --master option) 
c['protocols'] = {'pb': {'port': 9989}} 

####### CHANGESOURCES 

# the 'change_source' setting tells the buildmaster how it should find out 
# about source code changes. Here we point to the buildbot clone of pyflakes. 

c['change_source'] = [] 
c['change_source'].append(changes.GitPoller(
     'git://github.com/buildbot/pyflakes.git', 
     workdir='gitpoller-workdir', branch='master', 
     pollinterval=300)) 

####### SCHEDULERS 

# Configure the Schedulers, which decide how to react to incoming changes. In this 
# case, just kick off a 'runtests' build 

c['schedulers'] = [] 
c['schedulers'].append(schedulers.SingleBranchScheduler(
          name="all", 
          change_filter=util.ChangeFilter(branch='master'), 
          treeStableTimer=None, 
          builderNames=["runtests"])) 
c['schedulers'].append(schedulers.ForceScheduler(
          name="force", 
          builderNames=["runtests"])) 

####### BUILDERS 

# The 'builders' list defines the Builders, which tell Buildbot how to perform a build: 
# what steps, and which workers can execute them. Note that any particular build will 
# only take place on one worker. 

factory = util.BuildFactory() 
# check out the source 
factory.addStep(steps.Git(repourl='git://github.com/buildbot/pyflakes.git', mode='incremental')) 
# run the tests (note that this will require that 'trial' is installed) 
factory.addStep(steps.ShellCommand(command=["trial", "pyflakes"])) 

c['builders'] = [] 
c['builders'].append(
    util.BuilderConfig(name="runtests", 
     workernames=["example-worker"], 
     factory=factory)) 

####### BUILDBOT SERVICES 

# 'services' is a list of BuildbotService items like reporter targets. The 
# status of each build will be pushed to these targets. buildbot/reporters/*.py 
# has a variety to choose from, like IRC bots. 

c['services'] = [] 

####### PROJECT IDENTITY 

# the 'title' string will appear at the top of this buildbot installation's 
# home pages (linked to the 'titleURL'). 

c['title'] = "Pyflakes" 
c['titleURL'] = "https://launchpad.net/pyflakes" 

# the 'buildbotURL' string should point to the location where the buildbot's 
# internal web server is visible. This typically uses the port number set in 
# the 'www' entry below, but with an externally-visible host name which the 
# buildbot cannot figure out without some help. 

c['buildbotURL'] = "http://localhost:8010/" 

# minimalistic config to activate new web UI 
c['www'] = dict(port=8010, 
       plugins=dict(waterfall_view={}, console_view={})) 

####### DB URL 

c['db'] = { 
    # This specifies what database buildbot uses to store its state. You can leave 
    # this at its default for all but the largest installations. 
    'db_url' : "sqlite:///state.sqlite", 
} 
+0

設定をアップロードできますか?主にスケジューラを設定するビット。また、あなたのnginxの設定 - あなたはbuildbotのチュートリアルで提供されている設定例をコピーしましたか? –

+0

はい、 'mv master.cfg.sample master.cfg'を実行したときに得られるデフォルトの設定です。私はそれを編集として追加しました。 – meh

+0

私は以下の質問に答えたtardypと簡単に話しました。彼は、私が適切にWebSocketを転送していないという事実のためかもしれないと言います。私はNginxを使用しており、WebSocketの転送指令は単純なhttpでは動作しませんでした。私はまだhttpsで試してみました。それは私の次の試みでしょう。 – meh

答えて

0

力ボタンが滝のビューには表示されません: これは私が何も編集作ったためにデフォルトmaster.cfgです。これはBuilderページにのみ表示されます。 ビルダーページ/#ビルダーに移動し、ビルダーを選択すると、右上に強制ボタンが表示されます。

+0

ありがとうございました。私は質問で明確にします。あなたは他の提案がありますか? – meh

+0

@ tardypだから、http://docs.buildbot.net/current/tutorial/tour.html#your-first-buildのドキュメントは間違っていますか? 'localhost:8010 /#/ builers'を指定すべきでしょうか? – chrish

0

私はこれらの厳密な問題がありましたが、最初にnginxの設定を削除し、代わりに:8010/というURLを使用しました。おそらく怠惰ですが、それは動作します。その問題のその固定部分。そして、私はここに古いバグレポートを見つけました:タイトル#2731とLink to cached version since the tracker is down atm:[9]新しいUIに構築フォースはクロム

に動作していないので、私は単に代わりにFirefoxでこれを試してみました。それはうまくいった。このバグは1年後に修正されたと思われますが、まだまだです。 Firefoxで動作するようになった後、Chromeでも動作するようになりました。

とにかく。その2つのことは私の問題のすべてを解決しました。

関連する問題