# 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:

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-64core
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
      - name: "Testing Colab Notebooks"
        run: |
          ./build_tools/github_actions/docker_run.sh  \
            gcr.io/iree-oss/samples@sha256:c1312188958a58d464079651061311e5fb0e77a44ad19239b5c244ed2bf5b027 \
            ./samples/colab/test_notebooks.py

  samples:
    runs-on: ubuntu-20.04-64core
    steps:
      - name: "Checking out repository"
        uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
      - name: "Testing Samples"
        run: |
          ./build_tools/github_actions/docker_run.sh  \
            gcr.io/iree-oss/samples@sha256:c1312188958a58d464079651061311e5fb0e77a44ad19239b5c244ed2bf5b027 \
            ./build_tools/testing/test_samples.sh

  # FIXME: unify this with host build from ci.yml. This is complicated by
  # incompatibility between storage options for GitHub-managed and self-hosted
  # runners.
  web:
    runs-on: ubuntu-20.04-64core
    # 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:796fb81a11ff7e7d057c93de468b74e48b6a9641aa19b7f7673c2772e8ea3b33" \
            gcr.io/iree-oss/base@sha256:796fb81a11ff7e7d057c93de468b74e48b6a9641aa19b7f7673c2772e8ea3b33 \
            ./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:6e412f7ca51439ffce051a8a2e8fcbd7398743f461930a5f51c089441ffc3588 \
            ./experimental/web/build_and_test_samples.sh
