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",
}
設定をアップロードできますか?主にスケジューラを設定するビット。また、あなたのnginxの設定 - あなたはbuildbotのチュートリアルで提供されている設定例をコピーしましたか? –
はい、 'mv master.cfg.sample master.cfg'を実行したときに得られるデフォルトの設定です。私はそれを編集として追加しました。 – meh
私は以下の質問に答えたtardypと簡単に話しました。彼は、私が適切にWebSocketを転送していないという事実のためかもしれないと言います。私はNginxを使用しており、WebSocketの転送指令は単純なhttpでは動作しませんでした。私はまだhttpsで試してみました。それは私の次の試みでしょう。 – meh