| # 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 in-tree samples 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: | 
 |     if: ${{ github.repository_owner == 'iree-org' || github.event_name != 'schedule' }} | 
 |     runs-on: ubuntu-24.04 | 
 |     steps: | 
 |       - name: "Checking out repository" | 
 |         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | 
 |       - name: "Setting up Python" | 
 |         uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | 
 |         with: | 
 |           python-version: "3.11" | 
 |       - name: "Testing Colab Notebooks" | 
 |         run: ./samples/colab/test_notebooks.py | 
 |  | 
 |   samples: | 
 |     if: ${{ github.repository_owner == 'iree-org' || github.event_name != 'schedule' }} | 
 |     runs-on: ubuntu-24.04 | 
 |     env: | 
 |       CC: clang | 
 |       CXX: clang++ | 
 |     steps: | 
 |       - name: "Checking out repository" | 
 |         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | 
 |       - 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 -y ninja-build | 
 |       - name: "Setting up Python" | 
 |         uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | 
 |         with: | 
 |           python-version: "3.11" | 
 |       - name: "Testing Samples" | 
 |         run: ./build_tools/testing/test_samples.sh | 
 |  | 
 |   web: | 
 |     if: ${{ github.repository_owner == 'iree-org' || github.event_name != 'schedule' }} | 
 |     runs-on: ubuntu-24.04 | 
 |     env: | 
 |       VENV_DIR: ${{ github.workspace }}/.venv | 
 |       CC: clang | 
 |       CXX: clang++ | 
 |     defaults: | 
 |       run: | 
 |         shell: bash | 
 |     steps: | 
 |       - name: "Check out repository" | 
 |         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | 
 |       - name: "Mark git safe.directory" | 
 |         run: git config --global --add safe.directory '*' | 
 |       - name: "Check out runtime submodules" | 
 |         run: ./build_tools/scripts/git/update_runtime_submodules.sh | 
 |       - name: "Installing build dependencies" | 
 |         run: sudo apt update && sudo apt install -y ninja-build | 
 |       - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 | 
 |         with: | 
 |           python-version: "3.11" | 
 |       - name: "Setup Python venv" | 
 |         run: | | 
 |           python3 -m venv ${VENV_DIR} | 
 |           source ${VENV_DIR}/bin/activate | 
 |           python3 -m pip install \ | 
 |             --find-links https://iree.dev/pip-release-links.html \ | 
 |             --upgrade \ | 
 |             --pre \ | 
 |             iree-base-compiler \ | 
 |             iree-base-runtime | 
 |       - name: "Setup emsdk" | 
 |         uses: mymindstorm/setup-emsdk@6ab9eb1bda2574c4ddb79809fc9247783eaf9021 # v14 | 
 |         with: | 
 |           version: 3.1.44 | 
 |       - name: "Test experimental web samples" | 
 |         env: | 
 |           HOST_TOOLS_BINARY_DIR: ${{ env.VENV_DIR }}/bin | 
 |           IREE_EMPSCRIPTEN_BUILD_DIR: build-emscripten | 
 |         run: | | 
 |           source ${VENV_DIR}/bin/activate | 
 |           ./experimental/web/build_and_test_samples.sh ${HOST_TOOLS_BINARY_DIR} | 
 |  | 
 |   # Aggregate job status and alerting on failures. | 
 |   samples_summary: | 
 |     if: always() | 
 |     needs: | 
 |       - colab | 
 |       - samples | 
 |       - web | 
 |     uses: ./.github/workflows/workflow_summary.yml | 
 |     secrets: inherit | 
 |     with: | 
 |       jobs-json: ${{ toJson(needs) }} |