# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0

workflow:
  name: serial-tasks
  tasks:

  ##############################
  # Task 1
  ##############################
  - name: task1
    image: ubuntu:22.04
    command: [sh]
    args: [/tmp/run.sh]
    files:
    - contents: |
        echo "Hello from task1 $(hostname)"
        echo "Data from task 1" > {{output}}/test_read.txt # (1)
      path: /tmp/run.sh

  ##############################
  # Task 2 (depends on Task 1)
  ##############################
  - name: task2
    image: ubuntu:22.04
    command: ['sh']
    args: ['/tmp/run.sh']
    files:
    - contents: |
        echo "Hello from task2 {{output}}"

        echo "Reading from task 1"
        while IFS= read -r line; do
          echo "a line: $line"
        done < {{input:0}}/test_read.txt

        echo "Data from task 2" > {{output}}/test_read.txt
      path: /tmp/run.sh
    resource: default
    inputs:
    - task: task1 # (2)

  #########################################
  # Task 3 (depends on Task 1 and Task 2)
  #########################################
  - name: task3
    image: ubuntu:22.04
    command: ['sh']
    args: ['/tmp/run.sh']
    files:
    - contents: |
        echo "Hello from task3 {{output}}"

        echo "Reading from task 1"
        while IFS= read -r line; do
          echo "a line: $line"
        done < {{input:0}}/test_read.txt

        echo "Reading from task 2"
        while IFS= read -r line; do
          echo "a line: $line"
        done < {{input:1}}/test_read.txt

        echo "Data from task 3" > {{output}}/test_read.txt
      path: /tmp/run.sh
    inputs:
    - task: task1
    - task: task2
