[Buildroot] [PATCH] autobuild-run: add --repo option
Arnout Vandecappelle (Essensium/Mind)
arnout at mind.be
Mon Jul 17 21:28:59 UTC 2017
This option allows to specify which Buildroot git repository to clone.
This can be useful in several situations:
- to use a different mirror in case you don't have a good connection to
github;
- for debugging this script;
- to point to a local, patched repository you want to test.
Note that the clone/pull will use the currently checked out branch of
the repository if it is non-bare, which is ideal for testing.
Since switching repositories may also switch branches, we use a git
fetch/checkout sequence instead of doing a git pull. With git pull, the
branches would be merged instead of switched. To avoid polluting the
log with the long git message about a detached head, while still
getting some useful output from git, pass the --detach option to
git checkout.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
Ideally the contents of this commit message would be put somewhere as
documentation, but I couldn't find a good spot for it.
---
scripts/autobuild-run | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/scripts/autobuild-run b/scripts/autobuild-run
index a7d7d4f..523e382 100755
--- a/scripts/autobuild-run
+++ b/scripts/autobuild-run
@@ -68,6 +68,7 @@ defaults = {
'--pid-file': '/tmp/buildroot-autobuild.pid',
'--http-url': 'http://autobuild.buildroot.org/submit/',
'--toolchains-url': 'http://autobuild.buildroot.org/toolchains/configs/toolchain-configs.csv',
+ '--repo': 'https://github.com/buildroot/buildroot.git',
}
doc = """autobuild-run - run Buildroot autobuilder
@@ -103,6 +104,8 @@ Options:
Not set by default.
-d, --debug Send log output to stdout instead of log file
--toolchains-url URL URL of toolchain configuration file
+ -r, --repo URL URL of Buildroot repository to clone
+ Defaults to %(--repo)s
Format of the configuration file:
@@ -329,7 +332,7 @@ def prepare_build(**kwargs):
# didn't exist already.
srcdir = os.path.join(idir, "buildroot")
if not os.path.exists(srcdir):
- ret = subprocess.call(["git", "clone", "https://github.com/buildroot/buildroot.git", srcdir],
+ ret = subprocess.call(["git", "clone", kwargs['repo'], srcdir],
stdout=log, stderr=log)
if ret != 0:
log_write(log, "ERROR: could not clone Buildroot sources")
@@ -337,9 +340,14 @@ def prepare_build(**kwargs):
# Update the Buildroot sources.
abssrcdir = os.path.abspath(srcdir)
- ret = subprocess.call(["git", "pull"], cwd=abssrcdir, stdout=log, stderr=log)
+ ret = subprocess.call(["git", "fetch", kwargs['repo']], cwd=abssrcdir, stdout=log, stderr=log)
if ret != 0:
- log_write(log, "ERROR: could not pull Buildroot sources")
+ log_write(log, "ERROR: could not fetch Buildroot sources")
+ return -1
+
+ ret = subprocess.call(["git", "checkout", "--detach", "FETCH_HEAD"], cwd=abssrcdir, stdout=log, stderr=log)
+ if ret != 0:
+ log_write(log, "ERROR: could not check out Buildroot sources")
return -1
# Create an empty output directory. We remove it first, in case a previous build was aborted.
@@ -948,6 +956,7 @@ def main():
make_opts = (args['--make-opts'] or ''),
nice = (args['--nice'] or 0),
toolchains_url = args['--toolchains-url'],
+ repo = args['--repo'],
upload = upload,
buildpid = buildpid,
debug = args['--debug']
--
2.13.2
More information about the buildroot
mailing list