-
-
Notifications
You must be signed in to change notification settings - Fork 53
153 lines (141 loc) · 4.81 KB
/
meson_ci.yml
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
## This Workflow will run when a PR has "meson" label or when something pushed to master.
name: Dinit Meson based CI
on:
push:
branches:
- master
paths:
- '.github/workflows/meson_ci.yml'
- 'build/version.conf'
- 'build/mconfig.mesontemplate'
- 'configs/**'
- 'dasynq/**'
- 'src/**'
- '**/meson.build'
- 'meson_options.txt'
- '!**/Makefile'
pull_request:
types:
- labeled
- opened
- reopened
- synchronize
branches:
- master
paths:
- '.github/workflows/meson_ci.yml'
- 'build/version.conf'
- 'build/mconfig.mesontemplate'
- 'configs/**'
- 'dasynq/**'
- 'src/**'
- '**/meson.build'
- 'meson_options.txt'
- '!**/Makefile'
workflow_dispatch:
jobs:
Debian-bullseye_build:
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
runs-on: ubuntu-latest
container:
image: debian:bullseye
strategy:
fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
matrix:
include:
- arch: 'amd64'
- arch: 'i386'
steps:
- uses: actions/checkout@v4
- name: Add i386 repos
if: ${{ matrix.arch == 'i386' }}
run: dpkg --add-architecture i386
- name: Getting depends (amd64)
if: ${{ matrix.arch == 'amd64' }}
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install g++ meson m4 -y
- name: Getting depends (i386)
if: ${{ matrix.arch == 'i386' }}
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install meson m4:i386 g++:i386 -y
- name: Setup
run: meson setup -Dunit-tests=true -Digr-tests=true dirbuild
- name: Build
run: meson compile -C dirbuild
- name: Unit tests
run: meson test -v --suite=unit_tests -C dirbuild
- name: Integration tests
run: meson test -v --suite=igr_tests -C dirbuild
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: dirbuild/src/igr-tests/*/output/*
MacOS-latest_build:
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
runs-on: macos-latest
strategy:
fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
matrix:
include:
- arch: 'amd64'
steps:
- uses: actions/checkout@v4
- name: Install meson via pip3
run: pip3 install meson
- name: Install ninja
run: brew install ninja
- name: Setup
run: meson setup -Dunit-tests=true -Digr-tests=true dirbuild
- name: Build
run: meson compile -C dirbuild
- name: Unit tests
run: meson test -v --suite=unit_tests -C dirbuild
- name: Integration tests
run: meson test -v --suite=igr_tests -C dirbuild
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: dirbuild/src/igr-tests/*/output/*
Alpine-latest_build:
if: ${{ github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'meson') }}
runs-on: ubuntu-latest
strategy:
fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
matrix:
include:
- arch: 'armv6'
- arch: 'armv7'
- arch: 'aarch64'
steps:
- uses: actions/checkout@v4
- uses: uraimo/[email protected]
name: Getting depends & setup & build & unit & integration tests
with:
arch: ${{ matrix.arch }}
distro: alpine_latest
run: |
apk add ncurses
echo "$(tput bold) !---- ${{ matrix.arch }} BUILD ----!$(tput sgr0)"
echo "$(tput bold) ----Getting depends---- :$(tput sgr0) apk update && apk add meson g++ m4"
apk update
apk add meson g++ m4
echo "$(tput bold) ----Setup---- :$(tput sgr0) meson setup -Dunit-tests=true -Digr-tests=true dirbuild"
meson setup -Dunit-tests=true -Digr-tests=true dirbuild
echo "$(tput bold) ----Build---- :$(tput sgr0) meson compile -C dirbuild"
meson compile -C dirbuild
echo "$(tput bold) ----Unit tests---- :$(tput sgr0) meson test -v --suite=unit_tests -C dirbuild"
meson test -v --suite=unit_tests -C dirbuild
echo "$(tput bold) ----Integration tests---- :$(tput sgr0) meson test -v --suite=igr_tests -C dirbuild"
meson test -v --suite=igr_tests -C dirbuild
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: dirbuild/src/igr-tests/*/output/*