summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Coldrick <adam.coldrick@codethink.co.uk>2014-07-18 16:10:24 +0100
committerRichard Maw <richard.maw@codethink.co.uk>2014-07-22 15:55:27 +0100
commite86eae318a83a429a0f27954866217ebf2efa6a5 (patch)
treefd382dd9c9781daa95eaefabcedfe07bee276e19
parente4c105f914ebb0df18cedbb8111f9d93f79b79dc (diff)
downloadmorph-e86eae318a83a429a0f27954866217ebf2efa6a5.tar.gz
yarns: Test building and deployment of a system with a chunk in definitions
-rw-r--r--yarns/implementations.yarn24
-rw-r--r--yarns/regression.yarn10
-rw-r--r--yarns/splitting.yarn15
3 files changed, 26 insertions, 23 deletions
diff --git a/yarns/implementations.yarn b/yarns/implementations.yarn
index 2c325985..ce229d6c 100644
--- a/yarns/implementations.yarn
+++ b/yarns/implementations.yarn
@@ -87,16 +87,12 @@ another to hold a chunk.
chunks:
- name: test-chunk
repo: test:test-chunk
+ morph: test-chunk.morph
ref: master
build-mode: test
build-depends: []
EOF
- run_in "$DATADIR/gits/morphs" git init .
- run_in "$DATADIR/gits/morphs" git add .
- run_in "$DATADIR/gits/morphs" git commit -m Initial.
- run_in "$DATADIR/gits/morphs" git tag -a "test-tag" -m "Tagging test-tag"
-
# Create the chunk repository.
mkdir "$DATADIR/gits/test-chunk"
@@ -105,7 +101,7 @@ another to hold a chunk.
# dummy files in all the places that different kinds of files are
# usually installed. e.g. executables in `/bin` and `/usr/bin`
- install -m644 -D /dev/stdin << 'EOF' "$DATADIR/gits/test-chunk/test-chunk.morph"
+ install -m644 -D /dev/stdin << 'EOF' "$DATADIR/gits/morphs/test-chunk.morph"
name: test-chunk
kind: chunk
build-system: manual
@@ -239,9 +235,14 @@ another to hold a chunk.
done
EOF
+ run_in "$DATADIR/gits/morphs" git init .
+ run_in "$DATADIR/gits/morphs" git add .
+ run_in "$DATADIR/gits/morphs" git commit -m Initial.
+ run_in "$DATADIR/gits/morphs" git tag -a "test-tag" -m "Tagging test-tag"
+
run_in "$DATADIR/gits/test-chunk" git init .
run_in "$DATADIR/gits/test-chunk" git add .
- run_in "$DATADIR/gits/test-chunk" git commit -m Initial.
+ run_in "$DATADIR/gits/test-chunk" git commit --allow-empty -m Initial.
# Create the Morph configuration file so we can access the repos
# using test:foo URL aliases.
@@ -262,15 +263,14 @@ have a morphology using the test architecture.
IMPLEMENTS GIVEN a system called (\S+) for the test architecture in the git server
- cat << EOF > "$DATADIR/gits/test-chunk/stage1-chunk.morph"
+ cat << EOF > "$DATADIR/gits/morphs/stage1-chunk.morph"
name: stage1-chunk
kind: chunk
build-system: dummy
EOF
- run_in "$DATADIR/gits/test-chunk" git init .
- run_in "$DATADIR/gits/test-chunk" git add .
- run_in "$DATADIR/gits/test-chunk" git commit -m Initial.
+ run_in "$DATADIR/gits/morphs" git add .
+ run_in "$DATADIR/gits/morphs" git commit -m "Add chunk for $MATCH_1"
install -m644 -D /dev/stdin << EOF "$DATADIR/gits/morphs/strata/build-essential.morph"
@@ -278,6 +278,7 @@ have a morphology using the test architecture.
kind: stratum
chunks:
- name: stage1-chunk
+ morph: stage1-chunk.morph
repo: test:test-chunk
ref: master
build-mode: bootstrap
@@ -291,6 +292,7 @@ have a morphology using the test architecture.
- morph: strata/build-essential.morph
chunks:
- name: test-chunk
+ morph: test-chunk.morph
repo: test:test-chunk
ref: master
build-mode: test
diff --git a/yarns/regression.yarn b/yarns/regression.yarn
index 05e2e70c..e5b3d875 100644
--- a/yarns/regression.yarn
+++ b/yarns/regression.yarn
@@ -88,17 +88,15 @@ Implementations
kind: stratum
chunks:
- name: bootstrap-chunk
+ morph: bootstrap-chunk.morph
repo: test:test-chunk
ref: master
build-mode: bootstrap
build-depends: []
EOF
+ sed -e 's/name: test-chunk/name: bootstrap-chunk/g' \
+ "$DATADIR/gits/morphs/test-chunk.morph" \
+ > "$DATADIR/gits/morphs/bootstrap-chunk.morph"
run_in "$DATADIR/gits/morphs" git add .
run_in "$DATADIR/gits/morphs" git commit -m "Add bootstrap-system"
-
- sed -e 's/test-chunk/bootstrap-chunk/g' \
- "$DATADIR/gits/test-chunk/test-chunk.morph" \
- > "$DATADIR/gits/test-chunk/bootstrap-chunk.morph"
- run_in "$DATADIR/gits/test-chunk" git add .
- run_in "$DATADIR/gits/test-chunk" git commit -m "Add bootstrap-chunk"
diff --git a/yarns/splitting.yarn b/yarns/splitting.yarn
index d35153e4..1b67a881 100644
--- a/yarns/splitting.yarn
+++ b/yarns/splitting.yarn
@@ -90,7 +90,7 @@ Implementations
IMPLEMENTS GIVEN chunk (\S+) includes the default splitting rules
# Append default products rules
name="$(basename "${MATCH_1%.*}")"
- cat <<EOF >>"$DATADIR/gits/$name/$MATCH_1"
+ cat <<EOF >>"$DATADIR/gits/morphs/$MATCH_1"
products:
- artifact: $name-bins
include: [ "(usr/)?s?bin/.*" ]
@@ -117,8 +117,8 @@ Implementations
- artifact: $name-misc
include: [ .* ]
EOF
- run_in "$DATADIR/gits/$name" git add "$MATCH_1"
- run_in "$DATADIR/gits/$name" git commit -m 'Add default splitting rules'
+ run_in "$DATADIR/gits/morphs" git add "$MATCH_1"
+ run_in "$DATADIR/gits/morphs" git commit -m 'Add default splitting rules'
IMPLEMENTS GIVEN stratum (\S+) includes the default splitting rules
name=$(basename "${MATCH_1%.*}")
@@ -142,6 +142,7 @@ Implementations
- name: test-chunk
repo: test:test-chunk
ref: master
+ morph: test-chunk.morph
build-mode: test
build-depends: []
artifacts:
@@ -169,14 +170,14 @@ Implementations
IMPLEMENTS GIVEN stratum (\S+) has chunks that aren't used in (\S+)
# Create an extra chunk that will never successfully build
- cat >"$DATADIR/gits/test-chunk/unbuildable-chunk.morph" <<EOF
+ cat >"$DATADIR/gits/morphs/unbuildable-chunk.morph" <<EOF
name: unbuildable-chunk
kind: chunk
install-commands:
- "false"
EOF
- run_in "$DATADIR/gits/test-chunk" git add unbuildable-chunk.morph
- run_in "$DATADIR/gits/test-chunk" git commit -m 'Add unbuildable chunk'
+ run_in "$DATADIR/gits/morphs" git add unbuildable-chunk.morph
+ run_in "$DATADIR/gits/morphs" git commit -m 'Add unbuildable chunk'
# Create a stratum that has an artifact that doesn't include any
# artifacts from unbuildable-chunk
@@ -189,11 +190,13 @@ Implementations
- name: test-chunk
repo: test:test-chunk
ref: master
+ morph: test-chunk.morph
build-mode: test
build-depends: []
- name: unbuildable-chunk
repo: test:test-chunk
ref: refs/heads/master
+ morph: unbuildable-chunk.morph
build-mode: test
build-depends:
- test-chunk