name: More Linux on: schedule: - cron: '0 0 * * 0' workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: cfg: #-------- Operating Systems ---------------- - { os: ubuntu, tag: 20.04, arch: debian, arch_ver: 11 } - { os: debian, tag: 10, arch: debian, arch_ver: 10 } - { os: debian, tag: 11, arch: debian, arch_ver: 11 } - { os: debian, tag: bookworm, arch: debian, arch_ver: 12 } - { os: almalinux, tag: 8, arch: rhel, arch_ver: 8 } python: [2, 3] #-------- Defaults -------------------------- include: - cfg: {} deps: >- bison clang flex git llvm make maven cmake zip install_gtest: echo gtest already installed conf_pkg: echo package manager already configured install_cmd: install -y #-------- Debian-based Dependencies ---------------- - cfg: { arch: debian } pkg_mgr: apt-get conf_pkg: apt-get update arch_deps: >- swig curl g++ libx11-dev libxml2-dev libxt-dev libmotif-common libmotif-dev zlib1g-dev llvm-dev libclang-dev libudunits2-dev libgtest-dev default-jdk python3-dev python3-pip python3-venv install_gtest: | apt-get install -y libgtest-dev cd /usr/src/gtest cmake . make cp lib/libgtest* /usr/lib/ #-------- RHEL Dependencies ---------------- - cfg: { arch: rhel } arch_deps: >- clang-devel gcc gcc-c++ java-11-openjdk-devel libxml2-devel llvm-devel llvm-static ncurses-devel openmotif openmotif-devel perl perl-Digest-MD5 udunits2 udunits2-devel which zlib-devel python2-devel python3-devel #-------- RHEL 8-based Only Dependencies ---------------- - cfg: { arch: rhel, arch_ver: 8 } pkg_mgr: dnf tag_deps: >- swig diffutils conf_pkg: | dnf -y install epel-release dnf -y update dnf install -y 'dnf-command(config-manager)' install_gtest: | dnf config-manager --enable powertools dnf install -y gtest-devel #-------- Debian 10-based Only Dependencies ---------------- - cfg: { arch: debian, arch_ver: 10 } install_gtest: | apt-get install -y libgtest-dev cd /usr/src/gtest cmake . make cp libgtest* /usr/lib/ #-------- Debian 11-based Only Dependencies ---------------- - cfg: { arch: debian, arch_ver: 11 } conf_pkg: | export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y tzdata #-------- Python2.7 dependencies --------------------------- - cfg: { arch: debian } python: 2 python_deps: >- python2.7-dev #-------- Exclude bookworm on python 2 --------------------- exclude: - cfg: { tag: bookworm } python: 2 #-------- OS and Version Specific Dependencies ---------------- # None #-------- Job definition ---------------- runs-on: ubuntu-latest container: docker://${{matrix.cfg.os}}:${{matrix.cfg.tag}} steps: - name: Update Package Manager run: ${{matrix.conf_pkg}} - name: Install Dependencies run: > ${{matrix.pkg_mgr}} ${{matrix.install_cmd}} ${{matrix.deps}} ${{matrix.arch_deps}} ${{matrix.os_deps}} ${{matrix.tag_deps}} ${{matrix.python_deps}} - name: Install GTest run: ${{matrix.install_gtest}} - name: Checkout repository uses: actions/checkout@v3 - name: Configure Trick run: | export MAKEFLAGS=-j`nproc` export PYTHON_VERSION=${{matrix.python}} ./configure - name: Build Trick run: | export MAKEFLAGS=-j`nproc` make - name: Test run: | cd share/trick/trickops/ python3 -m venv .venv && . .venv/bin/activate && pip3 install -r requirements.txt cd ../../../; make test32