Comprehensive Example: copytarget-manifest.yaml

An example of a comprehensive copytarget-manifest.yaml looks like the following.

version: '1.4'
# Exports environment variables
exports:
    - SAMPLES_HOME: /home/nvidia/drive-linux/samples/
    - FILE_VERSION: 1
# Itemised file list
fileList:
      # The following attribute creates a directory 
"${TARGET_DIRECTORY}/nvidia/"
      # with ownership 0:0 and permission 0755; where 
${TARGET_DIRECTORY} is the target directory specified to CopyTarget.
    - destination: /nvidia/
      perm: 0755
      owner: 0
      group: 0
      filesystems:
          standard:
              required: yes
          safety:
              required: yes
              jama: DRV5X-STAKEHLDREQPLCL3-2429
          safety_debug:
              required: yes
              jama: DRV5X-STAKEHLDREQPLCL3-2429
      # The following attribute copies the file from 
"${WORKSPACE}/home/drive/samples/nvidia_sample"
      # to "${TARGET_DIRECTORY}/nvidia/nvidia_sample" 
with ownership 1000:1000 and permission 0777 when "pdk_sdk_installed_path" source-type is chosen.
      # The file is only copied when the chosen filesystem-type 
is either safety or safety-debug.
    - destination: /nvidia/nvidia_sample
      source:
          pdk_sdk_installed_path: nvidia_sample
          build_tree_path: nvidia_sample_internal
      perm: 0777
      owner: 1000
      group: 1000
      filesystems:
          standard:
              required: no
          safety:
              required: yes
              jama: DRV5X-STAKEHLDREQPLCL3-2429
          safety_debug:
              required: yes
              jama: DRV5X-STAKEHLDREQPLCL3-2429
      # The following attribute creates a symlink at 
"${TARGET_DIRECTORY}/nvidia_sample_1"
      # pointing to "/nvidia/nvidia_sample"; where 
${TARGET_DIRECTORY} is the target directory specified to CopyTarget.
      # In this example, the symlink is only created for "standard" filesystem.
    - destination: /nvidia_sample_${FILE_VERSION}
      source:
          pdk_sdk_installed_path: /nvidia/nvidia_sample
          build_tree_path: /nvidia/nvidia_sample
      create_symlink: true
      filesystems:
          standard:
              required: yes
              jama: DRV5X-STAKEHLDREQPLCL3-1234
          safety:
              required: no
          safety_debug:
              required: no
      # The following attribute removes file 
"${TARGET_DIRECTORY}/nvidia/nvidia_sample";
      # where ${TARGET_DIRECTORY} is the target 
directory specified to CopyTarget.
      # Since filesystems field is not defined, this 
item will be process for ALL filesystem-types.
    - destination: ${targetdir}/nvidia/nvidia_sample
      remove: true