blob: e6a7b6965eabba39ea310a4c5feab9b40e91cc43 [file] [log] [blame]
# Copyright 2024 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: CI - Linux x64 clang TSan
on:
schedule:
# Weekday mornings at 09:15 UTC = 01:15 PST (UTC - 8).
- cron: "15 9 * * 1-5"
workflow_dispatch:
workflow_call:
jobs:
linux_x64_clang_tsan:
if: ${{ github.repository_owner == 'iree-org' || github.event_name != 'schedule' }}
runs-on: ${{ github.repository_owner == 'iree-org' && 'azure-linux-scale' || 'ubuntu-24.04' }}
container:
image: ghcr.io/iree-org/cpubuilder_ubuntu_jammy@sha256:78a558b999b230f7e1da376639e14b44f095f30f1777d6a272ba48c0bbdd4ccb
# TSan in particular needs some settings that this option includes:
# * https://github.com/google/sanitizers/issues/1716
# * https://security.stackexchange.com/q/214923
# Note that we are not using Docker for sandboxing. If we were, this
# would *not* be safe.
options: --privileged
defaults:
run:
shell: bash
steps:
- name: "Checking out repository"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: true
- name: Install Python requirements
run: |
python3 -m pip install -r ./runtime/bindings/python/iree/runtime/build_requirements.txt
python3 -m pip install -r ./build_tools/github_actions/ci_requirements.txt
- name: Build and test with TSan
env:
# Use a modern clang explicitly.
CC: clang-19
CXX: clang++-19
SCCACHE_AZURE_CONNECTION_STRING: "${{ secrets.AZURE_CCACHE_CONNECTION_STRING }}"
SCCACHE_AZURE_BLOB_CONTAINER: ccache-container
SCCACHE_CACHE_ZSTD_LEVEL: 10
SCCACHE_AZURE_KEY_PREFIX: "ci_linux_x64_clang_tsan"
run: |
source build_tools/cmake/setup_sccache.sh
./build_tools/cmake/build_and_test_tsan.sh
sccache --show-stats
- name: Post to Discord on Failure
uses: sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0
if: failure() && github.ref_name == 'main' && github.repository_owner == 'iree-org'
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
description: "The ${{ github.workflow }} workflow failed"
url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }}"