aboutsummaryrefslogtreecommitdiff
path: root/96boards-reference-platform-hikey-sd-installer/builders.sh
blob: cf457f4432bb3f5d0d241c174c09e325261c0e96 (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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash

set -ex

trap cleanup_exit INT TERM EXIT

cleanup_exit()
{
  sudo umount bootfs || true
  sudo umount rootfs || true
  sudo kpartx -dv hikey-sd-install.img || true
  rm -rf hikey-sd-install.img out
}

export DEBIAN_FRONTEND=noninteractive
sudo apt-get update -q=2
sudo apt-get install -q=2 -y --no-install-recommends pigz

# Get installer rootfs
export ROOTFS_BUILD_TIMESTAMP=$(wget -q  -O - https://ci.linaro.org/job/debian-arm64-rootfs/label=docker-jessie-arm64,rootfs=installer/lastSuccessfulBuild/buildTimestamp?format=yyyyMMdd)
export ROOTFS_BUILD_NUMBER=$(wget -q  -O - https://ci.linaro.org/job/debian-arm64-rootfs/label=docker-jessie-arm64,rootfs=installer/lastSuccessfulBuild/buildNumber)
export ROOTFS_BUILD_URL="http://snapshots.linaro.org/debian/images/installer-arm64/${ROOTFS_BUILD_NUMBER}/linaro-jessie-installer-${ROOTFS_BUILD_TIMESTAMP}-${ROOTFS_BUILD_NUMBER}.tar.gz"
wget -nc --progress=dot -e dotbytes=2M ${ROOTFS_BUILD_URL}

mkdir -p out bootfs rootfs

# Build information
cat > out/HEADER.textile << EOF

h4. Reference Platform Build - Installer for HiKey

Build description:
* Build URL: "${BUILD_URL}":${BUILD_URL}
* Installer Rootfs: "${ROOTFS_BUILD_URL}":${ROOTFS_BUILD_URL}
EOF

# set up partitions
dd if=/dev/zero of=hikey-sd-install.img bs=2096 seek=1M count=0
/sbin/parted --script hikey-sd-install.img mklabel msdos
/sbin/parted --script hikey-sd-install.img mkpart p fat16 0 50
/sbin/parted --script hikey-sd-install.img set 1 boot
/sbin/parted --script -- hikey-sd-install.img mkpart p ext4 50 -0

for device in $(sudo kpartx -avs hikey-sd-install.img | cut -d' ' -f3); do
  partition=$(echo ${device} | cut -d'p' -f3)
  case "${partition}" in
    1)
      sudo mkfs.fat -F16 /dev/mapper/${device}
      sudo mount /dev/mapper/${device} bootfs
      ;;
    2)
      sudo mkfs.ext4 /dev/mapper/${device}
      sudo mount /dev/mapper/${device} rootfs
      sudo tar xf linaro-jessie-installer-${ROOTFS_BUILD_TIMESTAMP}-${ROOTFS_BUILD_NUMBER}.tar.gz -C rootfs --strip-components=1
      ;;
  esac
done

sudo mkdir -p rootfs/mnt/debian rootfs/boot/efi/EFI/BOOT
sudo chroot rootfs apt-get update -q=2
sudo chroot rootfs apt-get install -q=2 -y linux-image-reference-arm64
sudo rm rootfs/var/cache/apt/archives/*deb rootfs/var/lib/apt/lists/*||true
sudo chroot rootfs /usr/sbin/grub-install-hikey -s
sudo cp -a rootfs/boot/efi/* bootfs/
sudo chown ${USER}:${USER} rootfs/mnt/debian

# download alip image for flash
export ROOTFS_BUILD_TIMESTAMP=$(wget -q  -O - https://ci.linaro.org/job/96boards-reference-platform-debian/BOARD=hikey,label=docker-jessie-amd64/lastSuccessfulBuild/buildTimestamp?format=yyyyMMdd)
export ROOTFS_BUILD_NUMBER=$(wget -q  -O - https://ci.linaro.org/job/96boards-reference-platform-debian/BOARD=hikey,label=docker-jessie-amd64/lastSuccessfulBuild/buildNumber)
export TARGET_ROOT_URL="https://builds.96boards.org/snapshots/reference-platform/debian/${ROOTFS_BUILD_NUMBER}/hikey/hikey-rootfs-debian-jessie-alip-${ROOTFS_BUILD_TIMESTAMP}-${ROOTFS_BUILD_NUMBER}.emmc.img.gz"
export TARGET_BOOT_URL="https://builds.96boards.org/snapshots/reference-platform/debian/${ROOTFS_BUILD_NUMBER}/hikey/hikey-boot-linux-${ROOTFS_BUILD_TIMESTAMP}-${ROOTFS_BUILD_NUMBER}.uefi.img.gz"
wget -nc --progress=dot -e dotbytes=2M -O rootfs/mnt/debian/rootfs.img.gz ${TARGET_ROOT_URL}
wget -nc --progress=dot -e dotbytes=2M -O rootfs/mnt/debian/boot.img.gz ${TARGET_BOOT_URL}

sudo cp -a rootfs/usr/share/96boards-tools/flash-hikey rootfs/mnt/flash

cat << EOF > rootfs/mnt/debian/os.json
{
    "name": "Reference platform Debian Desktop for hikey - Build ${BUILD_NUMBER}",
    "url": "http://builds.96boards.org/releases/installer/hikey",
    "version": "${ROOTFS_BUILD_NUMBER}",
    "release_date": "$(date +%Y-%m-%d)",
    "description": "Reference platform Debian LXDE desktop for hikey"
}
EOF

sudo umount bootfs rootfs
sudo kpartx -dv hikey-sd-install.img
time pigz -9 hikey-sd-install.img
mv hikey-sd-install.img.gz out/hikey-sd-installer-${BUILD_NUMBER}.img.gz

# Publish
test -d ${HOME}/bin || mkdir ${HOME}/bin
wget -q https://git.linaro.org/ci/publishing-api.git/blob_plain/HEAD:/linaro-cp.py -O ${HOME}/bin/linaro-cp.py
time python ${HOME}/bin/linaro-cp.py \
  --server ${PUBLISH_SERVER} \
  --link-latest \
  out/ snapshots/reference-platform/installer/hikey/${BUILD_NUMBER}/