# Debian arm64 NFS, initramfs, modules and dtbs

- job:
    name: lava-debian-buster-arm64
    project-type: freestyle
    defaults: global
    logrotate:
        daysToKeep: 14
        numToKeep: 5
    properties:
        - authorization:
            anonymous:
                - job-read
                - job-extended-read
            platform-leads:
                - job-build
                - job-cancel
    disabled: true
    node: docker-stretch-amd64
    display-name: 'DELETE ME'
    wrappers:
        - timestamps
    builders:
        - linaro-publish-token
        - shell: |
            #!/bin/bash

            mkdir out
            cd out/
            echo "deb http://mirror.bytemark.co.uk/debian stretch-backports main" > stretch-backports.list
            sudo mv stretch-backports.list /etc/apt/sources.list.d/
            sudo apt-get update
            sudo DEBIAN_FRONTEND=noninteractive apt -q -y install qemu-user-static debootstrap python-guestfs
            wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-nfs.sh
            wget https://git.linaro.org/lava-team/refactoring.git/blob_plain/HEAD:/scripts/build-foreign-image.sh
            chmod 755 ./build-foreign-nfs.sh
            chmod 755 ./build-foreign-image.sh
            sudo ./build-foreign-nfs.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d buster
            sudo ./build-foreign-image.sh -a arm64 -b /usr/bin/qemu-aarch64-static -d buster
            cd ..
            cat > ${WORKSPACE}/out/debian-buster-arm64-readme.html <<EOF
            <html><body><pre>
            lava-debian-buster-arm64 build instructions
            ========================================

            This initramfs is built using update-initramfs inside a minimal
            Debian Buster debootstrap chroot. The contents of the chroot is
            then packaged up as an NFS with an empty root password.

            apt is included in the NFS, as are bash, grep, iproute2, mawk and
            sed. The NFS uses the default init in buster: systemd.

            The Debian ARM64 kernel is a modular build and the modules
            need to be available in the initramfs for the kernel to be
            able to mount the NFS. The initramfs does not have DNS
            support.

            A similar chroot is created with systemd-sysv added. The chroot is
            unpacked into an empty ext2 primary partition of an image:
            buster-arm64.img The UUID of the partition is available as
            buster-arm64.img.uuid.txt and should be appended to the kernel command
            line using the root= argument when testing the image using QEMU in
            LAVA to ensure that the correct drive is booted. The image has
            systemd-networkd and systemd-resolved enabled to use DHCP on the
            primary network interface.

            When using the image and the UUID, ensure that you also use the
            checksums to ensure that the UUID matches the files being
            downloaded.

            https://ci.linaro.org/view/lava-ci/job/lava-debian-buster-arm64/

            The scripts used by jenkins are available here:
            https://git.linaro.org/lava-team/refactoring.git/tree/HEAD:/scripts

            https://git.linaro.org/ci/job/configs.git/blob/HEAD:/lava-debian-buster-arm64.yaml
            The base system is a Debian Buster VM.

            The NFS rootfs and the image both use a prompt of "root@buster:" and
            the same auto login details:
                auto_login:
                    login_prompt: 'login:'
                    username: root

            </pre></body></html>
            EOF

            # echo final location
            echo Publishing to: http://snapshots.linaro.org/components/lava/standard/debian/buster/arm64/${BUILD_NUMBER}

            # 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 python3 ${HOME}/bin/linaro-cp.py --api_version 3 out components/lava/standard/debian/buster/arm64/${BUILD_NUMBER}
    publishers:
        # - archive:
        #    artifacts: 'out/*'
        - email:
            recipients: 'neil.williams@linaro.org fathi.boudra@linaro.org'
