irctest/workflows.yml

460 lines
14 KiB
YAML

# Input used by make_workflows.py to generate .github/workflows/
# See VersionFlavor in the script to see how stabl/release/devel/devel_release
# are defined.
software:
#############################
# Hybrid family:
charybdis:
name: Charybdis
repository: charybdis-ircd/charybdis
refs:
stable: charybdis-4.1.2
release: null
devel: null
devel_release: null
path: charybdis
separate_build_job: true
build_script: |
cd $GITHUB_WORKSPACE/charybdis/
./autogen.sh
./configure --prefix=$HOME/.local/
make -j 4
make install
hybrid:
name: Hybrid
repository: ircd-hybrid/ircd-hybrid
refs:
stable: "8.2.39"
release: null
devel: "8.2.x"
devel_release: null
path: ircd-hybrid
separate_build_job: true
build_script: |
cd $GITHUB_WORKSPACE/ircd-hybrid/
./configure --prefix=$HOME/.local/
make -j 4
make install
plexus4:
name: Plexus4
path: plexus4
separate_build_job: true
install_steps:
stable:
- name: clone
run: |-
curl https://gitlab.com/rizon/plexus4/-/archive/20211115_0-611/plexus4-20211115_0-611.tar | tar -x
mv plexus* plexus4
- name: build
run: |-
cd $GITHUB_WORKSPACE/plexus4
./autogen.sh
./configure --prefix=$HOME/.local/
make -j 4
make install
release: null
devel:
- name: clone
run: |-
curl https://gitlab.com/rizon/plexus4/-/archive/master/plexus4-master.tar.gz | tar -zx
mv plexus4* plexus4
- name: build
run: |-
cd $GITHUB_WORKSPACE/plexus4
./autogen.sh
./configure --prefix=$HOME/.local/
make -j 4
make install
devel_release: null
solanum:
name: Solanum
repository: solanum-ircd/solanum
refs:
# Actually Solanum doesn't have releases; so we just bump this
# commit hash from time to time
stable: 492d560ee13e71dc35403fd676e58c2d5bdcf2a9
release: null
devel: main
devel_release: null
path: solanum
separate_build_job: true
build_script: |
cd $GITHUB_WORKSPACE/solanum/
./autogen.sh
./configure --prefix=$HOME/.local/
make -j 4
make install
#############################
# Other servers:
bahamut:
name: Bahamut
repository: DALnet/Bahamut
refs:
stable: "v2.2.1"
release: null
devel: "master"
devel_release: null
path: Bahamut
separate_build_job: true
build_script: |
cd $GITHUB_WORKSPACE/Bahamut/
patch src/s_user.c < $GITHUB_WORKSPACE/patches/bahamut_localhost.patch
patch src/s_bsd.c < $GITHUB_WORKSPACE/patches/bahamut_mainloop.patch
echo "#undef THROTTLE_ENABLE" >> include/config.h
libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing || true
autoreconf
./configure --prefix=$HOME/.local/
make -j 4
make install
mkdir -p $HOME/.local/bin/
cp $HOME/.local/ircd $HOME/.local/bin/ircd
ergo:
name: Ergo
repository: ergochat/ergo
refs:
stable: irctest_stable
release: stable
devel: master
devel_release: null
path: ergo
prefix: ~/go
pre_deps:
- uses: actions/setup-go@v2
with:
go-version: '^1.19.0'
- run: go version
separate_build_job: false
build_script: |
cd $GITHUB_WORKSPACE/ergo/
make build
make install
inspircd:
name: InspIRCd
repository: inspircd/inspircd
refs: &inspircd_refs
stable: v3.15.0
release: null
devel: master
devel_release: insp3
path: inspircd
prefix: ~/.local/inspircd
cache: false # incremental compilation is frequently broken
separate_build_job: true
build_script: &inspircd_build_script |
cd $GITHUB_WORKSPACE/inspircd/
# Insp3 <= 3.16.0 and Insp4 <= 4.0.0a21 don't support -DINSPIRCD_UNLIMITED_MAINLOOP
patch src/inspircd.cpp < $GITHUB_WORKSPACE/patches/inspircd_mainloop.patch || true
./configure --prefix=$HOME/.local/inspircd --development
CXXFLAGS=-DINSPIRCD_UNLIMITED_MAINLOOP make -j 4
make install
irc2:
name: irc2
separate_build_job: false
repository : irc-archive/irc2-mirror
path: irc2.11.2p3
cache: true
refs:
stable: 59649f24c3a5c27bad5648b48774f27475bccfd3 # irc2.11.2p3
release: null
devel: null
devel_release: null
build_script: |
# Configure
cd $GITHUB_WORKSPACE/irc2.11.2p3
./configure --prefix=$HOME/.local/
cd x86*
echo "#define CMDLINE_CONFIG/" >> config.h
echo "#define DEFAULT_SPLIT_USERS 0" >> config.h
echo "#define DEFAULT_SPLIT_SERVERS 0" >> config.h
#echo "#undef LIST_ALIS_NOTE" >> config.h
# TODO: find a better way to make it not fork...
echo "#define fork() (0)" >> config.h
# Compile and install
cd $GITHUB_WORKSPACE/irc2.11.2p3/x86*
make -j 4 all
make install
mkdir -p $HOME/.local/bin
cp $HOME/.local/sbin/ircd $HOME/.local/bin/ircd
ircu2:
name: ircu2
repository: undernetirc/ircu2
refs:
stable: "u2.10.12.19"
release: null
devel: "u2_10_12_branch"
devel_release: null
path: ircu2
separate_build_job: false
build_script: |
cd $GITHUB_WORKSPACE/ircu2
# We need --with-maxcon, to set MAXCONNECTIONS so that it's much lower than
# NN_MAX_CLIENT, or ircu2 crashes with a somewhat cryptic error on startup.
./configure --prefix=$HOME/.local/ --with-maxcon=1024 --enable-debug
make -j 4
make install
nefarious:
name: nefarious
repository: evilnet/nefarious2
refs:
stable: "985704168ecada12d9e53b46df6087ef9d9fb40b"
release: null
devel: "master"
devel_release: null
path: nefarious
separate_build_job: false
build_script: |
cd $GITHUB_WORKSPACE/nefarious
./configure --prefix=$HOME/.local/ --enable-debug
make -j 4
make install
cp $GITHUB_WORKSPACE/data/nefarious/* $HOME/.local/lib
ngircd:
name: ngircd
repository: ngircd/ngircd
refs:
stable: rel-26.1
release: null
devel: master
devel_release: null
path: ngircd
prefix: ~/.local/
separate_build_job: true
build_script: |
cd $GITHUB_WORKSPACE/ngircd
patch src/ngircd/client.c < $GITHUB_WORKSPACE/patches/ngircd_whowas_delay.patch
./autogen.sh
./configure --prefix=$HOME/.local/
make -j 4
make install
snircd:
name: snircd
repository: quakenet/snircd
refs:
stable: "u2.10.12.10+snircd(1.3.4a)"
release: null
devel: null # no update in master since 2013...
devel_release: null
path: snircd
separate_build_job: false
build_script: |
cd $GITHUB_WORKSPACE/snircd
# Work around an issue with liblex detection
rm configure
autoconf
# We need --with-maxcon, to set MAXCONNECTIONS so that it's much lower than
# NN_MAX_CLIENT, or ircu2 crashes with a somewhat cryptic error on startup.
./configure --prefix=$HOME/.local/ --with-maxcon=1024 --enable-debug
make -j 4
make install
unrealircd:
name: UnrealIRCd 6
repository: unrealircd/unrealircd
refs:
stable: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7
release: da3c1c654481a33035b9c703957e1c25d0158259 # 6.0.7
devel: unreal60_dev
devel_release: null
path: unrealircd
prefix: ~/.local/unrealircd
separate_build_job: true
build_script: &unrealircd_build_script |
cd $GITHUB_WORKSPACE/unrealircd/
cp $GITHUB_WORKSPACE/data/unreal/* .
# Need to use a specific -march, because GitHub has inconsistent
# architectures across workers, which result in random SIGILL with some
# worker combinations
sudo apt install libsodium-dev libargon2-dev
CFLAGS="-O0 -march=x86-64" CXXFLAGS="$CFLAGS" ./Config -quick
make -j 4
make install
# Prevent download of geoIP database on first startup
sed -i 's/loadmodule "geoip_classic";//' ~/.local/unrealircd/conf/modules.default.conf
unrealircd-5:
name: UnrealIRCd 5
repository: unrealircd/unrealircd
refs:
stable: 6604856973f713a494f83d38992d7d61ce6b9db4 # 5.2.4
release: null
devel: unreal52
devel_release:
path: unrealircd
prefix: ~/.local/unrealircd
separate_build_job: true
build_script: *unrealircd_build_script
#############################
# Services:
anope:
name: Anope
repository: anope/anope
separate_build_job: true
path: anope
refs:
stable: "2.0.9"
release: "2.0.9"
devel: "2.0.9"
devel_release: "2.0.9"
build_script: |
cd $GITHUB_WORKSPACE/anope/
cp $GITHUB_WORKSPACE/data/anope/* .
CFLAGS=-O0 ./Config -quick
make -C build -j 4
make -C build install
dlk:
name: Dlk
repository: DalekIRC/Dalek-Services
separate_build_job: false
path: Dlk-Services
refs:
stable: &dlk_stable "effd18652fc1c847d1959089d9cca9ff9837a8c0"
release: *dlk_stable
devel: "main"
devel_release: *dlk_stable
build_script: |
pip install pifpaf
wget -q https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
wget -q https://wordpress.org/latest.zip -O wordpress-latest.zip
env: >-
IRCTEST_DLK_PATH="${{ github.workspace }}/Dlk-Services"
IRCTEST_WP_CLI_PATH="${{ github.workspace }}/wp-cli.phar"
IRCTEST_WP_ZIP_PATH="${{ github.workspace }}/wordpress-latest.zip"
#############################
# Clients:
limnoria:
name: Limnoria
separate_build_job: false
install_steps:
stable:
- name: Install dependencies
run: pip install limnoria==2022.03.17 cryptography pyxmpp2-scram
release:
- name: Install dependencies
run: pip install limnoria cryptography pyxmpp2-scram
devel:
- name: Install dependencies
run: pip install git+https://github.com/ProgVal/Limnoria.git@testing cryptography pyxmpp2-scram
devel_release: null
sopel:
name: Sopel
separate_build_job: false
install_steps:
stable:
- name: Install dependencies
run: pip install sopel==7.1.8
release:
- name: Install dependencies
run: pip install sopel
devel:
- name: Install dependencies
run: pip install git+https://github.com/sopel-irc/sopel.git
devel_release: null
tests:
bahamut:
software: [bahamut]
bahamut-atheme:
software: [bahamut]
bahamut-anope:
software: [bahamut, anope]
charybdis:
software: [charybdis]
hybrid:
software: [hybrid, anope]
solanum:
software: [solanum]
ergo:
software: [ergo]
inspircd:
software: [inspircd]
inspircd-atheme:
software: [inspircd]
exclude_versions: [devel] # Atheme does not support Insp4 yet, so it fails to connect
inspircd-anope:
software: [inspircd, anope]
ngircd:
software: [ngircd]
ngircd-atheme:
software: [ngircd]
ngircd-anope:
software: [ngircd, anope]
plexus4:
software: [plexus4, anope]
irc2:
software: [irc2]
ircu2:
software: [ircu2]
nefarious:
software: [nefarious]
# doesn't build because it can't find liblex for some reason
#snircd:
# software: [snircd]
unrealircd-5:
software: [unrealircd-5]
unrealircd:
software: [unrealircd]
unrealircd-atheme:
software: [unrealircd]
unrealircd-anope:
software: [unrealircd, anope]
unrealircd-dlk:
software: [unrealircd, dlk]
limnoria:
software: [limnoria]
sopel:
software: [sopel]