aboutsummaryrefslogtreecommitdiff
path: root/96boards-reference-debian-installer-staging.yaml
blob: 06f62019958c5403ad748ae8f14455990b03cf9b (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
- job:
    name: 96boards-reference-debian-installer-staging
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 30
        numToKeep: 30
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
                - job-workspace
            linaro:
                - job-read
                - job-extended-read
                - job-build
                - job-cancel
    disabled: false
    node: docker-jessie-arm64
    display-name: '96boards - Reference Component Enterprise - Debian Installer (Staging)'
    wrappers:
        - timestamps
        - build-name:
            name: '#${BUILD_NUMBER}'
    builders:
        - linaro-publish-token:
            host: builds.96boards.org
        - shell: |
            #!/bin/bash

            set -ex

            echo "deb http://repo.linaro.org/ubuntu/linaro-overlay jessie main" > local.list
            echo "deb http://repo.linaro.org/ubuntu/linaro-staging jessie main" >> local.list
            sudo cp local.list /etc/apt/sources.list.d/

            sudo apt-get update
            sudo apt-get install -y debian-archive-keyring gnupg dctrl-tools bc debiandoc-sgml xsltproc libbogl-dev glibc-pic libslang2-pic libnewt-pic genext2fs e2fsprogs mklibs genisoimage dosfstools
            sudo apt-get install -y grub-efi-arm64-bin mtools module-init-tools openssl xorriso bf-utf-source docbook-xml docbook-xsl cpio

            # Find kernel abi
            KERNEL_ABI=`apt-cache show linux-image-reference-arm64 | grep -m 1 Depends | sed -e "s/.*linux-image-//g" -e "s/-arm64//g"`

            # Build the installer
            DEB_INSTALLER_VERSION="20150422+deb8u3"
            dget http://ftp.us.debian.org/debian/pool/main/d/debian-installer/debian-installer_${DEB_INSTALLER_VERSION}.dsc
            cd debian-installer-*
            ## https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810654, so lava can use grub to load grub.cfg from the local disk
            sed -i 's/fshelp|//g' build/util/grub-cpmodules

            # Config changes
            cd build
            sed -i "s/LINUX_KERNEL_ABI.*/LINUX_KERNEL_ABI = $KERNEL_ABI/g" config/common
            sed -i "s/PRESEED.*/PRESEED = default-preseed/g" config/common
            sed -i "s/USE_UDEBS_FROM.*/USE_UDEBS_FROM = jessie/g" config/common

            # Local pkg-list (to include all udebs)
            cat <<EOF > pkg-lists/local
            ext4-modules-\${kernel:Version}
            fat-modules-\${kernel:Version}
            btrfs-modules-\${kernel:Version}
            md-modules-\${kernel:Version}
            efi-modules-\${kernel:Version}
            scsi-modules-\${kernel:Version}
            scsi-extra-modules-\${kernel:Version}
            jfs-modules-\${kernel:Version}
            xfs-modules-\${kernel:Version}
            ata-modules-\${kernel:Version}
            sata-modules-\${kernel:Version}
            usb-storage-modules-\${kernel:Version}
            EOF

            # Set up local repo
            cat <<EOF > sources.list.udeb
            deb [trusted=yes] http://repo.linaro.org/ubuntu/linaro-overlay jessie main/debian-installer
            deb [trusted=yes] http://repo.linaro.org/ubuntu/linaro-staging jessie main/debian-installer
            deb http://httpredir.debian.org/debian jessie main/debian-installer
            EOF

            # Default preseed to add the overlay and kernel
            cat <<EOF > default-preseed
            # Continue install on "no kernel modules were found for this kernel"
            d-i anna/no_kernel_modules boolean true

            # Continue install on "no installable kernels found"
            d-i base-installer/kernel/skip-install boolean true
            d-i base-installer/kernel/no-kernels-found boolean true

            # Adding linaro-overlay PPA by default, so it can find the kernel and extra packages
            d-i apt-setup/local0/repository string http://repo.linaro.org/ubuntu/linaro-overlay jessie main
            d-i apt-setup/local0/comment string Linaro Overlay PPA
            d-i apt-setup/local0/source boolean true
            d-i apt-setup/local0/key string http://repo.linaro.org/ubuntu/linarorepo.key

            d-i apt-setup/local1/repository string http://repo.linaro.org/ubuntu/linaro-staging jessie main
            d-i apt-setup/local1/comment string Linaro Staging PPA
            d-i apt-setup/local1/source boolean true
            d-i apt-setup/local1/key string http://repo.linaro.org/ubuntu/linarorepo.key

            d-i pkgsel/upgrade select full-upgrade
            d-i preseed/late_command string in-target apt-get install -y linux-image-reference-arm64
            EOF

            fakeroot make build_netboot
            cd ../..

            cp debian-installer-*/build/dest/netboot/mini.iso .
            cp debian-installer-*/build/dest/netboot/netboot.tar.gz .
    publishers:
        - archive:
            artifacts: 'mini.iso, netboot.tar.gz'
            latest-only: true
        - email:
            recipients: 'ricardo.salveti@linaro.org'