Skip to content

Commit e931e22

Browse files
authored
Github CI with matrix tests (#1620)
1 parent d58f563 commit e931e22

File tree

6 files changed

+187
-64
lines changed

6 files changed

+187
-64
lines changed

.github/workflows/ccpp.yml

-23
This file was deleted.

.github/workflows/configure_flags.yml

-41
This file was deleted.

.github/workflows/dependencies.yml

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Tcl/SSL Versions
2+
3+
on:
4+
pull_request:
5+
branches: [ develop ]
6+
push:
7+
branches: [ develop ]
8+
9+
jobs:
10+
tcl-versions:
11+
name: Tcl Versions
12+
needs: default-build
13+
strategy:
14+
matrix:
15+
tcl_version: [ '8.5.19', '8.6.14', '8.7a5', '9.0b2' ]
16+
continue-on-error: true
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
- name: install dependencies
21+
run: sudo apt-get install openssl libssl-dev
22+
- name: Build Tcl
23+
run: |
24+
wget http://prdownloads.sourceforge.net/tcl/tcl${{ matrix.tcl_version }}-src.tar.gz && \
25+
tar xzf tcl${{ matrix.tcl_version }}-src.tar.gz && \
26+
cd tcl${{ matrix.tcl_version }}/unix && \
27+
./configure --prefix=$HOME/tcl && \
28+
make -j4 && make install
29+
- name: Build
30+
run: ./configure --with-tcl=$HOME/tcl/lib && LD_LIBRARY_PATH=$HOME/tcl/lib make config eggdrop
31+
ssl-version-10:
32+
name: OpenSSL 1.0
33+
needs: default-build
34+
continue-on-error: true
35+
runs-on: ubuntu-latest
36+
steps:
37+
- uses: actions/checkout@v4
38+
with:
39+
path: 'eggdrop'
40+
- name: install dependencies
41+
run: sudo apt-get install tcl tcl-dev
42+
- name: Build OpenSSL
43+
run: |
44+
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz && tar xzf openssl-1.0.2u.tar.gz && \
45+
cd openssl-1.0.2u && ./config --prefix=$HOME/ssl -fPIC && make -j4 && make install_sw
46+
- name: Build
47+
run: cd $GITHUB_WORKSPACE/eggdrop && ./configure --with-sslinc=$HOME/ssl/include --with-ssllib=$HOME/ssl/lib && LD_LIBRARY_PATH=$HOME/ssl/lib make config eggdrop
48+
ssl-version-11:
49+
name: OpenSSL 1.1
50+
needs: default-build
51+
continue-on-error: true
52+
runs-on: ubuntu-latest
53+
steps:
54+
- uses: actions/checkout@v4
55+
with:
56+
repository: openssl/openssl
57+
ref: 'OpenSSL_1_1_1w'
58+
path: 'openssl'
59+
- name: Build OpenSSL
60+
run: |
61+
cd $GITHUB_WORKSPACE/openssl && ./config --prefix=$HOME/ssl && make -j4 && make install_sw
62+
- name: install dependencies
63+
run: sudo apt-get install tcl tcl-dev
64+
- uses: actions/checkout@v4
65+
with:
66+
path: 'eggdrop'
67+
- name: Build
68+
run: cd $GITHUB_WORKSPACE/eggdrop && ./configure --with-sslinc=$HOME/ssl/include --with-ssllib=$HOME/ssl/lib && LD_LIBRARY_PATH=$HOME/ssl/lib make config eggdrop
69+
ssl-versions-3x:
70+
name: OpenSSL 3.x
71+
needs: default-build
72+
strategy:
73+
matrix:
74+
ssl_version: [ '3.0', '3.1', '3.2', '3.3' ]
75+
continue-on-error: true
76+
runs-on: ubuntu-latest
77+
steps:
78+
- uses: oprypin/find-latest-tag@v1
79+
with:
80+
repository: openssl/openssl
81+
releases-only: true
82+
prefix: 'openssl-'
83+
regex: "${{ matrix.ssl_version }}.[0-9]+"
84+
sort-tags: true
85+
id: openssl
86+
- uses: actions/checkout@v4
87+
with:
88+
repository: openssl/openssl
89+
ref: ${{ steps.openssl.outputs.tag }}
90+
path: 'openssl'
91+
- name: Build OpenSSL
92+
run: |
93+
cd $GITHUB_WORKSPACE/openssl && ./config --prefix=$HOME/ssl && make -j4 && make install_sw
94+
- uses: actions/checkout@v4
95+
with:
96+
path: 'eggdrop'
97+
- name: install dependencies
98+
run: sudo apt-get install tcl tcl-dev
99+
- name: Build
100+
run: cd $GITHUB_WORKSPACE/eggdrop && ./configure --with-sslinc=$HOME/ssl/include --with-ssllib=$HOME/ssl/lib64 && LD_LIBRARY_PATH=$HOME/ssl/lib64 make config eggdrop

.github/workflows/make.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Eggdrop Compile
2+
3+
on:
4+
pull_request:
5+
branches: [ develop ]
6+
push:
7+
branches: [ develop ]
8+
9+
jobs:
10+
default-build:
11+
name: Compile Test
12+
strategy:
13+
matrix:
14+
cc: [ 'gcc', 'clang' ]
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- name: install dependencies
19+
run: sudo apt-get install clang tcl tcl-dev openssl libssl-dev
20+
- name: Build
21+
env:
22+
CC: ${{ matrix.cc }}
23+
run: ./configure && make config && make -j4 && make install
24+
feature-test:
25+
name: Features
26+
continue-on-error: true
27+
needs: default-build
28+
strategy:
29+
matrix:
30+
conf_tls: [ '', '--disable-tls' ]
31+
conf_ipv6: [ '', '--disable-ipv6' ]
32+
conf_tdns: [ '', '--disable-tdns' ]
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
- name: install dependencies
37+
run: sudo apt-get install tcl tcl-dev openssl libssl-dev
38+
- name: Build
39+
run: ./configure ${{ matrix.conf_tls }} ${{ matrix.conf_ipv6 }} ${{ matrix.conf_tdns }} && make config && make -j4

.github/workflows/misc.yml

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Check autotools/makedepend
2+
3+
on:
4+
pull_request:
5+
branches: [ develop ]
6+
push:
7+
branches: [ develop ]
8+
9+
jobs:
10+
autotools-check:
11+
name: Check if misc/runautotools needs to be run
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
- name: install dependencies
16+
run: sudo apt-get install build-essential autoconf
17+
- name: Stage configure with revision removed
18+
run: |
19+
for i in `find . -name configure`; do sed -i 's/From configure.ac .*//' $i; git add $i; done
20+
- name: Run autotools
21+
run: misc/runautotools
22+
- name: Remove configure revision again
23+
run: |
24+
for i in `find . -name configure`; do sed -i 's/From configure.ac .*//' $i; done
25+
- name: Check diff
26+
run: |
27+
git diff | tee .gitdiff
28+
if [ -s .gitdiff ]; then
29+
exit 1
30+
fi
31+
makedepend-check:
32+
name: Check if misc/makedepend needs to be run
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
- name: install dependencies
37+
run: sudo apt-get install build-essential autoconf tcl-dev tcl openssl libssl-dev
38+
- name: Run makedepend
39+
run: misc/makedepend
40+
- name: Check diff
41+
run: |
42+
git diff | tee .gitdiff
43+
if [ -s .gitdiff ]; then
44+
exit 1
45+
fi

src/Makefile.in

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ srcdir = @srcdir@
66
VPATH = @srcdir@
77

88
@SET_MAKE@
9+
EGGEXEC = @EGGEXEC@
910
INSTALL = @INSTALL@
1011
INSTALL_PROGRAM = @INSTALL_PROGRAM@
1112
INSTALL_DATA = @INSTALL_DATA@
@@ -18,6 +19,8 @@ CFLAGS = @CFLAGS@ -I.. -I$(top_srcdir) @SSL_INCLUDES@ @DEFS@ $(CFLGS)
1819
CPPFLAGS = @CPPFLAGS@
1920
LDFLAGS = @LDFLAGS@
2021

22+
XLIBS = @SSL_LIBS@ @TCL_LIB_SPEC@ @LIBS@
23+
2124
eggdrop_objs = bg.o botcmd.o botmsg.o botnet.o chanprog.o cmds.o dcc.o \
2225
dccutil.o dns.o flags.o language.o match.o main.o mem.o misc.o misc_file.o \
2326
modules.o net.o rfc1459.o tcl.o tcldcc.o tclhash.o tclmisc.o tcluser.o \

0 commit comments

Comments
 (0)