# Copyright 2022 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
#
# Workflow for running Examples of IREE usage against releases periodically.

name: samples

on:
  schedule:
    # Weekdays at 13:00 UTC = 05:00 PST / 06:00 PDT. No one should be dealing
    # with this on weekends.
    - cron: "5 4 * * 1-5"
  workflow_dispatch:

permissions:
  contents: read

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:
  colab:
    runs-on: ubuntu-20.04
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
      - name: "Setting up Python"
        uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1  # v4.7.0
        with:
          python-version: '3.11'
      - name: "Testing Colab Notebooks"
        run: ./samples/colab/test_notebooks.py

  samples:
    runs-on: ubuntu-20.04
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
      - name: "Checking out runtime submodules"
        run: ./build_tools/scripts/git/update_runtime_submodules.sh
      - name: "Installing build dependencies"
        run: |
          sudo apt update
          sudo apt install cmake clang ninja-build
          export CC=clang
          export CXX=clang++
      - name: "Setting up Python"
        uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1  # v4.7.0
        with:
          python-version: '3.11'
      - name: "Testing Samples"
        run: ./build_tools/testing/test_samples.sh

  # TODO(scotttodd): Convert web test scripts to use installed compiler packages and local runtime
  #                  builds, rather than local compiler builds. The host tools are too slow to build
  #                  on standard sized runners (and for casual users).

  # web:
  #   runs-on: ubuntu-20.04
  #   # TODO: remove dependence on magic matching build dir names
  #   env:
  #     HOST_BUILD_DIR: build-host-install
  #   steps:
  #     - name: "Checking out repository"
  #       uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
  #       with:
  #         submodules: true
  #     - name: "Building host tools"
  #       run: |
  #         ./build_tools/github_actions/docker_run.sh  \
  #           --env "CCACHE_NAMESPACE=gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446" \
  #           gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 \
  #           ./build_tools/cmake/build_host_tools.sh "${HOST_BUILD_DIR}"
  #     - name: "Testing Experimental Web Samples"
  #       env:
  #         IREE_EMPSCRIPTEN_BUILD_DIR: build-emscripten
  #       run: |
  #         ./build_tools/github_actions/docker_run.sh  \
  #           --env "IREE_HOST_BUILD_DIR=${HOST_BUILD_DIR}" \
  #           --env "IREE_EMPSCRIPTEN_BUILD_DIR=${IREE_EMPSCRIPTEN_BUILD_DIR}" \
  #           gcr.io/iree-oss/emscripten@sha256:2dd4c52f1bb499ab365aad0111fe5538b685d88af38636b409b0cf6a576ab214 \
  #           ./experimental/web/build_and_test_samples.sh
