-
Notifications
You must be signed in to change notification settings - Fork 4
157 lines (125 loc) · 3.87 KB
/
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
154
155
156
157
name: CI
on:
- push
- pull_request
env:
WEECHAT_RELAY_DEPS_UBUNTU: >-
asciidoctor
build-essential
cmake
debhelper
devscripts
libcpputest-dev
libgnutls28-dev
lcov
libreadline-dev
libzstd-dev
pkg-config
zlib1g-dev
jobs:
tests_linux:
strategy:
matrix:
os:
- ubuntu-24.04
config:
- { name: "gcc", cc: "gcc", cxx: "g++", cmake_options: "" }
- { name: "gcc_coverage", cc: "gcc", cxx: "g++", cmake_options: "-DCODE_COVERAGE=ON" }
- { name: "clang", cc: "clang", cxx: "clang++", cmake_options: "" }
name: "${{ matrix.os }} (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_RELAY_DEPS_UBUNTU }}
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
CMAKE_OPTIONS: ${{ matrix.config.cmake_options }}
run: |
mkdir build-tmp
cd build-tmp
cmake -DBUILD_DOC=ON -DBUILD_MAN=ON -DBUILD_TESTS=ON ${CMAKE_OPTIONS} ..
make VERBOSE=1 -j$(nproc)
sudo make install
- name: Run tests
run: |
cd build-tmp
ctest -V
- name: Run command-line interface
run: |
weechat-relay-cli --version
weechat-relay-cli --help
weechat-relay-cli --license
- name: Code coverage
if: ${{ matrix.config.name == 'gcc_coverage' }}
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
cd build-tmp
lcov --directory . --capture --output-file coverage.info
lcov --ignore-errors unused --remove coverage.info '/usr/*' --output-file coverage.info
lcov --list coverage.info
bash <(curl -s https://codecov.io/bash) -f coverage.info || echo 'Codecov error'
tests_macos:
strategy:
matrix:
os:
- macos-14
config:
- { name: "gcc", cc: "gcc", cxx: "g++", cmake_options: "" }
- { name: "clang", cc: "clang", cxx: "clang++", cmake_options: "" }
name: "${{ matrix.os }} (${{ matrix.config.name }})"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew update
brew install asciidoctor cpputest
- name: Build
env:
CC: ${{ matrix.config.cc }}
CXX: ${{ matrix.config.cxx }}
CMAKE_OPTIONS: ${{ matrix.config.cmake_options }}
run: |
mkdir build-tmp
cd build-tmp
cmake .. -DBUILD_DOC=ON -DBUILD_MAN=ON -DBUILD_TESTS=ON ${CMAKE_OPTIONS}
make VERBOSE=1 -j$(nproc)
sudo make install
- name: Run tests
run: |
cd build-tmp
ctest -V
- name: Run command-line interface
run: |
weechat-relay-cli --version
weechat-relay-cli --help
weechat-relay-cli --license
build_debian:
strategy:
matrix:
os:
- ubuntu-24.04
name: "${{ matrix.os }} (build Debian)"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get --yes --no-install-recommends install ${{ env.WEECHAT_RELAY_DEPS_UBUNTU }}
- name: Test Debian patches
run: ./tools/build_debian.sh test-patches
- name: Build Debian packages
run: ./tools/build_debian.sh devel ubuntu/noble
- name: Install Debian packages
run: sudo dpkg -i ../*weechatrelay*.deb
- name: Run command-line interface
run: |
weechat-relay-cli --version
weechat-relay-cli --help