Skip to content

Commit

Permalink
Github CI with matrix tests (#1620)
Browse files Browse the repository at this point in the history
  • Loading branch information
thommey authored Jun 16, 2024
1 parent d58f563 commit e931e22
Show file tree
Hide file tree
Showing 6 changed files with 187 additions and 64 deletions.
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

0 comments on commit e931e22

Please sign in to comment.