Skip to content

Added 1-byte enum checkpoint support. #2296

Added 1-byte enum checkpoint support.

Added 1-byte enum checkpoint support. #2296

Workflow file for this run

name: Linux
on:
push:
branches:
- master
paths:
- "**"
- "!docs/**"
- "!.github/workflows/**"
- ".github/workflows/test_linux.yml"
- "!Formula/**"
pull_request:
paths:
- "**"
- "!docs/**"
- "!.github/workflows/**"
- ".github/workflows/test_linux.yml"
- "!Formula/**"
workflow_dispatch:
concurrency:
# On PRs, cancel in-progress runs on the same branch when new commits are pushed.
# On master and workflow_dispatch, head_ref is undefined so run_id is used as fallback,
# which is unique per run and prevents any cancellation.
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
cfg:
#-------- Operating Systems ----------------
- {
os: ubuntu,
tag: 22.04,
arch: debian,
arch_ver: 12,
image: ubuntu,
}
- {
os: oraclelinux,
tag: 8,
arch: rhel,
arch_ver: 8,
image: oraclelinux,
}
- {
os: rockylinux,
tag: 8,
arch: rhel,
arch_ver: 8,
image: rockylinux/rockylinux,
}
- {
os: rockylinux,
tag: 9,
arch: rhel,
arch_ver: 9,
image: rockylinux/rockylinux,
}
- {
os: rockylinux,
tag: 10,
arch: rhel,
arch_ver: 10,
image: rockylinux/rockylinux,
}
#-------- Defaults --------------------------
include:
- cfg: {}
deps: >-
bison
clang
flex
git
llvm
make
maven
cmake
zip
gdb
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 libgmock-dev
cd /usr/src/gtest
cmake .
make
cp lib/libgtest* /usr/lib/
#-------- RHEL-based Dependencies (all versions) ----------------
- cfg: { arch: rhel }
pkg_mgr: dnf
conf_pkg: |
dnf -y install epel-release
dnf -y update
dnf install -y 'dnf-command(config-manager)'
arch_deps: >-
clang-devel
diffutils
gcc
gcc-c++
java-21-openjdk-devel
libxml2-devel
llvm-devel
llvm-static
ncurses-devel
openmotif
openmotif-devel
perl
perl-Digest-MD5
swig
udunits2
udunits2-devel
which
zlib-devel
python3-devel
#-------- RHEL 8-only Dependencies ----------------
- cfg: { arch: rhel, arch_ver: 8 }
install_gtest: |
dnf config-manager --enable powertools
dnf install -y gtest-devel gmock-devel
#-------- RHEL 9-only Dependencies ----------------
- cfg: { arch: rhel, arch_ver: 9 }
conf_pkg: |
dnf -y install epel-release
dnf -y update
dnf install -y 'dnf-command(config-manager)'
dnf config-manager --enable crb
install_gtest: |
dnf install -y gtest-devel gmock-devel
#-------- RHEL 10-only Dependencies ----------------
- cfg: { arch: rhel, arch_ver: 10 }
conf_pkg: |
dnf -y install epel-release
dnf -y update
dnf install -y 'dnf-command(config-manager)'
dnf config-manager --enable crb
install_gtest: |
dnf install -y gtest-devel gmock-devel
#-------- OL 8 Dependencies ----------------
- cfg: { os: oraclelinux, arch_ver: 8 }
install_gtest: |
dnf config-manager --enable ol8_codeready_builder
dnf install -y gtest-devel gmock-devel
#-------- Job definition ----------------
runs-on: ubuntu-latest
container: docker://${{matrix.cfg.image}}:${{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}}
- name: Install GTest
run: ${{matrix.install_gtest}}
- name: Checkout repository
uses: actions/checkout@v4
- name: Configure Trick
run: |
export MAKEFLAGS=-j`nproc`
./configure
- name: Build Trick
run: |
export MAKEFLAGS=-j`nproc`
export JAVA_HOME=$(dirname $(dirname $(readlink -f `which java`)))
make
- name: Test
run: |
cd share/trick/trickops/
python3 -m venv .venv && . .venv/bin/activate && pip3 install -r requirements.txt
cd ../../../; make test
- name: Upload Tests
uses: actions/upload-artifact@v7
if: success() || failure() # run this step even if previous step failed
with:
name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}
path: trick_test/*.xml
retention-days: 1
# Uncomment for build artifacts
# - name: Upload Trick Build
# uses: actions/upload-artifact@v3.0.0
# with:
# name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}
# path: |
# bin
# include
# lib
# share
# libexec
# retention-days: 1