summaryrefslogtreecommitdiff
path: root/yarns
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2015-07-28 15:23:09 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-10-14 14:34:29 +0000
commitb8b8de2b123ff96e6469196934359485bcd06b04 (patch)
tree2bb774dcaf3db88d6dafb8ab34322b5df4550ce0 /yarns
parent3c59628c80ffe47992bf7347268ca587fc6d368d (diff)
downloadmorph-b8b8de2b123ff96e6469196934359485bcd06b04.tar.gz
Add support for Baserock definitions version 7
This adds a new 'Defaults' class to represent definitions defaults The Python 'jsonschema' module is used to validate the contents of the Defaults file. This module is already included in Baserock 'build' and 'devel' reference systems by way of the 'openstack-common' stratum. This commit embeds a copy of the JSON-Schema schema for the DEFAULTS file. I think the canonical location of this schema should be in the reference definitions.git, for now. In future, the schemas should maybe have their own repos. Either way, Morph should embed a copy for the time being so that we are sure the schema matches how Morph expects to parse the file. Morph's automated tests are all updated to use definitions version 7. I removed most of the tests for built-in build systems, because the built-ins themselves are no longer part of Morph. Only the mechanism for defining them needs to be tested now. Change-Id: I65f8f1c967683ef605852bfae5c68518e53f9981
Diffstat (limited to 'yarns')
-rw-r--r--yarns/implementations.yarn34
-rw-r--r--yarns/regression.yarn6
2 files changed, 35 insertions, 5 deletions
diff --git a/yarns/implementations.yarn b/yarns/implementations.yarn
index ff1971f8..9f23107b 100644
--- a/yarns/implementations.yarn
+++ b/yarns/implementations.yarn
@@ -250,7 +250,37 @@ another to hold a chunk.
mkdir "$DATADIR/gits/morphs"
cd "$DATADIR/gits/morphs"
git init .
- echo 'version: 6' > VERSION
+ echo 'version: 7' > VERSION
+
+ install -m644 -D /dev/stdin << EOF "DEFAULTS"
+ # This is a simplified version of the DEFAULTS file supplied with the
+ # Baserock reference system definitions.
+ build-systems:
+ autotools:
+ configure-commands:
+ - ./configure
+ build-commands:
+ - make
+ install-commands:
+ - make install
+ split-rules:
+ chunk:
+ - artifact: -devel
+ include:
+ - (usr/)?include/.*
+ - (usr/)?lib/.*\.a
+ - (usr/)?share/man/.*
+ - artifact: -runtime
+ include:
+ - .*
+ stratum:
+ - artifact: -devel
+ include:
+ - .*-devel
+ - artifact: -runtime
+ include:
+ - .*-runtime
+ EOF
arch=$(run_morph print-architecture)
install -m644 -D /dev/stdin << EOF "systems/test-system.morph"
@@ -333,7 +363,7 @@ another to hold a chunk.
install-commands:
- copy files
system-integration:
- test-chunk-bins:
+ test-chunk-runtime:
00-passwd:
- |
create file /etc/passwd
diff --git a/yarns/regression.yarn b/yarns/regression.yarn
index c424f437..aa98eec5 100644
--- a/yarns/regression.yarn
+++ b/yarns/regression.yarn
@@ -59,17 +59,17 @@ source it depended on.
GIVEN a workspace
AND a git server
AND system systems/test-system.morph uses core-runtime from core
- AND stratum strata/core.morph has match rules: [{artifact: core-runtime, include: [.*-(bins|libs|locale)]}, {artifact: core-devel, include: [.*-(devel|doc|misc)]}]
+ AND stratum strata/core.morph has match rules: [{artifact: core-runtime, include: [.*-devel]}, {artifact: core-devel, include: [.*-runtime]}]
WHEN the user checks out the system branch called master
GIVEN a cluster called test-cluster.morph in system branch master
AND a system in cluster test-cluster.morph in branch master called test-system
AND system test-system in cluster test-cluster.morph in branch master builds systems/test-system.morph
AND system test-system in cluster test-cluster.morph in branch master has deployment type: tar
WHEN the user builds the system systems/test-system.morph in branch master
- GIVEN stratum strata/core.morph in system branch master has match rules: [{artifact: core-runtime, include: [.*-(bins|libs|misc)]}, {artifact: core-devel, include: [.*-(devel|doc|locale)]}]
+ GIVEN stratum strata/core.morph in system branch master has match rules: [{artifact: core-runtime, include: [.*-runtime]}, {artifact: core-devel, include: [.*-devel]}]
WHEN the user builds the system systems/test-system.morph in branch master
AND the user deploys the cluster test-cluster.morph in branch master with options test-system.location="$DATADIR/test.tar"
- THEN tarball test.tar contains baserock/test-chunk-misc.meta
+ THEN tarball test.tar contains baserock/test-chunk-runtime.meta
FINALLY the git server is shut down