# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

name: PkgCI

on:
  workflow_dispatch:
  pull_request:
  push:
    branches:
      - main
      # Experimental branches can also get packages and tests automatically.
      - exppkg-*

concurrency:
  # A PR number if a pull request and otherwise the commit hash. This cancels
  # queued and in-progress runs for the same PR (presubmit) or commit
  # (postsubmit). The workflow name is prepended to avoid conflicts between
  # different workflows.
  group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
  cancel-in-progress: true

jobs:
  setup:
    uses: ./.github/workflows/setup.yml

  build_packages:
    name: Build Packages
    needs: setup
    if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'build_packages')
    uses: ./.github/workflows/pkgci_build_packages.yml
    with:
      package_version: 0.dev1

  regression_test_cpu:
    name: Regression Test CPU
    needs: [setup, build_packages]
    if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'regression_test_cpu')
    uses: ./.github/workflows/pkgci_regression_test_cpu.yml

  regression_test_amdgpu_vulkan:
    name: Regression Test AMDGPU-Vulkan
    needs: [setup, build_packages]
    if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'regression_test_amdgpu_vulkan')
    uses: ./.github/workflows/pkgci_regression_test_amdgpu_vulkan.yml

  regression_test_amdgpu_rocm:
    name: Regression Test AMDGPU-ROCm
    needs: [setup, build_packages]
    if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'regression_test_amdgpu_rocm')
    uses: ./.github/workflows/pkgci_regression_test_amdgpu_rocm.yml

  test_tensorflow_cpu:
    name: Test TensorFlow CPU
    needs: [setup, build_packages]
    if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_tensorflow_cpu')
    uses: ./.github/workflows/pkgci_test_tensorflow_cpu.yml
