irctest/workflows.yml

511 lines
15 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/
patch -p1 < $GITHUB_WORKSPACE/patches/charybdis_ubuntu22.patch
./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
# <= v2.2.2
patch -p1 < $GITHUB_WORKSPACE/patches/bahamut_ubuntu22.patch || true
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@v3
with:
go-version: '^1.22.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.17.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/
./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: 0714466af88d71d6c395629cd7fb624b099507d4 # two years ahead of 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
sable:
name: Sable
repository: Libera-Chat/sable
refs:
stable: fe337a036c3ab5f8548e2578b65568e628f4c32f
release: null
devel: master
devel_release: null
path: sable
prefix: "$GITHUB_WORKSPACE/sable/target/debug"
pre_deps:
- name: Install rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true
- name: Enable Cargo cache
uses: Swatinem/rust-cache@v2
with:
workspaces: "sable -> target"
cache-on-failure: true
- run: rustc --version
separate_build_job: false
build_script: |
cd $GITHUB_WORKSPACE/sable/
cargo build
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.14"
release: "2.1.1"
devel: "2.1"
devel_release: "2.0"
build_script: |
cd $GITHUB_WORKSPACE/anope/
sudo apt-get install ninja-build --no-install-recommends
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local/ -DPROGRAM_NAME=anope -DUSE_PCH=ON -GNinja ..
ninja install
dlk:
name: Dlk
repository: DalekIRC/Dalek-Services
separate_build_job: false
path: Dlk-Services
refs:
stable: null # disabled because flaky, and hard to debug with all the PHP 8 warnings
release: &dlk_stable "6db51ea03f039c48fd20427c04cec8ff98df7878"
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==2023.5.27 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
thelounge:
name: TheLounge
repository: thelounge/thelounge
separate_build_job: false
refs:
stable: "v4.4.0"
release: "v4.4.0"
devel: "master"
devel_release: null
path: thelounge
build_script: |
cd $GITHUB_WORKSPACE/thelounge
yarn install
NODE_ENV=production yarn build
mkdir -p ~/.local/bin/
ln -s $(pwd)/index.js ~/.local/bin/thelounge
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]
sable:
software: [sable]
# 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]
thelounge:
software: [thelounge]