| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
| |
This makes it less likely that a build running overnight will fail due
to network gremlins.
|
|
|
|
|
| |
Previously the value of trove-host would be used, resulting in requests
to http://[]:8080/ that are a bit hard to reason about.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We now fetch sources, not artifacts. This means that built artifacts
of a source are either all available, or all missing.
|
|
|
|
| |
Requests is a much better library for this purpose.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
The error is logged in morph.log already but, this can be hard to get at
if the build ran on a distbuild network.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
|
| | |
|
|/ |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
Reviewed by
* Pedro Alvarez
* Sam Thursfield
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
Reviewed-by: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk>
Reviewed-by: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
|/|
| |
| |
| | |
Reviewed by:
Adam Coldrick <adam.coldrick@codethink.co.uk>
Richard Maw <richard.maw@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
Simplify 'deploying a cluster morphology as a tarfile'
and 'attempting to upgrade a tarfile deployment'
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/ |
|
| |
|
|\
| |
| |
| |
| | |
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Richard Ipsum <richard.ipsum@codethink.co.uk>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/|
| |
| | |
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
|