-
-
Notifications
You must be signed in to change notification settings - Fork 49
147 lines (135 loc) · 4.24 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
## 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-bookworm_build:
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' ||
contains(github.event.pull_request.labels.*.name, 'meson') }}
runs-on: ubuntu-latest
container:
image: debian:bookworm
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 libcap-dev -y
- name: Getting depends (i386)
if: ${{ matrix.arch == 'i386' }}
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install meson m4:i386 g++:i386 libcap-dev: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' || github.event_name == 'workflow_dispatch' ||
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: 'aarch64'
steps:
- uses: actions/checkout@v4
- name: Install meson
run: brew install meson
- 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' || github.event_name == 'workflow_dispatch' ||
contains(github.event.pull_request.labels.*.name, 'meson') }}
runs-on: ubuntu-latest
container:
image: alpine:latest
strategy:
fail-fast: false # Upload src/igr-tests/*/output/* files in igr-tests
matrix:
include:
- arch: 'amd64'
steps:
- uses: actions/checkout@v4
- name: Getting depends
run: |
apk update
apk add meson g++ m4 libcap-dev
- 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/*