mirror of
https://github.com/nasa/trick.git
synced 2025-06-01 15:10:59 +00:00
split github action tests by kernel
This commit is contained in:
parent
5f59948cb8
commit
1aaf9f34bc
223
.github/workflows/test.yml
vendored
223
.github/workflows/test.yml
vendored
@ -1,223 +0,0 @@
|
|||||||
name: Trick CI
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- 'docs/**'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
cfg:
|
|
||||||
#-------- Operating Systems ----------------
|
|
||||||
- { os: ubuntu, tag: 18.04, arch: debian } # EOL April 2023
|
|
||||||
- { os: ubuntu, tag: 20.04, arch: debian } # EOL April 2025
|
|
||||||
- { os: debian, tag: 10, arch: debian } # EOL 2024
|
|
||||||
- { os: centos, tag: 7, arch: rhel } # EOL June 2024
|
|
||||||
- { os: centos, tag: latest, arch: rhel } # 8 as of April 2020
|
|
||||||
- { os: fedora, tag: latest, arch: rhel } # 31 as of April 2020
|
|
||||||
# - { os: fedora, tag: 33, arch: rhel } # feeling confident?
|
|
||||||
# - { os: fedora, tag: rawhide, arch: rhel } # for thrill-seekers only
|
|
||||||
|
|
||||||
#-------- Defaults --------------------------
|
|
||||||
include:
|
|
||||||
- cfg: {}
|
|
||||||
deps: >-
|
|
||||||
bison
|
|
||||||
clang
|
|
||||||
flex
|
|
||||||
git
|
|
||||||
llvm
|
|
||||||
make
|
|
||||||
maven
|
|
||||||
swig
|
|
||||||
cmake
|
|
||||||
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: >-
|
|
||||||
curl
|
|
||||||
g++
|
|
||||||
libx11-dev
|
|
||||||
libxml2-dev
|
|
||||||
libxt-dev
|
|
||||||
libmotif-common
|
|
||||||
libmotif-dev
|
|
||||||
python2.7-dev
|
|
||||||
zlib1g-dev
|
|
||||||
llvm-dev
|
|
||||||
libclang-dev
|
|
||||||
libudunits2-dev
|
|
||||||
libgtest-dev
|
|
||||||
install_gtest: cd /usr/src/gtest && cmake . && make && cp 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
|
|
||||||
gtest-devel
|
|
||||||
#-------- Ubuntu Only Dependencies ----------------
|
|
||||||
- cfg: { os: ubuntu }
|
|
||||||
os_deps: >-
|
|
||||||
openjdk-11-jdk
|
|
||||||
#-------- Debian OS Only Dependencies ----------------
|
|
||||||
- cfg: { os: debian }
|
|
||||||
os_deps: >-
|
|
||||||
openjdk-11-jdk
|
|
||||||
#-------- CentOS Only Dependencies ----------------
|
|
||||||
- cfg: { os: centos }
|
|
||||||
pkg_mgr: yum
|
|
||||||
conf_pkg: yum -y install epel-release && yum -y update
|
|
||||||
os_deps: >-
|
|
||||||
libX11-devel
|
|
||||||
libXt-devel
|
|
||||||
#-------- Fedora Only Dependencies ----------------
|
|
||||||
- cfg: { os: fedora }
|
|
||||||
pkg_mgr: dnf
|
|
||||||
os_deps: >-
|
|
||||||
perl-Text-Balanced
|
|
||||||
python-devel
|
|
||||||
diffutils
|
|
||||||
#-------- Version Specific Dependencies ----------------
|
|
||||||
- cfg: { os: ubuntu, tag: 20.04 }
|
|
||||||
conf_pkg: DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y tzdata
|
|
||||||
install_gtest: cd /usr/src/gtest && cmake . && make && cp lib/libgtest* /usr/lib/
|
|
||||||
tag_deps: >-
|
|
||||||
python3.8-dev
|
|
||||||
- cfg: { os: centos, tag: 7 }
|
|
||||||
tag_deps: >-
|
|
||||||
python-devel
|
|
||||||
- cfg: { os: centos, tag: latest }
|
|
||||||
pkg_mgr: dnf
|
|
||||||
conf_pkg: >
|
|
||||||
dnf -y install epel-release &&
|
|
||||||
dnf -y update &&
|
|
||||||
dnf install -y 'dnf-command(config-manager)' &&
|
|
||||||
dnf config-manager --enable PowerTools
|
|
||||||
tag_deps: >-
|
|
||||||
python3-devel diffutils
|
|
||||||
#-------- Job definition ----------------
|
|
||||||
runs-on: ubuntu-18.04
|
|
||||||
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}}
|
|
||||||
- name: Install GTest
|
|
||||||
run: ${{matrix.install_gtest}}
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@master
|
|
||||||
- name: Build trick
|
|
||||||
run: |
|
|
||||||
export MAKEFLAGS=-j`nproc`
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
- name: Test
|
|
||||||
run: make test
|
|
||||||
|
|
||||||
macOS:
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@master
|
|
||||||
|
|
||||||
- name: Install gtest
|
|
||||||
run: |
|
|
||||||
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
|
|
||||||
tar xzvf release-1.8.0.tar.gz
|
|
||||||
cd googletest-release-1.8.0/googletest
|
|
||||||
cmake .
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
# sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.15.pkg -target /
|
|
||||||
brew cask install xquartz
|
|
||||||
brew install llvm swig udunits openmotif maven
|
|
||||||
- name: Build Trick
|
|
||||||
run: |
|
|
||||||
export MAKEFLAGS=-j4
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
export MAKEFLAGS=-j4
|
|
||||||
make test
|
|
||||||
|
|
||||||
trick_32bit:
|
|
||||||
runs-on: ubuntu-18.04
|
|
||||||
container: docker://centos:7
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@master
|
|
||||||
- name: Add yum repo
|
|
||||||
run: yum -y install epel-release.noarch
|
|
||||||
- name: Install dependency group
|
|
||||||
run: yum -y groupinstall "Development tools"
|
|
||||||
- name: Install other dependencies
|
|
||||||
run: >
|
|
||||||
yum install -y llvm llvm-devel llvm-static clang clang-devel
|
|
||||||
bison flex gcc gcc-c++ libxml2-devel make cmake wget
|
|
||||||
ncurses-devel openmotif openmotif-devel python-devel perl
|
|
||||||
perl-Digest-MD5 swig zlib-devel glibc.x86_64 libxml2-devel.i686
|
|
||||||
ncurses-devel.i686 zlib-devel.i686 python-libs.i686
|
|
||||||
expat-2.1.0-10.el7_3.i686 glibc-devel-2.17-196.el7.i686
|
|
||||||
glibc.i686 glibc-devel.i686 udunits2 udunits2-devel gtest-devel.i686
|
|
||||||
java-11-openjdk java-11-openjdk-devel expat-devel.i686
|
|
||||||
which gcc-gfortran git wget gsl-devel gtest-devel gsl-devel.i686
|
|
||||||
maven udunits2 udunits2-devel
|
|
||||||
- name: Symlink python
|
|
||||||
run: |
|
|
||||||
cd /usr/lib
|
|
||||||
ln -s ./libpython2.7.so.1.0 libpython2.7.so
|
|
||||||
- name: Install Udunits (32 bit)
|
|
||||||
run: |
|
|
||||||
curl --retry 4 -O https://www.unidata.ucar.edu/downloads/udunits/udunits-2.2.26.tar.gz
|
|
||||||
tar xfvz udunits-2.2.26.tar.gz
|
|
||||||
rm udunits-2.2.26.tar.gz
|
|
||||||
cd udunits-2.2.26
|
|
||||||
export CFLAGS="-m32"
|
|
||||||
./configure --prefix=/usr
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
- name: Install GTest (32 bit)
|
|
||||||
run: |
|
|
||||||
wget https://github.com/google/googletest/archive/release-1.8.0.tar.gz
|
|
||||||
tar xfvz release-1.8.0.tar.gz
|
|
||||||
cd googletest-release-1.8.0/googletest
|
|
||||||
export CFLAGS="-m32"
|
|
||||||
export CXXFLAGS="-m32"
|
|
||||||
cmake .
|
|
||||||
make
|
|
||||||
make install
|
|
||||||
- name: Build Trick
|
|
||||||
run: |
|
|
||||||
yum -y update && yum clean all
|
|
||||||
export MAKEFLAGS=-j`nproc`
|
|
||||||
./configure --without-hdf5 --enable-32bit
|
|
||||||
make
|
|
||||||
- name: Run tests
|
|
||||||
run: make test
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user