2021-01-29 00:48:18 +00:00
|
|
|
name: Linux
|
2020-11-10 19:14:35 +00:00
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
paths-ignore:
|
|
|
|
- 'docs/**'
|
2021-02-05 05:56:35 +00:00
|
|
|
- '.github/workflows/**'
|
|
|
|
- '!.github/workflows/test_linux.yml'
|
2021-05-27 03:00:38 +00:00
|
|
|
pull_request:
|
2022-03-17 19:55:27 +00:00
|
|
|
workflow_dispatch:
|
2020-11-10 19:14:35 +00:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
cfg:
|
|
|
|
#-------- Operating Systems ----------------
|
2022-03-17 19:55:27 +00:00
|
|
|
- { os: ubuntu, tag: 18.04, arch: debian, arch_ver: 10 }
|
|
|
|
- { 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: centos, tag: 7, arch: rhel, arch_ver: 7 }
|
|
|
|
- { os: rockylinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
- { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
- { os: almalinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
python: [2, 3]
|
2020-11-10 19:14:35 +00:00
|
|
|
|
|
|
|
#-------- Defaults --------------------------
|
|
|
|
include:
|
|
|
|
- cfg: {}
|
|
|
|
deps: >-
|
|
|
|
bison
|
|
|
|
clang
|
|
|
|
flex
|
|
|
|
git
|
|
|
|
llvm
|
|
|
|
make
|
|
|
|
maven
|
|
|
|
cmake
|
2021-05-17 16:08:04 +00:00
|
|
|
zip
|
2020-11-10 19:14:35 +00:00
|
|
|
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: >-
|
2021-02-06 01:32:36 +00:00
|
|
|
swig
|
2020-11-10 19:14:35 +00:00
|
|
|
curl
|
|
|
|
g++
|
|
|
|
libx11-dev
|
|
|
|
libxml2-dev
|
|
|
|
libxt-dev
|
|
|
|
libmotif-common
|
|
|
|
libmotif-dev
|
|
|
|
zlib1g-dev
|
|
|
|
llvm-dev
|
|
|
|
libclang-dev
|
|
|
|
libudunits2-dev
|
|
|
|
libgtest-dev
|
2022-03-17 19:55:27 +00:00
|
|
|
default-jdk
|
|
|
|
python2.7-dev
|
|
|
|
python3-dev
|
2020-11-10 19:14:35 +00:00
|
|
|
#-------- 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
|
2022-03-17 19:55:27 +00:00
|
|
|
python2-devel
|
|
|
|
python3-devel
|
|
|
|
#-------- RHEL 7-based Only Dependencies ----------------
|
|
|
|
- cfg: { arch: rhel, arch_ver: 7 }
|
2020-11-10 19:14:35 +00:00
|
|
|
pkg_mgr: yum
|
2022-03-17 19:55:27 +00:00
|
|
|
conf_pkg: |
|
|
|
|
yum -y install epel-release
|
|
|
|
yum -y update
|
2020-11-10 19:14:35 +00:00
|
|
|
os_deps: >-
|
|
|
|
libX11-devel
|
|
|
|
libXt-devel
|
2021-02-06 01:32:36 +00:00
|
|
|
swig3
|
2022-03-17 19:55:27 +00:00
|
|
|
gtest-devel
|
|
|
|
#-------- RHEL 8-based Only Dependencies ----------------
|
|
|
|
- cfg: { arch: rhel, arch_ver: 8 }
|
2022-02-15 18:51:44 +00:00
|
|
|
pkg_mgr: dnf
|
|
|
|
tag_deps: >-
|
|
|
|
swig
|
2022-03-17 19:55:27 +00:00
|
|
|
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
|
|
|
|
install_gtest: |
|
|
|
|
apt-get install -y libgtest-dev
|
|
|
|
cd /usr/src/gtest
|
|
|
|
cmake .
|
|
|
|
make
|
|
|
|
cp lib/libgtest* /usr/lib/
|
|
|
|
#-------- OS and Version Specific Dependencies ----------------
|
|
|
|
- cfg: { os: oraclelinux }
|
|
|
|
install_gtest: |
|
|
|
|
dnf config-manager --enable ol8_codeready_builder
|
|
|
|
dnf install -y gtest-devel
|
2020-11-10 19:14:35 +00:00
|
|
|
#-------- Job definition ----------------
|
2022-03-18 17:05:25 +00:00
|
|
|
runs-on: ubuntu-latest
|
2020-11-10 19:14:35 +00:00
|
|
|
container: docker://${{matrix.cfg.os}}:${{matrix.cfg.tag}}
|
|
|
|
steps:
|
|
|
|
- name: Update Package Manager
|
|
|
|
run: ${{matrix.conf_pkg}}
|
|
|
|
- name: Install Dependencies
|
2022-03-17 19:55:27 +00:00
|
|
|
run: >
|
|
|
|
${{matrix.pkg_mgr}}
|
|
|
|
${{matrix.install_cmd}}
|
|
|
|
${{matrix.deps}}
|
|
|
|
${{matrix.arch_deps}}
|
|
|
|
${{matrix.os_deps}}
|
|
|
|
${{matrix.tag_deps}}
|
2020-11-10 19:14:35 +00:00
|
|
|
- name: Install GTest
|
|
|
|
run: ${{matrix.install_gtest}}
|
|
|
|
- name: Checkout repository
|
|
|
|
uses: actions/checkout@master
|
2022-03-17 19:55:27 +00:00
|
|
|
- name: Configure Trick
|
2020-11-10 19:14:35 +00:00
|
|
|
run: |
|
|
|
|
export MAKEFLAGS=-j`nproc`
|
2022-03-17 19:55:27 +00:00
|
|
|
export PYTHON_VERSION=${{matrix.python}}
|
2020-11-10 19:14:35 +00:00
|
|
|
./configure
|
2022-03-17 19:55:27 +00:00
|
|
|
- name: Build Trick
|
|
|
|
run: |
|
|
|
|
export MAKEFLAGS=-j`nproc`
|
2020-11-10 19:14:35 +00:00
|
|
|
make
|
|
|
|
- name: Test
|
2022-02-02 00:34:40 +00:00
|
|
|
run: make test
|
2022-03-18 17:05:25 +00:00
|
|
|
- name: Upload Tests
|
|
|
|
uses: actions/upload-artifact@v3.0.0
|
|
|
|
if: success() || failure() # run this step even if previous step failed
|
|
|
|
with:
|
|
|
|
name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}}
|
|
|
|
path: trick_test/*.xml
|
|
|
|
retention-days: 1
|
2022-03-17 19:55:27 +00:00
|
|
|
# Uncomment for build artifacts
|
|
|
|
# - name: Upload Trick Build
|
|
|
|
# uses: actions/upload-artifact@v3.0.0
|
|
|
|
# with:
|
2022-03-18 17:05:25 +00:00
|
|
|
# name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}}
|
2022-03-17 19:55:27 +00:00
|
|
|
# path: |
|
|
|
|
# bin
|
|
|
|
# include
|
|
|
|
# lib
|
|
|
|
# share
|
|
|
|
# libexec
|
|
|
|
# retention-days: 1
|
|
|
|
|
2022-03-18 17:05:25 +00:00
|
|
|
# report:
|
|
|
|
# needs: [build]
|
|
|
|
# strategy:
|
|
|
|
# fail-fast: false
|
|
|
|
# matrix:
|
|
|
|
# cfg:
|
|
|
|
# #-------- Operating Systems ----------------
|
|
|
|
# - { os: ubuntu, tag: 18.04, arch: debian, arch_ver: 10 }
|
|
|
|
# - { 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: centos, tag: 7, arch: rhel, arch_ver: 7 }
|
|
|
|
# - { os: rockylinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
# - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
# - { os: almalinux, tag: 8, arch: rhel, arch_ver: 8 }
|
|
|
|
# python: [2, 3]
|
|
|
|
|
|
|
|
# runs-on: ubuntu-latest
|
|
|
|
# steps:
|
|
|
|
# - uses: dorny/test-reporter@v1
|
|
|
|
# with:
|
|
|
|
# artifact: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}} # artifact name
|
|
|
|
# name: Results_Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}} # Name of the check run which will be created
|
|
|
|
# path: '*.xml' # Path to test results (inside artifact .zip)
|
|
|
|
# reporter: java-junit # Format of test results
|
|
|
|
|