217 lines
8.4 KiB
YAML
217 lines
8.4 KiB
YAML
name: nx-libs CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ 3.6.x ]
|
|
pull_request:
|
|
branches: [ 3.6.x ]
|
|
|
|
jobs:
|
|
build:
|
|
name: Build on ${{ matrix.cfg.container }} - ${{ matrix.cfg.cc-version }}
|
|
runs-on: ubuntu-20.04
|
|
container: ${{ matrix.cfg.container }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
cfg:
|
|
- { container: 'ubuntu:16.04', cc-version: gcc }
|
|
- { container: 'ubuntu:16.04', cc-version: clang }
|
|
- { container: 'ubuntu:20.04', cc-version: gcc }
|
|
- { container: 'ubuntu:20.04', cc-version: clang }
|
|
- { container: 'ubuntu:22.04', cc-version: gcc }
|
|
- { container: 'ubuntu:22.04', cc-version: clang }
|
|
- { container: 'debian:stable', cc-version: gcc }
|
|
- { container: 'debian:stable', cc-version: clang }
|
|
- { container: 'debian:sid', cc-version: gcc }
|
|
- { container: 'debian:sid', cc-version: clang }
|
|
- { container: 'quay.io/centos/centos:7', cc-version: gcc }
|
|
- { container: 'quay.io/centos/centos:7', cc-version: clang }
|
|
- { container: 'quay.io/centos/centos:stream8', cc-version: gcc }
|
|
- { container: 'quay.io/centos/centos:stream8', cc-version: clang }
|
|
- { container: 'quay.io/centos/centos:stream9', cc-version: gcc }
|
|
- { container: 'quay.io/centos/centos:stream9', cc-version: clang }
|
|
- { container: 'fedora:latest', cc-version: gcc }
|
|
- { container: 'fedora:latest', cc-version: clang }
|
|
|
|
steps:
|
|
- name: Install compiler ${{ matrix.cfg.cc-version }}
|
|
shell: sh
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
case "${{ matrix.cfg.container }}" in
|
|
ubuntu*|debian*)
|
|
cat /etc/debian_version
|
|
apt-get update -q -y
|
|
apt-get install -q -y ${{ matrix.cfg.cc-version }}
|
|
${{ matrix.cfg.cc-version }} --version
|
|
case "${{ matrix.cfg.cc-version }}" in
|
|
gcc)
|
|
apt-get install -q -y g++
|
|
;;
|
|
clang)
|
|
apt-get install -q -y build-essential
|
|
esac
|
|
;;
|
|
fedora*)
|
|
cat /etc/fedora-release
|
|
dnf -y update
|
|
dnf -y install ${{ matrix.cfg.cc-version }}
|
|
${{ matrix.cfg.cc-version }} --version
|
|
;;
|
|
*/centos:7)
|
|
cat /etc/centos-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
|
yum -y update
|
|
yum -y install ${{ matrix.cfg.cc-version }}
|
|
${{ matrix.cfg.cc-version }} --version
|
|
;;
|
|
*/centos:stream8)
|
|
cat /etc/centos-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
|
|
dnf -y update --nobest --allowerasing
|
|
dnf -y install ${{ matrix.cfg.cc-version }}
|
|
${{ matrix.cfg.cc-version }} --version
|
|
;;
|
|
*/centos:stream9)
|
|
cat /etc/centos-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
|
|
dnf -y update
|
|
dnf -y install ${{ matrix.cfg.cc-version }}
|
|
${{ matrix.cfg.cc-version }} --version
|
|
;;
|
|
esac
|
|
|
|
- name: Install nx-libs dependencies ${{ matrix.cfg.cc-version }}
|
|
shell: sh
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
case "${{ matrix.cfg.container }}" in
|
|
ubuntu*|debian*)
|
|
# basic packages
|
|
apt-get install -q -y \
|
|
autoconf libtool make pkg-config
|
|
# imake deps
|
|
apt-get install -q -y \
|
|
libxkbfile-dev xfonts-utils xutils-dev
|
|
# X11 libraries deps
|
|
apt-get install -q -y \
|
|
libpixman-1-dev libjpeg-dev libxcomposite-dev libxdamage-dev \
|
|
libxml2-dev libxfont-dev libxinerama-dev libxpm-dev libxrandr-dev \
|
|
libxtst-dev x11proto-fonts-dev
|
|
# soft requirements
|
|
apt-get install -q -y \
|
|
quilt x11-xkb-utils
|
|
;;
|
|
fedora*)
|
|
# basic packages
|
|
dnf -y install \
|
|
autoconf automake gcc-c++ libtool make imake pkgconfig which
|
|
# imake deps
|
|
dnf -y install \
|
|
xorg-x11-proto-devel zlib-devel
|
|
# X11 libraries deps
|
|
dnf -y install \
|
|
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
|
|
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
|
|
libXdmcp-devel libXdamage-devel libXcomposite-devel \
|
|
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
|
|
xorg-x11-font-utils libtirpc-devel xkeyboard-config
|
|
# soft requirements
|
|
dnf -y install \
|
|
quilt xkbcomp-devel
|
|
;;
|
|
*/centos:7)
|
|
# enable epel repository for quilt
|
|
yum -y install epel-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
|
|
# basic packages
|
|
yum -y install \
|
|
autoconf automake gcc-c++ libtool make imake pkgconfig which
|
|
# imake deps
|
|
yum -y install \
|
|
xorg-x11-proto-devel zlib-devel
|
|
# X11 libraries deps
|
|
yum -y install \
|
|
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
|
|
libX11-devel libXext-devel libXpm-devel libXfont-devel \
|
|
libXdmcp-devel libXdamage-devel libXcomposite-devel \
|
|
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
|
|
xorg-x11-font-utils libtirpc-devel xkeyboard-config
|
|
# soft requirements
|
|
yum -y --enablerepo=epel install \
|
|
quilt xorg-x11-xkb-utils-devel
|
|
;;
|
|
*/centos:stream8)
|
|
# Enable powertools repository for imake
|
|
dnf -y install dnf-plugins-core epel-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
|
|
dnf config-manager --set-enabled powertools
|
|
# basic packages
|
|
dnf -y install \
|
|
autoconf automake gcc-c++ libtool make imake pkgconfig which
|
|
# imake deps
|
|
dnf -y install \
|
|
xorg-x11-proto-devel zlib-devel
|
|
# X11 libraries deps
|
|
dnf -y install \
|
|
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
|
|
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
|
|
libXdmcp-devel libXdamage-devel libXcomposite-devel \
|
|
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
|
|
xorg-x11-font-utils libtirpc-devel xkeyboard-config
|
|
# soft requirements
|
|
dnf --enablerepo="epel" -y install \
|
|
quilt xorg-x11-xkb-utils-devel
|
|
;;
|
|
*/centos:stream9)
|
|
dnf -y install dnf-plugins-core epel-release
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
|
|
# CodeReady Linux Builder, replacement for PowerTools
|
|
dnf config-manager --set-enabled crb
|
|
# basic packages
|
|
dnf -y install \
|
|
autoconf automake gcc-c++ libtool make imake pkgconfig which
|
|
# imake deps
|
|
dnf -y install \
|
|
xorg-x11-proto-devel zlib-devel
|
|
# X11 libraries deps
|
|
dnf -y install \
|
|
libjpeg-devel expat-devel libpng-devel libxml2-devel pixman-devel \
|
|
libX11-devel libXext-devel libXpm-devel libXfont2-devel \
|
|
libXdmcp-devel libXdamage-devel libXcomposite-devel \
|
|
libXrandr-devel libXfixes-devel libXtst-devel libXinerama-devel \
|
|
libtirpc-devel mkfontscale xkeyboard-config
|
|
# soft requirements
|
|
dnf -y install \
|
|
quilt setxkbmap xkbcomp
|
|
;;
|
|
esac
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Build nx-libs with ${{ matrix.cfg.cc-version }}
|
|
shell: sh
|
|
env:
|
|
DEBIAN_FRONTEND: noninteractive
|
|
run: |
|
|
case "${{ matrix.cfg.cc-version }}" in
|
|
gcc)
|
|
export CC=gcc
|
|
export CXX=g++
|
|
;;
|
|
clang)
|
|
export CC=clang
|
|
export CXX=clang++
|
|
;;
|
|
esac
|
|
case "${{ matrix.cfg.container }}" in
|
|
fedora*|*/centos*|debian*|ubuntu*)
|
|
export IMAKE_DEFINES="-DUseTIRPC=YES"
|
|
make VERBOSE=1 IMAKE_DEFINES="${IMAKE_DEFINES}"
|
|
;;
|
|
esac
|