From 763a9ee0ef774114f06e57edb3869ba5bfed6feb Mon Sep 17 00:00:00 2001 From: Mario Trangoni Date: Sat, 30 Jan 2021 18:07:40 +0100 Subject: Add build jobs on containers Signed-off-by: Mario Trangoni --- .github/workflows/nx-libs.yml | 217 +++++++++++++++++++++++++++++++++--------- 1 file changed, 171 insertions(+), 46 deletions(-) diff --git a/.github/workflows/nx-libs.yml b/.github/workflows/nx-libs.yml index cc4878498..70177f419 100644 --- a/.github/workflows/nx-libs.yml +++ b/.github/workflows/nx-libs.yml @@ -7,50 +7,175 @@ on: branches: [ 3.6.x ] jobs: - build: - name: Build on ${{ matrix.cfg.container }} - ${{ matrix.cfg.cpp-version }} - runs-on: ubuntu-latest - container: ${{ matrix.cfg.container }} - strategy: - fail-fast: false - matrix: - cfg: - - { container: 'ubuntu:16.04', cpp-version: gcc } - - { container: 'ubuntu:16.04', cpp-version: clang } - - { container: 'ubuntu:20.04', cpp-version: gcc } - - { container: 'ubuntu:20.04', cpp-version: clang } - - { container: 'debian:stable', cpp-version: gcc } - - { container: 'debian:stable', cpp-version: clang } - - { container: 'debian:sid', cpp-version: gcc } - - { container: 'debian:sid', cpp-version: clang } - - { container: 'centos:7', cpp-version: gcc } - - { container: 'centos:7', cpp-version: clang } - - { container: 'centos:8', cpp-version: gcc } - - { container: 'centos:8', cpp-version: clang } - - { container: 'fedora:latest', cpp-version: gcc } - - { container: 'fedora:latest', cpp-version: clang } + build: + name: Build on ${{ matrix.cfg.container }} - ${{ matrix.cfg.cc-version }} + runs-on: ubuntu-latest + 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: 'debian:stable', cc-version: gcc } + - { container: 'debian:stable', cc-version: clang } + - { container: 'debian:sid', cc-version: gcc } + - { container: 'debian:sid', cc-version: clang } + - { container: 'centos:7', cc-version: gcc } + - { container: 'centos:7', cc-version: clang } + - { container: 'centos:8', cc-version: gcc } + - { container: 'centos:8', cc-version: clang } + - { container: 'fedora:latest', cc-version: gcc } + - { container: 'fedora:latest', cc-version: clang } - steps: - - name: Install compiler ${{ matrix.cfg.cpp-version }} - shell: sh - run: | - case "${{ matrix.cfg.container }}" in - ubuntu*|debian*) - cat /etc/debian_version - apt-get update -q -y - apt-get install -q -y ${{ matrix.cfg.cpp-version }} - ${{ matrix.cfg.cpp-version }} --version - ;; - fedora*) - cat /etc/fedora-release - dnf -y update - dnf -y install ${{ matrix.cfg.cpp-version }} - ${{ matrix.cfg.cpp-version }} --version - ;; - centos*) - cat /etc/centos-release - yum -y update - yum -y install ${{ matrix.cfg.cpp-version }} - ${{ matrix.cfg.cpp-version }} --version - ;; - esac + 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++ + ;; + esac + ;; + fedora*) + cat /etc/fedora-release + dnf -y update + dnf -y install ${{ matrix.cfg.cc-version }} + ${{ matrix.cfg.cc-version }} --version + ;; + centos:8) + 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 + ;; + 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 + ;; + 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 xorg-x11-xkb-utils-devel + ;; + centos:8) + # 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: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 install \ + quilt xorg-x11-xkb-utils-devel + ;; + 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 + ubuntu*|debian*) + make + ;; + fedora*|centos*) + export IMAKE_DEFINES="-DUseTIRPC=YES" + make IMAKE_DEFINES="${IMAKE_DEFINES}" + ;; + esac -- cgit v1.2.3