From e86eae318a83a429a0f27954866217ebf2efa6a5 Mon Sep 17 00:00:00 2001 From: Adam Coldrick Date: Fri, 18 Jul 2014 16:10:24 +0100 Subject: yarns: Test building and deployment of a system with a chunk in definitions --- yarns/implementations.yarn | 24 +++++++++++++----------- yarns/regression.yarn | 10 ++++------ yarns/splitting.yarn | 15 +++++++++------ 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 <>"$DATADIR/gits/$name/$MATCH_1" + cat <>"$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" <"$DATADIR/gits/morphs/unbuildable-chunk.morph" <