-
-
Notifications
You must be signed in to change notification settings - Fork 50
149 lines (138 loc) · 4.23 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
143
144
145
146
147
148
149
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-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@v3
- 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 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 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 DEBUG=1
- 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: 'amd64'
steps:
- uses: actions/checkout@v3
# on MacOS, g++ symlinked to clang++
# We must verify that
- name: Verify g++ (it is 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 DEBUG=1
- 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-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@v3
- uses: uraimo/[email protected]
name: Getting depends & build & unit tests & 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 make g++ m4 file"
apk update
apk add make g++ m4 file
echo "$(tput bold) ----Print g++ arch---- :$(tput sgr0) g++ -dumpmachine"
g++ -dumpmachine
echo "$(tput bold) ----Build---- :$(tput sgr0) make"
make
echo "$(tput bold) ----Print dinit executive file architecture---- :$(tput sgr0) file ./src/dinit"
file ./src/dinit
echo "$(tput bold) ----Unit tests---- :$(tput sgr0) make check"
make check
echo "$(tput bold) ----Integration tests---- :$(tput sgr0) make check-igr DEBUG=1"
make check-igr DEBUG=1
- 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/*