Skip to content

Downloads

Downloads deploy

Download the given images and allow to post-process the images.

actions:
- deploy:
    to: downloads
    images:
      rootfs:
        url: https://example.com/rootfs.img.xz
        compression: xz

Post-processing

The downloads deploy action allows to run a custom post-processing script. The configuration would look like the following:

actions:
- deploy:
    to: downloads
    images:
      rootfs:
        url: https://example.com/sid.img.xz
        compression: xz
    postprocess:
      docker:
        image: debian
        steps:
        - cp sid.img sid-modified.img
        - ls -lhR

The post-processing steps are ran inside the provided docker container. The artifacts will be in sub-directories of the working directory. The name of the sub-directories are the keys of the images dictionary (rootfs in the example).

Using the artifacts

In subsequent deploy actions, you can use the artifacts created by the postprocessing step with downloads://sid-modified.img.

LAVA overlay

LAVA overlay is prepared when there is a test action available in the job. In some cases LAVA is able to add overlay to image as part of the download process. As this is not always the case, it is useful to have access to overlay tarball in the postprocessing step. The file is available in the downloads directory. The file name isn't constant as it depends on the test job definition structure. Example file name can look like:

overlay-1.1.5.tar.gz

It always starts with overlay and ends with .tar.gz. The middle part depends is the ID of the action in the LAVA job definition and will be different for different job definitions.

Example use of overlay in the postprocessing step can be adding it to the ramdisk

- deploy:
    images:
      image:
        url: 'https://example.com/Image'
      dtb:
        url: 'https://example.com/device.dtb'
      ramdisk:
        url: 'https://example.com/ramdisk.gz'
    timeout:
      minutes: 5
    to: downloads
    postprocess:
      docker:
        image: mkbootimage:master
        steps:
        - mkdir lava_overlay
        - tar xvf overlay*.tar.gz -C lava_overlay
        - "(cd lava_overlay ; find * | cpio -o -H newc -R +0:+0 | gzip -9 >> ../ramdisk.gz)"
        - mkbootimg --header_version 2 --kernel Image --dtb device.dtb --cmdline "earlycon clk_ignore_unused pd_ignore_unused audit=0" --ramdisk ramdisk.gz --output boot.img