-
-
Notifications
You must be signed in to change notification settings - Fork 49
142 lines (131 loc) · 3.61 KB
/
regular_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
name: Dinit Regular CI
on:
push:
branches:
- master
paths:
- '.github/workflows/regular_ci.yml'
- 'build/**'
- 'configs/**'
- 'dasynq/**'
- 'src/**'
- '**/Makefile'
- '!build/mconfig.mesontemplate'
- '!build/includes/README'
- '!**/meson.build'
pull_request:
branches:
- master
paths:
- '.github/workflows/regular_ci.yml'
- 'build/**'
- 'configs/**'
- 'dasynq/**'
- 'src/**'
- '**/Makefile'
- '!build/mconfig.mesontemplate'
- '!build/includes/README'
- '!**/meson.build'
workflow_dispatch:
jobs:
Debian-bullseye_build:
runs-on: ubuntu-20.04
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++ make m4 libcap-dev file -y
- name: Getting depends (i386)
if: ${{ matrix.arch == 'i386' }}
run: |
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install gcc:i386 make:i386 m4:i386 g++:i386 libcap-dev:i386 file -y
- name: Print g++ architecture
run: g++ -dumpmachine
- name: Build
run: make
- name: Print dinit executive file architecture
run: file ./src/dinit
- name: Unit tests
run: make check
- name: Integration tests
run: make check-igr
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: src/igr-tests/*/output/*
MacOS-latest_build:
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
# on MacOS, g++ symlinked to clang++
# We must verify that
- name: Verify g++ (is it g++ or clang++?)
run: g++ --version
- name: Print g++ architecture
run: g++ -dumpmachine
- name: Build
run: make
- name: Print dinit executive file architecture
run: file ./src/dinit
- name: Unit tests
run: make check
- name: Integration tests
run: make check-igr
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: src/igr-tests/*/output/*
Alpine-latest_build:
runs-on: ubuntu-20.04
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 make g++ m4 file libcap-dev
- name: Print g++ architecture
run: g++ -dumpmachine
- name: Build
run: make
- name: Print dinit executive file architecture
run: file ./src/dinit
- name: Unit tests
run: make check
- name: Integration tests
run: make check-igr
- name: Upload igr-tests output file(s) on failure
uses: actions/[email protected]
if: failure()
with:
name: igr-tests_output
path: src/igr-tests/*/output/*