-
Notifications
You must be signed in to change notification settings - Fork 31
106 lines (90 loc) · 3.72 KB
/
Copy pathnative-runtime-nightly.yml
File metadata and controls
106 lines (90 loc) · 3.72 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Copyright (c) 2025, Arm Limited and affiliates.
# Part of the Arm Toolchain project, 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
#
# Changes from Qualcomm Technologies, Inc. are provided under the following license:
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# This workflow runs build configurations in parallel for multiple
# operating systems and architectures.
# It is intended to be triggered as part of a **nightly build** to
# validate these configurations and test them automatically.
# Currently this workflow encompasses building runtimes as part of the toolchain
# natively on non-x86_64 Linux targets.
name: Native Runtime Nightly Build and Test
on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/native-runtime-nightly.yml'
schedule:
- cron: '0 3 * * *' # 7:00 PM PST (03:00 UTC)
permissions:
contents: read
jobs:
build-and-test:
# Don't run on forks
if: github.repository == 'qualcomm/cpullvm-toolchain'
name: ${{ matrix.build_script }} on ${{ matrix.target_os }}
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
# FIXME: once we are able to source an up-to-date qemu in a reasonable
# way, this should be changed to just an ordinary build.
- build_script: build_no_qemu.sh
test_script: test.sh
install_script: install_dependencies.sh
target_os: Linux-AArch64
runner: ubuntu-24.04-arm
- build_script: build_musl-embedded_overlay.sh
test_script: ''
install_script: ''
target_os: Linux-AArch64
runner: ubuntu-24.04-arm
- build_script: build.ps1
test_script: test.ps1
install_script: install_dependencies.ps1
target_os: Windows-x86_64
runner: windows-2025
- build_script: build.ps1
test_script: test.ps1
install_script: install_dependencies.ps1
target_os: Windows-AArch64
runner: windows-11-arm
steps:
# Not setting these can cause lit test failures on Windows machines when
# files with ex: different line endings are compared.
- name: Preconfigure git
shell: bash
run: |
git config --global core.autocrlf false
git config --global core.eol lf
git config --global core.longpaths true
- name: Checkout source
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
# We build in the repository and rely on clean to cleanup possible
# old build products if the runner doesn't do it itself.
clean: true
- name: Install dependencies
if: matrix.install_script != ''
run: ./qualcomm-software/scripts/${{ matrix.install_script }}
- name: Apply llvm-project patches
run: python3 qualcomm-software/cmake/patch_repo.py --method apply qualcomm-software/patches/llvm-project
- name: Build
run: ./qualcomm-software/scripts/${{ matrix.build_script }}
- name: Upload built packages
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
if: success()
with:
name: cpullvm-packages-${{ matrix.build_script }}-${{ matrix.target_os }}
path: |
build*/cpullvm-*.tar.xz
build*/cpullvm-*.zip
retention-days: 7
- name: Test
if: matrix.test_script != ''
run: ./qualcomm-software/scripts/${{ matrix.test_script }}