refactor: move LAVA job definition templates into independent files

This change introduces a new script function to expand the variables in
a file. With this, we can move the LAVA YAML job template descriptions,
which are currently embedded inside individual HEREDOCs, into their own
files.

Signed-off-by: Chris Kay <chris.kay@arm.com>
Change-Id: I09805ab4b6894a371e63a944d113ca2f475a806b
diff --git a/script/gen_n1sdp_linux_yaml.sh b/script/gen_n1sdp_linux_yaml.sh
index 36c7f0d..c0a7165 100755
--- a/script/gen_n1sdp_linux_yaml.sh
+++ b/script/gen_n1sdp_linux_yaml.sh
@@ -27,183 +27,4 @@
 
 recovery_img_url="${recovery_img_url:-$(get_recovery_image_url)}"
 
-cat <<EOF
-device_type: n1sdp
-job_name: tf-n1sdp
-timeouts:
-  job:
-    minutes: 30
-
-priority: medium
-visibility: public
-context:
-  extra_nfsroot_args: ',vers=3'
-  extra_kernel_args: rootwait
-actions:
-#
-# Any firmware bundle deployed must be configured to boot automatically without
-# intervention. This means "PMIC_FORCE" must be set "TRUE" in the config file
-# to be deployed.
-#
-#
-# Deploy a firmware bundle with the customised "uefi.bin" installed. This
-# enables an EFI network driver, allowing us to force a TFTP boot from GRUB (assuming cobbler is setup)
-#
-- deploy:
-    namespace: recovery
-    to: flasher
-    images:
-      recovery_image:
-        url: http://files.oss.arm.com/downloads/lava/health-checks/n1sdp/4/n1sdp-board-firmware-force-netboot.zip
-        compression: zip
-
-- deploy:
-    namespace: debian
-    to: tftp
-    os: debian
-    kernel:
-      url: http://files.oss.arm.com/downloads/lava/health-checks/n1sdp/4/debian/linux
-      type: image
-    ramdisk:
-      url: http://files.oss.arm.com/downloads/lava/health-checks/n1sdp/4/debian/ramdisk.img
-    nfsrootfs:
-      url: http://files.oss.arm.com/downloads/lava/health-checks/n1sdp/4/debian/debian-buster-arm64-rootfs.tar.xz
-      compression: xz
-
-- boot:
-    namespace: recovery
-    timeout:
-      minutes: 3
-    method: minimal
-    parameters:
-      kernel-start-message: ''
-    prompts: ['Cmd>']
-
-- boot:
-    namespace: uart1
-    method: new_connection
-    connection: uart1
-
-- boot:
-    namespace: debian
-    connection-namespace: uart1
-    timeout:
-      minutes: 5
-    method: grub
-    commands: nfs
-    prompts:
-      - '/ # '
-
-- test:
-    namespace: debian
-    timeout:
-      minutes: 5
-    definitions:
-      - repository:
-          metadata:
-            format: Lava-Test Test Definition 1.0
-            name: device-network
-            description: '"Test device network connection"'
-            os:
-              - debian
-            scope:
-              - functional
-          run:
-            steps:
-              - apt -q update
-              - apt -q install -y iputils-ping
-              - ping -c 5 www.arm.com || lava-test-raise "Device failed to reach a remote host"
-              - hostname -I
-        from: inline
-        name: device-network
-        path: inline/device-network.yaml
-
-- test:
-    namespace: debian
-    timeout:
-      minutes: 5
-    definitions:
-      - repository:
-          metadata:
-            format: Lava-Test Test Definition 1.0
-            name: install-dependancies
-            description: '"Install dependancies for secondary media deployment"'
-            os:
-              - debian
-            scope:
-              - functional
-          run:
-            steps:
-              - apt-get update -q
-              - apt-get install -qy wget
-        from: inline
-        name: install-dependancies
-        path: inline/install-dependancies.yaml
-
-- deploy:
-    namespace: secondary_media
-    connection-namespace: uart1
-    timeout:
-      minutes: 10
-    to: usb
-    os: busybox
-    images:
-      image:
-        url: "$n1sdp_prebuilts/busybox.img"
-    uniquify: false
-    device: usb_storage_device
-    download:
-      tool: /usr/bin/wget
-      prompt: HTTP request sent, awaiting response
-      options: --no-check-certificate --no-proxy --connect-timeout=30 -S --progress=dot:giga -O - {DOWNLOAD_URL}
-
-#
-# Deploy the primary board firmware bundle (this time without the additinal
-# network driver).
-#
-- deploy:
-    namespace: recovery
-    to: flasher
-    images:
-      recovery_image:
-        url: $recovery_img_url
-        compression: zip
-
-#
-# Do not verify the flash second time around as cached serial output on the
-# connection will immediately match the prompt.
-#
-- boot:
-    namespace: secondary_media
-    timeout:
-      minutes: 10
-    method: minimal
-    prompts:
-      - '/ #'
-    transfer_overlay:
-      download_command: wget -S
-      unpack_command: tar -C / -xzf
-
-- test:
-    namespace: secondary_media
-    timeout:
-      minutes: 5
-    definitions:
-      - repository:
-          metadata:
-            format: Lava-Test Test Definition 1.0
-            name: linux-console-test-in-deployed-image
-            description: '"Run LAVA test steps inside the deployed image"'
-            os:
-              - oe
-            scope:
-              - functional
-          run:
-            steps:
-              - fdisk -l
-              - ip addr show
-              - cat /proc/cpuinfo
-        from: inline
-        name: linux-console-test
-        path: inline/linux-console-test.yaml
-EOF
+expand_template "$(dirname "$0")/lava-templates/n1sdp-linux.yaml"