Skip to content

Commit e56c6b6

Browse files
Add nightly build and test workflow for ATfE (#276)
Add nightly build and test workflow for ATfE - Initial support for Linux Ubuntu 22.04 - Run all build scripts in parallel - Add install dependencies script - Update source for Newlib. Use GitHub mirror
1 parent 8cb380c commit e56c6b6

File tree

3 files changed

+108
-1
lines changed

3 files changed

+108
-1
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Copyright (c) 2025, Arm Limited and affiliates.
2+
# Part of the Arm Toolchain project, under the Apache License v2.0 with LLVM Exceptions.
3+
# See https://llvm.org/LICENSE.txt for license information.
4+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
5+
6+
# This workflow runs all build scripts in parallel on Linux.
7+
# It is intended to be triggered as part of a **nightly build** to
8+
# validate all build configurations and test them automatically.
9+
#
10+
# Each build script is paired with a corresponding test script using
11+
# a matrix strategy. Each build+test pair runs as a separate job,
12+
# allowing for concurrency and clear traceability of failures.
13+
14+
name: ATfE Nightly Build and Test
15+
16+
on:
17+
workflow_dispatch:
18+
schedule:
19+
- cron: '0 2 * * *' # Every day at 02:00 UTC
20+
21+
jobs:
22+
build-and-test-toolchain:
23+
name: Build ${{ matrix.build_script }} + Test ${{ matrix.test_script }} on ${{ matrix.runner }}
24+
runs-on: ${{ matrix.runner }}
25+
26+
strategy:
27+
fail-fast: false # Prevents one job failure from cancelling all
28+
matrix:
29+
include:
30+
- build_script: build.sh
31+
test_script: test.sh
32+
runner: ubuntu-22.04
33+
- build_script: build_llvmlibc_overlay.sh
34+
test_script: ''
35+
runner: ubuntu-22.04
36+
- build_script: build_newlib_nano_overlay.sh
37+
test_script: ''
38+
runner: ubuntu-22.04
39+
- build_script: build_newlib_overlay.sh
40+
test_script: ''
41+
runner: ubuntu-22.04
42+
43+
steps:
44+
- name: Checkout
45+
uses: actions/checkout@v4
46+
47+
- name: Install dependencies
48+
run: bash ./arm-software/embedded/scripts/install_dependencies.sh
49+
50+
- name: Apply llvm-project patches
51+
run: |
52+
python3 arm-software/embedded/cmake/patch_repo.py \
53+
--method apply \
54+
arm-software/embedded/patches/llvm-project
55+
56+
- name: Apply llvm-project-perf patches
57+
run: |
58+
python3 arm-software/embedded/cmake/patch_repo.py \
59+
--method apply \
60+
arm-software/embedded/patches/llvm-project-perf
61+
62+
- name: Build ${{ matrix.build_script }}
63+
run: bash ./arm-software/embedded/scripts/${{ matrix.build_script }}
64+
65+
- name: Test ${{ matrix.test_script }}
66+
if: matrix.test_script != ''
67+
run: bash ./arm-software/embedded/scripts/${{ matrix.test_script }}
68+
69+
- name: Upload test results
70+
uses: actions/upload-artifact@v4
71+
if: always()
72+
with:
73+
name: test-results-${{ matrix.build_script }}
74+
path: |
75+
build/**/*results.xml
76+
build/**/*.junit.xml
77+
78+
- name: Upload built packages
79+
uses: actions/upload-artifact@v4
80+
if: success()
81+
with:
82+
name: built-packages-${{ matrix.build_script }}
83+
path: |
84+
build/**/*.dmg
85+
build/**/*.tar.xz
86+
build/**/*.zip
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
# Copyright (c) 2025, Arm Limited and affiliates.
4+
# Part of the Arm Toolchain project, under the Apache License v2.0 with LLVM Exceptions.
5+
# See https://llvm.org/LICENSE.txt for license information.
6+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
#
8+
# This script installs the essential build dependencies for ATfE.
9+
10+
set -e
11+
12+
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
13+
cmake=3.22.1-1ubuntu1.22.04.2 \
14+
ninja-build=1.10.1-1 \
15+
clang=1:14.0-55~exp2 \
16+
python3-pip \
17+
python3-setuptools
18+
19+
# Upgrade pip and install meson with a pinned version
20+
python3 -m pip install --upgrade pip
21+
python3 -m pip install meson==1.2.3

arm-software/embedded/versions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"tag": "main"
1313
},
1414
"newlib": {
15-
"url": "https://sourceware.org/git/newlib-cygwin.git",
15+
"url": "https://github.com/bminor/newlib.git",
1616
"tagType": "tag",
1717
"tag": "newlib-4.5.0"
1818
}

0 commit comments

Comments
 (0)