summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix mistake in distbuild artifact transferringsam/fix-fetch-errorsSam Thursfield2015-02-121-1/+2
|
* Add test_utils module (oops)Sam Thursfield2015-02-111-0/+57
|
* remoteartifactcache: Avoid crashing on connection errorsSam Thursfield2015-02-111-4/+4
|
* Add a timeout to remote artifact cache connectionsSam Thursfield2015-02-112-14/+24
| | | | | | | This means that builds won't hang forever if network connectivity drops. Instead, Morph will show an error to the user, then try to do a local build of the current artifact. (This may still break if the local git cache does not contain the necessary SHA1s).
* Retry requests to the remote cache server 3 times before failingSam Thursfield2015-02-112-24/+62
| | | | | This makes it less likely that a build running overnight will fail due to network gremlins.
* yarns: Explicitly specify there is no remote cache serverSam Thursfield2015-02-111-0/+1
| | | | | Previously the value of trove-host would be used, resulting in requests to http://[]:8080/ that are a bit hard to reason about.
* Fix to source.files()Sam Thursfield2015-02-111-1/+1
|
* Fix the really cheesy progress meter for fetching artifactsSam Thursfield2015-02-111-8/+10
|
* builder: Fix some places that assume there is always a remote cacheSam Thursfield2015-02-111-7/+11
|
* buildcommand: Think per-source not per-artifactSam Thursfield2015-02-111-11/+12
|
* Remove an unnecessary caching stepSam Thursfield2015-02-111-8/+2
| | | | | | | The BuildCommand code walks the build graph and fetches or builds each artifact in order. So there's no need to fetch the dependencies of something once again when we come to building it: everything before it in the build graph has already been fetched or built.
* distbuild: Use source.files() to work out what artifacts to transferSam Thursfield2015-02-111-16/+6
|
* WhateverSam Thursfield2015-02-114-28/+84
|
* WIPOSam Thursfield2015-02-115-16/+25
|
* Rework artifact fetchingSam Thursfield2015-02-117-88/+72
| | | | | We now fetch sources, not artifacts. This means that built artifacts of a source are either all available, or all missing.
* Use Requests instead of urllib2 for remote HTTP requestsSam Thursfield2015-02-115-31/+39
| | | | Requests is a much better library for this purpose.
* check: Only check for lines > 79 characters in .py filesSam Thursfield2015-02-111-4/+2
|
* Rewrite tests for remoteartifactcache moduleSam Thursfield2015-02-115-231/+198
| | | | | | | | | | | The old test suite was closely tied with the implementation of the module, which makes it very hard to rewrite any of the module. The new test suite actually sets up a remote HTTP server and exercises the real code paths. I added a new 'testutils' module, because there seem to be quite a few mock classes duplicated in different test modules. Better to collect them when they are really needed.
* Consolidate code for fetching artifacts from remote cacheSam Thursfield2015-02-113-132/+90
|
* Show full error on stdout when artifact fetching failsSam Thursfield2015-02-111-15/+15
| | | | | The error is logged in morph.log already but, this can be hard to get at if the build ran on a distbuild network.
* Only update Git submodules in cache when necessarySam Thursfield2015-02-113-67/+66
| | | | | | | | | | | | | | This saves a duplicate `git remote update origin` that was being run as part of each chunk build. For any repos that have submodules, it also avoids updating repos if the SHA1 we need to build is already present locally. As well as speeding up builds slightly, this means Morph can now build without being connected to a network, as long as the local Git cache all of the necessary repos and commits in the build, without needing the '--no-git-update' option. The code is also now in a more logical place than before.
* Merge branch 'sam/builder-cleanups'Sam Thursfield2015-02-111-21/+0
|\ | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
| * Remove two unused functionsSam Thursfield2015-02-111-17/+0
| |
| * Remove some ununsed importsSam Thursfield2015-02-111-4/+0
|/
* Fix failing coverage testSam Thursfield2015-02-031-2/+2
|
* Update copyright years so ./check passesSam Thursfield2015-02-032-2/+2
|
* Merge branch 'baserock/tiagogomes/armv8'Tiago Gomes2015-02-031-1/+5
|\ | | | | | | | | | | Reviewed by * Pedro Alvarez * Sam Thursfield
| * Add logic for contructing the correct GNU tripet for ARMv8Tiago Gomes2015-02-031-1/+5
| |
* | Merge branch 'jmac/remove-eth0-eth1-check'Pedro Alvarez2015-01-271-14/+0
|\ \ | | | | | | | | | | | | Reviewed-by: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk> Reviewed-by: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
| * | Remove checks for NETWORK_CONFIG and eth0 and eth1 in itJim MacArthur2015-01-271-14/+0
|/ / | | | | | | | | | | | | | | network_config isn't used anywhere in this function. The purpose of this function (getting the name of an appropriate host-only network interface) doesn't seem to depend on it either. eth0 and eth1 won't always be present (several Baserock systems will have enp0s3, etc). So I think these checks should be removed.
* | Merge branch 'baserock/richardipsum/build-command-tweak-v3'Richard Ipsum2015-01-236-34/+124
|\ \ | |/ |/| | | | | | | Reviewed by: Adam Coldrick <adam.coldrick@codethink.co.uk> Richard Maw <richard.maw@gmail.com>
| * Fix copyrightRichard Ipsum2015-01-231-1/+1
| |
| * Fix an existing build yarnRichard Ipsum2015-01-231-1/+2
| | | | | | | | | | | | | | Fix "attempting to build a system morphology which has never been committed" use WHEN ... THEN morph succeeded The old yarn worked just as well, this change is just for consistency.
| * Make some existing deployment scenarios simplerRichard Ipsum2015-01-231-14/+4
| | | | | | | | | | Simplify 'deploying a cluster morphology as a tarfile' and 'attempting to upgrade a tarfile deployment'
| * Quote variables and use = instead of ==Richard Ipsum2015-01-231-3/+3
| |
| * Add yarns to test deploying with relative pathsRichard Ipsum2015-01-232-6/+58
| |
| * Treat path given to deploy cmd as relative to cwdRichard Ipsum2015-01-231-2/+4
| |
| * Add yarns to test building with relative pathsRichard Ipsum2015-01-232-0/+35
| |
| * Update tests to work with modified build commandsRichard Ipsum2015-01-231-6/+6
| | | | | | | | | | | | | | Existing tests generally request something like morph build systems/foo-system.morph, now that the system arg is treated relative to the working directory we must change into the directory that contains the morphs to run morph build systems/foo-system.morph
| * Treat path given to build cmd as relative to cwdRichard Ipsum2015-01-231-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the build commands treat the system argument as a path relative to the root repo. This means that regardless of your working directory you must run morph build systems/foo-system.morph This behaviour can be confusing, for example when your working directory is $systembranch/definitions/systems you might expect to be able to run morph build foo-system.morph especially since most shells would tab-complete the filename for you. At the moment running the above command from $systembranch/definitions/systems would result in an error, because morph would look for $systembranch/definitions/foo-system.morph rather than $systembranch/definitions/systems/foo-system.morph This behaviour also means you can't give the morph build commands an absolute path to a system morph. This patch changes the treatment of the system arg so that it is interpreted relative to the current working directory.
| * Add relative_to_root_repo to sysbranchdirRichard Ipsum2015-01-231-0/+6
|/
* Merge branch 'baserock/jmalk/cross-bootstrap-aarch64-v2'Sam Thursfield2015-01-212-5/+5
|\ | | | | | | | | | | | | | | Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk> Reviewed-By: Rob Kendrick <rob.kendrick@codethink.co.uk> Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk> Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk> Reviewed-By: Zara Zaimeche <zara.zaimeche@codethink.co.uk>
| * Add armv8l64 and armv8b64 to list of valid architecturesJosh Malkinson2015-01-212-5/+5
|/
* Fix line > 79 characters that was breaking ./checkSam Thursfield2015-01-191-1/+2
|
* Merge branch 'sam/optional-temporary-build-branches'Sam Thursfield2015-01-193-26/+95
|\ | | | | | | | | Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk> Reviewed-By: Richard Ipsum <richard.ipsum@codethink.co.uk>
| * Make temporary build branches optionalSam Thursfield2015-01-063-26/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not everyone is a fan of the `morph build` magic that collects up your changes and puts them in a temporary branch. Now you can disable it by setting 'local-changes=ignore' in your morph.conf file. This speeds up `morph build` and `morph deploy` by 5-10 seconds on my machine. I looked an option to make `morph build` warn if there are uncommitted changes. I found that with a cold cache, it takes about 5 seconds on my machine to verify that there are no uncommitted changes to a checkout of definitions.git. That defeats the main purpose of this patch for me, so I didn't include the option.
* | Update CopyrightRichard Ipsum2015-01-191-1/+1
| |
* | Correct resolution of error_message_for_containerised_commandline method.Craig Griffiths2015-01-161-1/+1
| |
* | Fix copyright yearsSam Thursfield2015-01-122-2/+2
| |
* | Merge branch 'sam/cached-repo-cleanup'Sam Thursfield2015-01-1217-318/+214
|\ \ | |/ |/| | | | | Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk> Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>