From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH buildroot-test 1/2] scripts/autobuild-run: make the HTTP URL really configurable
Date: Sat, 22 Jun 2019 19:11:57 +0200 [thread overview]
Message-ID: <20190622171157.GE13664@scaer> (raw)
In-Reply-To: <20190617182236.23918-1-thomas.petazzoni@bootlin.com>
Thomas, All,
On 2019-06-17 20:22 +0200, Thomas Petazzoni spake thusly:
> The --http-url option allowed to customize the URL at which build
> results are submitted. However, there were two other places in the
> script where autobuild.buildroot.org was hardcoded: when checking the
> script version, and when getting the list of branches to build.
>
> This commit changes the --http-url to be the base URL of the autobuild
> server, and it is used everywhere instead of hardcoding
> autobuild.buildroot.org.
>
> Note: users of autobuild-run that were passing a custom --http-url
> option such as http://foo.com/submit/ should change it to just
> http://foo.com/
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> ---
[--SNIP--]
> @@ -178,23 +179,23 @@ def log_write(logf, msg):
> logf.write("[%s] %s\n" % (strftime("%a, %d %b %Y %H:%M:%S", localtime()), msg))
> logf.flush()
>
> -def check_version():
> - with urlopen_closing('http://autobuild.buildroot.org/version') as r:
> +def check_version(**kwargs):
There is a current work by Atharva to actually remove usage of kwargs
elsewhere in the code.
I think it would be nice to have a new object that contains the server
config:
class ServerConfig():
def __init__(self, base_url):
self.base_url = base_url
def branches_url(self):
return urlparse.urljoin(self.base_url, 'branches')
def submit_url(self):
return urlparse.urljoin(self.base_url, 'submit')
And then in main (or elsewhere it is meaningful):
server_cfg = ServerConfig(args['http_url'])
and pass that object to run_instance().
Then the series from Atharva can more easily account for this new
variable.
Regards,
Yann E. MORIN.
> + with urlopen_closing(urlparse.urljoin(kwargs['http_url'], 'version')) as r:
> version = int(decode_bytes(r.readline()).strip())
> if version > VERSION:
> print("ERROR: script version too old, please upgrade.")
> sys.exit(1)
>
> -def get_branch():
> +def get_branch(**kwargs):
> """Returns the branch that should be built. It fetches a CSV file from
> - autobuild.buildroot.org that provides the list of branches to test
> + the autobuild server that provides the list of branches to test
> (first field) and their weight (second field). We build a list of
> branches, where the branch name is repeated N times, with N being
> the weight of the branch. We then pick a random branch in this
> list. This way, branches with a higher weight are more likely to
> be selected.
> """
> - with urlopen_closing('http://autobuild.buildroot.org/branches') as r:
> + with urlopen_closing(urlparse.urljoin(kwargs['http_url'], 'branches')) as r:
> csv_branches = r.readlines()
> branches = []
> for branch in csv.reader(csv_branches):
> @@ -314,7 +315,7 @@ def prepare_build(**kwargs):
> os.path.relpath(f, dldir))
> os.remove(f)
>
> - branch = get_branch()
> + branch = get_branch(**kwargs)
> log_write(log, "INFO: testing branch '%s'" % branch)
>
> # Clone Buildroot. This only happens if the source directory
> @@ -679,7 +680,7 @@ def send_results(result, **kwargs):
> "-H", "Expect:",
> "-F", "uploadedfile=@%s" % os.path.join(outputdir, "results.tar.bz2"),
> "-F", "uploadsubmit=1",
> - kwargs['http_url']],
> + urlparse.urljoin(kwargs['http_url'], 'submit/')],
> stdout=log, stderr=log)
> if ret != 0:
> log_write(log, "INFO: results could not be submitted, %d" % ret)
> @@ -713,7 +714,7 @@ def run_instance(**kwargs):
> log_write(kwargs['log'], "INFO: instance started")
>
> while True:
> - check_version()
> + check_version(**kwargs)
>
> ret = prepare_build(**kwargs)
> if ret != 0:
> @@ -774,7 +775,6 @@ def main():
> # showing error messages in another language.
> os.environ['LC_ALL'] = 'C'
>
> - check_version()
> sysinfo = SystemInfo()
>
> args = docopt.docopt(doc, version=VERSION)
> --
> 2.21.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
prev parent reply other threads:[~2019-06-22 17:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-17 18:22 [Buildroot] [PATCH buildroot-test 1/2] scripts/autobuild-run: make the HTTP URL really configurable Thomas Petazzoni
2019-06-17 18:22 ` [Buildroot] [PATCH buildroot-test 2/2] scripts/autobuild-run: support changing repo Thomas Petazzoni
2019-06-22 17:11 ` Yann E. MORIN [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190622171157.GE13664@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox