aboutsummaryrefslogtreecommitdiff
path: root/lavatest.yaml
blob: cc02289882a8c358504c382d25121481bac37ff8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
metadata:
   name: deploy-cloudimg
   maintainer:
      - Michael Hudson-Doyle <michael.hudson@linaro.org>
   format: "Lava-Test-Shell Test Definition 1.0"
   version: 1.0
   description: "Deploy an Ubuntu cloud image to /dev/sda."
   os:
     - ubuntu
   devices:
     # Only tested on mustang so far.
     - mustang
   environment:
     - lava-test-shell

#
# We relly on the bootstrap image being correctly set-up as we may not have
# enough name resolution set-up to install packages here. Some packages we do
# need to be present are:
#
# wget
# cloud-guest-utils
# e2fsprogs

run:
  steps:
    - "set -x"
    - "resolvconf -u"
    - "wget --progress=dot -e dotbytes=10M -O cloud.dl $LAVA_CLOUD_IMG_URL"
    - "file cloud.dl"
    - "if file cloud.dl | grep -q gzip; then"
    - "    CAT=zcat"
    - "    F=cloud.dl"
    - "else"
    - "    qemu-img convert -O raw cloud.dl cloud.raw"
    - "    F=cloud.raw"
    - "    CAT=cat"
    - "fi"
    - "$CAT $F | dd of=/dev/sda bs=1M"
    - "rm cloud.*"
    - "sync"
    - "echo 1 > /sys/class/block/sda/device/rescan"
    - "mount /dev/sda1 /mnt"
    - "mkdir -p /mnt/var/lib/cloud/seed/nocloud-net"
    - "cp -a cloud-seed/* /mnt/var/lib/cloud/seed/nocloud-net/"
    - "if type -p lava-self > /dev/null; then"
    - "    HOSTNAME=$(lava-self)"
    - "else"
    - "    HOSTNAME=linaro-test"
    - "fi"
    - 'echo "s/@HOSTNAME@/$HOSTNAME/g" >> /tmp/cloud-init.sed'
    - 'find /mnt/var/lib/cloud/seed/nocloud-net/ -type f -print0 | xargs -0 sed -i -f /tmp/cloud-init.sed'
    - "cat ps1-setting-frag ' >> /mnt/etc/profile"
    - "cat ps1-setting-frag ' >> /mnt/etc/skel/.bashrc"
    - "mv /mnt/etc/resolv.conf /mnt/etc/resolv.conf.bak"
    - "cp /etc/resolv.conf /mnt/etc/resolv.conf"
    - "mount -t proc procfs /mnt/proc"
    - "cp boot.script in-chroot.sh /mnt/"
    - '[ -n "$EXTRA_PREP_SCRIPT_URL" ] && { wget -O /mnt/extra --progress=dot -e dotbytes=1k $EXTRA_PREP_SCRIPT_URL; chmod u+x /mnt/extra; }'
    - "chroot /mnt bash -x /in-chroot.sh"
    - "rm /mnt/in-chroot.sh"
    - "[ -f /mnt/extra ] && rm /mnt/extra"
    - "mv /mnt/etc/resolv.conf.bak /mnt/etc/resolv.conf"
    - "umount /mnt/proc"
    - "sync"
    - "umount /mnt || true"
    - "growpart /dev/sda 1"
    - "e2fsck -y -f /dev/sda1"
    - "resize2fs /dev/sda1"
    - "sync"
    - "sleep 5"
    - "sync"

params:
  LAVA_CLOUD_IMG_URL: 'http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-arm64-disk1.img'
  EXTRA_PREP_SCRIPT_URL: ''