-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathci-scripts-build.yml.example-full
More file actions
136 lines (116 loc) · 3.56 KB
/
ci-scripts-build.yml.example-full
File metadata and controls
136 lines (116 loc) · 3.56 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# .github/workflows/ci-scripts-build.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# This is YAML - indentation levels are crucial
# Set the 'name:' properties to values that work for you (MYMODULE)
name: MYMODULE
# Trigger on pushes and PRs to any branch
on:
push:
paths-ignore:
- 'documentation/*'
- '**/*.html'
- '**/*.md'
pull_request:
env:
SETUP_PATH: .ci-local:.ci
# For the sequencer on Linux/Windows/MacOS
APT: re2c
CHOCO: re2c
BREW: re2c
jobs:
build-base:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
# Set environment variables from matrix parameters
env:
CMP: ${{ matrix.cmp }}
BCFG: ${{ matrix.configuration }}
CI_CROSS_TARGETS: ${{ matrix.cross }}
EXTRA: ${{ matrix.extra }}
TEST: ${{ matrix.test }}
strategy:
fail-fast: false
matrix:
# Job names also name artifacts, character limitations apply
include:
- name: "Ub-24 clang C++11"
os: ubuntu-24.04
cmp: clang
configuration: default
extra: "CMD_CXXFLAGS=-std=c++11"
- name: "Ub-24 gcc C++11, static"
os: ubuntu-24.04
cmp: gcc
configuration: static
extra: "CMD_CXXFLAGS=-std=c++11"
- name: "MacOS clang"
os: macos-latest
cmp: clang
configuration: default
# Cross builds (cmp=gcc only)
- name: "Ub-24 gcc + MinGW"
os: ubuntu-24.04
cmp: gcc
configuration: default
- name: "Ub-24 gcc + MinGW, static"
os: ubuntu-24.04
cmp: gcc
configuration: static
- name: "Ub-22 gcc + RT-5.1 pc686"
os: ubuntu-22.04
cmp: gcc
configuration: default
cross: "RTEMS-pc686-qemu@5"
- name: "Ub-22 gcc + RT-5.1 beatnik"
os: ubuntu-22.04
cmp: gcc
configuration: default
cross: "RTEMS-beatnik@5"
test: NO
- name: "Ub gcc + linux-aarch64"
os: ubuntu-latest
cmp: gcc
configuration: default
cross: linux-aarch64
# Windows builds
- name: "Win-22 MSC-22"
os: windows-2022
cmp: vs2022
configuration: default
- name: "Win-22 MSC-22, static"
os: windows-2022
cmp: vs2022
configuration: static
- name: "Win-22 MinGW"
os: windows-2022
cmp: gcc
configuration: default
- name: "Win-22 MinGW, static"
os: windows-2022
cmp: gcc
configuration: static
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Automatic core dumper analysis
uses: mdavidsaver/ci-core-dumper@master
- name: "apt-get install"
run: |
sudo apt-get update
sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb
if: runner.os == 'Linux'
- name: Prepare and compile dependencies
run: python .ci/cue.py prepare
- name: Build main module
run: python .ci/cue.py build
- name: Run main module tests
run: python .ci/cue.py -T 15M test
- name: Upload tapfiles Artifact
uses: actions/upload-artifact@v4
with:
name: tapfiles ${{ matrix.name }}
path: '**/O.*/*.tap'
- name: Collect and show test results
if: ${{ always() }}
run: python .ci/cue.py -T 5M test-results