Skip to content

GitHub-CI/build_Mono-6_8_0_105: add new CI job #71

GitHub-CI/build_Mono-6_8_0_105: add new CI job

GitHub-CI/build_Mono-6_8_0_105: add new CI job #71

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: compile with xbuild
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 {} \;
xbuild src/smuxi.sln
- name: clean with xbuild
run: |
xbuild /t:Clean src/smuxi.sln
# 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: |
sudo apt install --yes devscripts equivs > /dev/null
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.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
- 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