Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Github CI with matrix tests #1620

Merged
merged 12 commits into from
Jun 16, 2024
23 changes: 0 additions & 23 deletions .github/workflows/ccpp.yml

This file was deleted.

41 changes: 0 additions & 41 deletions .github/workflows/configure_flags.yml

This file was deleted.

100 changes: 100 additions & 0 deletions .github/workflows/dependencies.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Tcl/SSL Versions

on:
pull_request:
branches: [ develop ]
push:
branches: [ develop ]

jobs:
tcl-versions:
name: Tcl Versions
needs: default-build
strategy:
matrix:
tcl_version: [ '8.5.19', '8.6.14', '8.7a5', '9.0b2' ]
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install openssl libssl-dev
- name: Build Tcl
run: |
wget http://prdownloads.sourceforge.net/tcl/tcl${{ matrix.tcl_version }}-src.tar.gz && \
tar xzf tcl${{ matrix.tcl_version }}-src.tar.gz && \
cd tcl${{ matrix.tcl_version }}/unix && \
./configure --prefix=$HOME/tcl && \
make -j4 && make install
- name: Build
run: ./configure --with-tcl=$HOME/tcl/lib && LD_LIBRARY_PATH=$HOME/tcl/lib make config eggdrop
ssl-version-10:
name: OpenSSL 1.0
needs: default-build
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: 'eggdrop'
- name: install dependencies
run: sudo apt-get install tcl tcl-dev
- name: Build OpenSSL
run: |
wget https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz && tar xzf openssl-1.0.2u.tar.gz && \
cd openssl-1.0.2u && ./config --prefix=$HOME/ssl -fPIC && make -j4 && make install_sw
- name: Build
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
ssl-version-11:
name: OpenSSL 1.1
needs: default-build
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
repository: openssl/openssl
ref: 'OpenSSL_1_1_1w'
path: 'openssl'
- name: Build OpenSSL
run: |
cd $GITHUB_WORKSPACE/openssl && ./config --prefix=$HOME/ssl && make -j4 && make install_sw
- name: install dependencies
run: sudo apt-get install tcl tcl-dev
- uses: actions/checkout@v4
with:
path: 'eggdrop'
- name: Build
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
ssl-versions-3x:
name: OpenSSL 3.x
needs: default-build
strategy:
matrix:
ssl_version: [ '3.0', '3.1', '3.2', '3.3' ]
continue-on-error: true
runs-on: ubuntu-latest
steps:
- uses: oprypin/find-latest-tag@v1
with:
repository: openssl/openssl
releases-only: true
prefix: 'openssl-'
regex: "${{ matrix.ssl_version }}.[0-9]+"
sort-tags: true
id: openssl
- uses: actions/checkout@v4
with:
repository: openssl/openssl
ref: ${{ steps.openssl.outputs.tag }}
path: 'openssl'
- name: Build OpenSSL
run: |
cd $GITHUB_WORKSPACE/openssl && ./config --prefix=$HOME/ssl && make -j4 && make install_sw
- uses: actions/checkout@v4
with:
path: 'eggdrop'
- name: install dependencies
run: sudo apt-get install tcl tcl-dev
- name: Build
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
39 changes: 39 additions & 0 deletions .github/workflows/make.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Eggdrop Compile

on:
pull_request:
branches: [ develop ]
push:
branches: [ develop ]

jobs:
default-build:
name: Compile Test
strategy:
matrix:
cc: [ 'gcc', 'clang' ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install clang tcl tcl-dev openssl libssl-dev
- name: Build
env:
CC: ${{ matrix.cc }}
run: ./configure && make config && make -j4 && make install
feature-test:
name: Features
continue-on-error: true
needs: default-build
strategy:
matrix:
conf_tls: [ '', '--disable-tls' ]
conf_ipv6: [ '', '--disable-ipv6' ]
conf_tdns: [ '', '--disable-tdns' ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install tcl tcl-dev openssl libssl-dev
- name: Build
run: ./configure ${{ matrix.conf_tls }} ${{ matrix.conf_ipv6 }} ${{ matrix.conf_tdns }} && make config && make -j4
45 changes: 45 additions & 0 deletions .github/workflows/misc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Check autotools/makedepend

on:
pull_request:
branches: [ develop ]
push:
branches: [ develop ]

jobs:
autotools-check:
name: Check if misc/runautotools needs to be run
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install build-essential autoconf
- name: Stage configure with revision removed
run: |
for i in `find . -name configure`; do sed -i 's/From configure.ac .*//' $i; git add $i; done
- name: Run autotools
run: misc/runautotools
- name: Remove configure revision again
run: |
for i in `find . -name configure`; do sed -i 's/From configure.ac .*//' $i; done
- name: Check diff
run: |
git diff | tee .gitdiff
if [ -s .gitdiff ]; then
exit 1
fi
makedepend-check:
name: Check if misc/makedepend needs to be run
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install dependencies
run: sudo apt-get install build-essential autoconf tcl-dev tcl openssl libssl-dev
- name: Run makedepend
run: misc/makedepend
- name: Check diff
run: |
git diff | tee .gitdiff
if [ -s .gitdiff ]; then
exit 1
fi
3 changes: 3 additions & 0 deletions src/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ srcdir = @srcdir@
VPATH = @srcdir@

@SET_MAKE@
EGGEXEC = @EGGEXEC@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
Expand All @@ -18,6 +19,8 @@ CFLAGS = @CFLAGS@ -I.. -I$(top_srcdir) @SSL_INCLUDES@ @DEFS@ $(CFLGS)
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@

XLIBS = @SSL_LIBS@ @TCL_LIB_SPEC@ @LIBS@

eggdrop_objs = bg.o botcmd.o botmsg.o botnet.o chanprog.o cmds.o dcc.o \
dccutil.o dns.o flags.o language.o match.o main.o mem.o misc.o misc_file.o \
modules.o net.o rfc1459.o tcl.o tcldcc.o tclhash.o tclmisc.o tcluser.o \
Expand Down
Loading