| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
definitions format
This patch will add the following restriction:
if VERSION exist
and its a YAML file
and its a dict
and has the key 'version'
and the type stored in the 'version' key is an int
and that int is not in the supported format,
then fail.
So, if someone is using 'version: 4' in VERSION, morph will fail (as
opposed to current morph, that will not fail in the check but will
likely fail when it tries to compile)
Change-Id: I555f7e6018b9bdf18c80039df92a253acbd51c8c
|
|\ |
|
| |
| |
| |
| | |
Change-Id: Ibda7a938cd16e35517a531140f39ef4664d85c72
|
|\ \
| |/
|/|
| |
| | |
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
|
| |
| |
| |
| |
| | |
Rename instead removal in case the user is already using a
10-dhcp.network file
|
| | |
|
| |
| |
| |
| |
| |
| | |
Use DHCP by defaul in the default interfaces:
- for /etc/networ/interfaces: "lo:loopback;eth0:dhcp,hostname=$(hostname)"
- for networkd: "e*:dhcp"
|
| | |
|
| |
| |
| |
| | |
255.255.255.0 -> 24
|
| | |
|
| |
| |
| |
| | |
a function
|
| |
| |
| |
| | |
Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
Change-Id: I992dc0c1d40f563ade56a833162d409b02be90a0
|
| |
| |
| |
| | |
I was meant to do this at merge time but didn't.
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: I771c3de9cecda7a503f4d36ae5d9fabc040892e4
|
|\ \ \
| |/ / |
|
| |/
| |
| |
| | |
Change-Id: I7c6f618d5d19e03d906798a6f799d74ac55b0d09
|
|\ \
| |/
|/|
| |
| |
| |
| | |
Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
|
| |
| |
| |
| |
| |
| |
| | |
If we know the build system for a chunk is cached then we also know that
it doesn't have a chunk morph, so we don't need to look for one.
(We only cache the build systems of chunks that don't have chunk morphs)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes a bug that causes morph to run build system detection
even though the build system has already been cached.
The cache is accessed before the key has been computed
(absref isn't known until after we've called resolve_ref)
so it always misses.
|
|\ \
| | |
| | |
| | |
| | | |
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Javier Jardón <javier.jardon@codethink.co.uk>
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
Reviewed-By: Francisco Redondo Marchena <francisco.marchena@codethink.co.uk>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This test fails with latest Busybox. Since we plan on removing
workspaces anyway, I don't see a reason to fix it. The `morph foreach`
command does actually still work as expected.
Morph's ./check test suite now passes again in a 'build' reference
system built from commit 88eface4c72dab689bc409c77e209833a0acd038 or
newer.
|
|\ \
| |/
|/|
| |
| | |
Reviewed-By: Adam Coldrick <adam.coldrick@codethink.co.uk>
Reviewed-By: Richard Maw <richard.maw@codethink.co.uk>
|
| |
| |
| |
| |
| | |
This makes it easier to spot if an incomplete build was due to the user
cancelling, or if it represents a dropped connection or internal error.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This message was hundreds of kilobytes in size, as it contained a
recursive list of dependencies for each artifact in the build graph. It
was used in the initiator only to print this message:
Build steps in total: 592
This message is now gone. The 'Need to build %d artifacts'
build-progress message now indicates the total build steps instead:
Need to build 300 artifacts, of 592 total
This is a compatible change to the distbuild protocol: old initiators
will continue to work as normal with new controllers that don't send
the build-steps message.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It gets messy having hundreds of build-step-xx.log files in the current
directory, and if two builds are run in parallel from the same directory
the logs for a given chunk will be mixed together in one file.
Now, a new directory named build-0, build-1, build-2 etc is created for
each new build.
If the user passes --initiator-step-output-dir the logs will be placed
in that directory, instead. This behaviour is the same as before.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Users build sources, not artifacts. So the log files should be called
build-step-systemd.log and not build-step-systemd-misc.log.
Note strata are a kind of special case so you will still see
build-step-foundation-runtime.log, build-step-foundation-devel.log etc.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For a while we have seen an issue where output from build A would end up
in the log file of some other random chunk.
The problem turns out to be that the WorkerConnection class in the
controller-daemon assumes cancellation is instantaneous. If a build was
cancelled, the WorkerConnection would send a cancel message for the job
it was running, and then start a new job. However, the worker-daemon
process would have a backlog of exec-output messages and a delayed
exec-response message from the old job. The controller would receive
these and would assume that they were for the new job, without checking
the job ID in the messages. Thus they would be sent to the wrong log
file.
To fix this, the WorkerConnection class now tracks jobs by job ID, and
the code should be generally more robust when unexpected messages are
received.
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Reviewed-By: Paul Sherwood <paul.sherwood@codethink.co.uk>
Reviewed-By: Sam Thursfield <sam.thursfield@codethink.co.uk>
Reviewed-By: Pedro Alvarez <pedro.alvarez@codethink.co.uk>
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Only fail if:
- VERSION file exists
- and its a yaml file
- and its a dict
- and has the key 'version'
- and the contents of the key 'version' is an int
- and that int is in the list of non_supported_versions (empty
at the moment)
|
| | |
| | |
| | |
| | | |
_get_morphology_from_definitions() and _get_morphology_from_repo()
|
| | |
| | |
| | |
| | | |
load_from_string()
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
And make _get_morphology() use it
|
| | |
| | |
| | |
| | | |
And make _get_morphology_from_definitions() use it
|
| | |
| | |
| | |
| | | |
And make _get_morphology_from_repo() use it
|
| | |
| | |
| | |
| | | |
An exception will be raised if any needed networks are not started
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The logic to handle a worker disconnecting was broken. The
WorkerConnection object would remove itself from the main loop as soon
as the worker disconnected. But it would not get removed from the list
of available workers that the WorkerBuildQueue maintains. So the
controller would continue sending messages to this dead connection, and
the builds it sent would hang forever for a response.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | | |
|