-
Notifications
You must be signed in to change notification settings - Fork 16
73 lines (63 loc) · 2.65 KB
/
Copy pathbuild-and-test-linux.yml
File metadata and controls
73 lines (63 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright 2025 Advanced Micro Devices, Inc.
#
# 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 (Ubuntu 24.04)
on:
workflow_call:
workflow_dispatch:
permissions:
contents: read
jobs:
build-and-test-linux:
name: "Build & Test :: ${{ matrix.name }}"
runs-on: ${{ startsWith(matrix.name, 'gpu') && 'linux-mi325-1gpu-ossci-iree-org' || 'azure-linux-scale' }}
env:
AMD_ARCH: ${{ startsWith(matrix.name, 'gpu') && 'gfx942' || '' }}
timeout-minutes: 60
defaults:
run:
# --noprofile skips loading ~/.bash_profile
# --norc skips loading ~/.bashrc
# -exo pipefail:
# -e exit immediately if any command fails
# -x print each command before executing
# -o pipefail ensure pipeline fails if any command in it fails
# {0} github actions placeholder for the command to run
shell: bash --noprofile --norc -exo pipefail {0}
strategy:
fail-fast: false
matrix:
name: ["cpu-asan", "cpu-codecov", "cpu-debug-tidy", "gpu-asan", "gpu-debug-tidy", "gpu-release"]
steps:
- name: "Checkout fusilli"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: "Build fusilli"
run: |
build_tools/docker/exec_docker_ci.sh \
build_tools/scripts/build.sh ${{ matrix.name }} \
--iree-source-dir /workspace/.cache/docker/iree
- name: "Test fusilli (libIREECompiler CAPI)"
if: ${{ contains(matrix.name, 'debug') || contains(matrix.name, 'release') || contains(matrix.name, 'asan') }}
run: |
build_tools/docker/exec_docker_ci.sh \
build_tools/scripts/test.sh --backend capi --validate-cache-cleanup
- name: "Test fusilli (iree-compile CLI)"
# Excluded for ASAN runs: the CLI backend spawns `iree-compile`
# (not ASAN-instrumented) as a separate process.
if: ${{ contains(matrix.name, 'debug') || contains(matrix.name, 'release') }}
run: |
build_tools/docker/exec_docker_ci.sh \
build_tools/scripts/test.sh --backend cli --validate-cache-cleanup
- name: "Run code coverage"
if: ${{ contains(matrix.name, 'codecov') }}
run: |
build_tools/docker/exec_docker_ci.sh \
build_tools/scripts/coverage.sh
- name: "Upload code coverage report"
if: ${{ contains(matrix.name, 'codecov') }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: coverage-report
path: ${{ github.workspace }}/coverage_report