# YAML schema for GitHub Actions:
# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions
#
# Helpful YAML parser to clarify YAML syntax:
# https://yaml-online-parser.appspot.com/
#
# This file can not be run stand-alone. It is called from tests_entry.yml as part of
# the ci automation or from run_xtensa.yml for scheduled or manual dispatch.

name: Xtensa Presubmit

on:
  workflow_call:
    inputs:
      trigger-sha:
        required: true
        type: string
    secrets:
      tflm-bot-token:
        required: true

jobs:

  vision_p6_presubmit:
    runs-on: ubuntu-latest

    name: Vision P6 Build (presubmit)
    steps:
      - uses: actions/checkout@v2
        with:
          ref: ${{ inputs.trigger-sha }}
      - run: |
          rm -rf .git
          echo ${{ secrets.tflm-bot-token }} | docker login ghcr.io -u tflm-bot --password-stdin
          docker run --env XTENSA_TOOLS_VERSION=RI-2020.4-linux --rm -v `pwd`:/opt/tflite-micro ghcr.io/tflm-bot/xtensa_xplorer_13:0.1 \
          /bin/bash -c \
          "cd /opt && tflite-micro/tensorflow/lite/micro/tools/ci_build/test_xtensa_vision_p6.sh RUN_NO_TESTS tflite-micro/"

  hifi5_unit_tests:
    runs-on: ubuntu-latest

    name: Hifi5 Unit Tests (presubmit)
    steps:
      - uses: actions/checkout@v2
        with:
          ref: ${{ inputs.trigger-sha }}
      - run: |
          rm -rf .git
          echo ${{ secrets.tflm-bot-token }} | docker login ghcr.io -u tflm-bot --password-stdin
          docker run --env XTENSA_TOOLS_VERSION=RI-2022.9-linux --rm -v `pwd`:/opt/tflite-micro ghcr.io/tflm-bot/xtensa_hifi5:0.1 \
          /bin/bash -c \
          "cd /opt && tflite-micro/tensorflow/lite/micro/tools/ci_build/test_xtensa_hifi5.sh tflite-micro/"

  hifi_3z_unit_tests:
    runs-on: ubuntu-latest

    name: Hifi3z Unit Tests (presubmit)
    steps:
      - uses: actions/checkout@v2
        with:
          ref: ${{ inputs.trigger-sha }}
      - run: |
          rm -rf .git
          echo ${{ secrets.tflm-bot-token }} | docker login ghcr.io -u tflm-bot --password-stdin
          docker run --env XTENSA_TOOLS_VERSION=RI-2020.4-linux --rm -v `pwd`:/opt/tflite-micro ghcr.io/tflm-bot/xtensa_xplorer_13:0.1 \
          /bin/bash -c \
          "cd /opt && tflite-micro/tensorflow/lite/micro/tools/ci_build/test_xtensa_hifi3z.sh EXTERNAL tflite-micro/"
