Skip to content

Engine(-Tests), Server: implemented config overrides #109

Engine(-Tests), Server: implemented config overrides

Engine(-Tests), Server: implemented config overrides #109

Workflow file for this run

name: auto-ci-builds
on:
- push
- pull_request
jobs:
build_macOS-latest:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: install build dependencies
run: |
./build/install-deps-macos.sh
- name: check mono version
run: |
mono --version
- name: run autogen
run: |
./autogen.sh
- name: build
run: |
make
# TODO:
# macOS_tests_unit:
# runs-on: macOS-latest
# steps:
# - uses: actions/checkout@v1
# - name: Run unit test
# run: |
# ./build/install-deps-macos.sh
# ./autogen.sh && make && make check
#
build_Ubuntu-latest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: install build dependencies from debian/control
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
sudo apt update > /dev/null
sudo apt install --yes devscripts equivs > /dev/null
sudo mk-build-deps --install debian/control > /dev/null
sudo apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: autogen and configure
run: |
./autogen.sh
- name: compile with make
run: |
make
- name: clean with make
run: |
make clean
- name: reduce compiler warning level
run: |
# reduce the compiler warning level for less noisy builds (xbuild is the 2nd pass anyway)
find . -name "*.csproj" -exec sed 's!<WarningLevel>[0-9]</WarningLevel>!<WarningLevel>0</WarningLevel>!' -i {} \;
- name: compile with xbuild (debug profile)
run: |
xbuild /p:Configuration=Debug src/smuxi.sln
- name: clean with xbuild (debug profile)
run: |
xbuild /p:Configuration=Debug /t:Clean src/smuxi.sln
- name: compile with xbuild (release profile)
run: |
xbuild /p:Configuration=Release src/smuxi.sln
- name: clean with xbuild (release profile)
run: |
xbuild /p:Configuration=Release /t:Clean src/smuxi.sln
- name: run tests
run: |
sudo apt install --yes nunit-console
make test
# Mono 5.18.x ships with:
# - Debian 10 (buster)
build_Mono-5_18: # lowest supported Mono version as defined in configure.ac
runs-on: ubuntu-latest
container: mono:5.18
steps:
- uses: actions/checkout@v1
# the official Mono container doesn't have sudo and https support for
# APT pre-installed
- name: install apt-transport-https and sudo
run: |
echo "Current APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
echo "The Debian stretch archived was moved to archive.debian.org, patching sources.list..."
sed 's/deb.debian.org/archive.debian.org/' -i /etc/apt/sources.list
echo "Removing security.debian.org..."
grep -v 'security.debian.org' /etc/apt/sources.list > /etc/apt/sources.list.new
cp /etc/apt/sources.list.new /etc/apt/sources.list
echo "Removing stretch/updates and stretch-updates..."
grep -v 'stretch/updates' /etc/apt/sources.list > /etc/apt/sources.list.new
cp /etc/apt/sources.list.new /etc/apt/sources.list
grep -v 'stretch-updates' /etc/apt/sources.list > /etc/apt/sources.list.new
cp /etc/apt/sources.list.new /etc/apt/sources.list
echo "New APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
apt update > /dev/null || true # ignore exit code so mixed HTTP and
# HTTPS source lines won't fail before https support is intalled below
apt install --yes apt-transport-https
apt update
apt install --yes sudo
- name: install build dependencies from debian/control
run: |
sudo apt install --yes devscripts equivs > /dev/null
#sudo mk-build-deps --install debian/control
# "mk-build-deps --install" fails to install all packages, while apt can
# install all packages without issues, so we skip "--install" here
sudo mk-build-deps debian/control
dpkg --info ./smuxi-build-deps_*.deb
sudo apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: autogen and configure
run: |
./autogen.sh
- name: build
run: |
make
# Mono 6.8.0.105 ships with:
# - Ubuntu 20.04 LTS (focal)
# - Ubuntu 22.04 LTS (jammy)
# - Ubuntu 23.04 LTS (lunar)
# - Debian 11 (bullseye)
# - Debian 12 (bookworm)
build_Mono-6_8_0_105:
# Upstream's docker repo does not contain 6.8.105, just 6.8.0.96 and 6.8.0.123,
# thus we rely on the Mono version shipped with Ubuntu 22.04 instead
runs-on: ubuntu-22.04
# GitHub installs/ships Mono 6.12.x as part of their ubuntu-22.04 VM images,
# thus we have to use a container to use the Mono version that is actually from the Ubuntu archive
container: ubuntu:22.04
steps:
- uses: actions/checkout@v1
- name: detect APT sources
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
- name: install sudo
run: |
apt update
apt install --yes sudo
# workaround for https://github.com/actions/runner/issues/2033
- name: workaround failing git ownership check
run: |
sudo apt install --yes git > /dev/null
git config --global --add safe.directory '*'
- name: install build dependencies from debian/control
run: |
DEBIAN_FRONTEND=noninteractive # prevent that package configuration waits for user input
export DEBIAN_FRONTEND
sudo -E apt install --yes devscripts equivs > /dev/null
sudo mk-build-deps debian/control
dpkg --info ./smuxi-build-deps_*.deb
sudo -E apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: autogen and configure
run: |
./autogen.sh
- name: build
run: |
make
# Mono 6.12.x does not ship with any known Ubuntu or Debian versions
build_Mono-6_12: # latest Mono stable LTS version
runs-on: ubuntu-latest
container: mono:6.12.0.182
steps:
- uses: actions/checkout@v1
# the official Mono container doesn't have sudo and https support for
# APT pre-installed
- name: install apt-transport-https and sudo
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
apt update > /dev/null || true # ignore exit code so mixed HTTP and
# HTTPS source lines won't fail before https support is intalled below
apt install --yes apt-transport-https > /dev/null
apt update > /dev/null
apt install --yes sudo > /dev/null
# workaround for https://github.com/actions/runner/issues/2033
- name: workaround failing git ownership check
run: |
sudo apt install --yes git > /dev/null
git config --global --add safe.directory '*'
- name: install build dependencies from debian/control
run: |
sudo apt install --yes devscripts equivs > /dev/null
#sudo mk-build-deps --install debian/control
# "mk-build-deps --install" fails to install all packages, while apt can
# install all packages without issues, so we skip "--install" here
sudo mk-build-deps debian/control
dpkg --info ./smuxi-build-deps_*.deb
sudo apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: autogen and configure
run: |
./autogen.sh
- name: build
run: |
make
build_Mono-latest: # latest Mono version
runs-on: ubuntu-latest
container: mono:latest
steps:
- uses: actions/checkout@v1
# the official Mono container doesn't have sudo and https support for
# APT pre-installed
- name: install apt-transport-https and sudo
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
apt update > /dev/null || true # ignore exit code so mixed HTTP and
# HTTPS source lines won't fail before https support is intalled below
apt install --yes apt-transport-https > /dev/null
apt update > /dev/null
apt install --yes sudo > /dev/null
# workaround for https://github.com/actions/runner/issues/2033
- name: workaround failing git ownership check
run: |
sudo apt install --yes git > /dev/null
git config --global --add safe.directory '*'
- name: install build dependencies from debian/control
run: |
sudo apt install --yes devscripts equivs > /dev/null
#sudo mk-build-deps --install debian/control
# "mk-build-deps --install" fails to install all packages, while apt can
# install all packages without issues, so we skip "--install" here
sudo mk-build-deps debian/control
dpkg --info ./smuxi-build-deps_*.deb
sudo apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: autogen and configure
run: |
./autogen.sh
- name: build
run: |
make
build_debs_Debian-stable:
runs-on: ubuntu-latest
container: debian:stable
steps:
- uses: actions/checkout@v1
- name: check Debian version
run: |
cat /etc/debian_version
- name: install sudo and moreutils (for chronic)
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
apt update
apt install --yes sudo moreutils
# we can't use debian/control to satisfy the build dependencies on Debian
# 12 (bookwarm) as log4net was removed from the archive. Thus we rely on the
# bundled libraries instead.
#- name: install build dependencies from debian/control
# run: |
# sudo apt install --yes devscripts equivs
# sudo mk-build-deps debian/control
# dpkg --info ./smuxi-build-deps_*.deb
# sudo apt install --yes ./smuxi-build-deps_*.deb
- name: install build dependencies
run: |
sudo apt install --yes build-essential git autoconf automake intltool mono-devel mono-xbuild libnini-cil-dev libgtk2.0-cil-dev libdbus2.0-cil-dev libdbus-glib2.0-cil-dev libstfl-dev lsb-release
- name: check mono version
run: |
mono --version
- name: workaround failing git ownership check
run: |
sudo apt install --yes git > /dev/null
git config --global --add safe.directory '*'
- name: prepare build
run: |
./autogen.sh
- name: install tools for building debs
run: |
sudo apt install --yes build-essential debhelper cli-common-dev
- name: build debs
run: |
dpkg-buildpackage -us -uc -rfakeroot --build=binary --no-check-builddeps
build_debs_Debian-unstable:
runs-on: ubuntu-latest
container: debian:unstable
steps:
- uses: actions/checkout@v1
- name: check Debian version
run: |
cat /etc/debian_version
- name: install sudo and moreutils (for chronic)
run: |
echo "Detected APT sources:"
grep deb /etc/apt/sources.list /etc/apt/sources.list.d/* | grep -v ":#"
apt update
apt install --yes sudo moreutils
- name: install build dependencies from debian/control
run: |
sudo apt install --yes devscripts equivs
sudo mk-build-deps debian/control
dpkg --info ./smuxi-build-deps_*.deb
sudo apt install --yes ./smuxi-build-deps_*.deb
- name: check mono version
run: |
mono --version
- name: workaround failing git ownership check
run: |
sudo apt install --yes git > /dev/null
git config --global --add safe.directory '*'
- name: prepare build
run: |
./autogen.sh
- name: build debs
run: |
dpkg-buildpackage -us -uc -rfakeroot --build=binary
build_nix_NixOS-stable:
runs-on: ubuntu-latest
container: nixos/nix
steps:
- uses: actions/checkout@v1
- name: build nix pkg
run: |
nix-build --expr 'let pkgs = import <nixpkgs> { }; in pkgs.callPackage ./nix/default.nix { gitBranch = "${{ github.ref_name }}"; }'