| # 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 ASan |
| |
| on: |
| workflow_dispatch: |
| pull_request: |
| push: |
| branches: |
| - main |
| |
| 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 |
| |
| linux_x64_clang_asan: |
| needs: setup |
| if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'linux_x64_clang_asan') |
| runs-on: azure-linux-scale |
| container: ghcr.io/iree-org/cpubuilder_ubuntu_jammy@sha256:78a558b999b230f7e1da376639e14b44f095f30f1777d6a272ba48c0bbdd4ccb |
| defaults: |
| run: |
| shell: bash |
| steps: |
| - name: "Checking out repository" |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| with: |
| submodules: true |
| - name: Install Python requirements |
| run: python3 -m pip install -r ./runtime/bindings/python/iree/runtime/build_requirements.txt |
| - name: Build and test with ASan |
| 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_asan" |
| run: | |
| source build_tools/cmake/setup_sccache.sh |
| ./build_tools/cmake/build_and_test_asan.sh |
| sccache --show-stats |
| |
| - name: Post to Discord on Failure |
| uses: sarisia/actions-status-discord@ce8cc68e4e626000136b3c702d049a154243e490 # v1.14.7 |
| 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 }}" |