From 959cbcb3290b667dcc772c0535b4341c78a46379 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 08:36:40 -0800 Subject: [PATCH 1/8] ci: add RHEL 9 support to Linux workflows Add Rocky Linux 9 and Oracle Linux 9 to the test and report workflows. Include RHEL 9-specific dependencies configuration with CRB repository enablement for gtest/gmock installation. Add dedicated trickops unit test job for Rocky Linux 9 to ensure compatibility with the newer RHEL version. --- .github/workflows/report_linux.yml | 2 ++ .github/workflows/test_linux.yml | 15 ++++++++++++++ .github/workflows/trickops.yml | 32 ++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/.github/workflows/report_linux.yml b/.github/workflows/report_linux.yml index 907dc2b42..ac0d2b0e2 100644 --- a/.github/workflows/report_linux.yml +++ b/.github/workflows/report_linux.yml @@ -14,7 +14,9 @@ jobs: #-------- Operating Systems ---------------- - { os: ubuntu, tag: 22.04, arch: debian, arch_ver: 12 } - { os: rockylinux, tag: 8, arch: rhel, arch_ver: 8 } + - { os: rockylinux, tag: 9, arch: rhel, arch_ver: 9 } - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 } + - { os: oraclelinux, tag: 9, arch: rhel, arch_ver: 9 } python: [3] diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 1c58ce6e3..5875c3df2 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -24,6 +24,8 @@ jobs: #-------- Operating Systems ---------------- - { os: ubuntu, tag: 22.04, arch: debian, arch_ver: 12 } - { os: rockylinux, tag: 8, arch: rhel, arch_ver: 8 } + - { os: rockylinux, tag: 9, arch: rhel, arch_ver: 9 } + - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 } - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 } python: [3] @@ -107,6 +109,19 @@ jobs: install_gtest: | dnf config-manager --enable powertools dnf install -y gtest-devel gmock-devel +#-------- RHEL 9-based Only Dependencies ---------------- + - cfg: { arch: rhel, arch_ver: 9 } + 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 --set-enabled crb + dnf install -y gtest-devel gmock-devel #-------- OS and Version Specific Dependencies ---------------- - cfg: { os: oraclelinux } install_gtest: | diff --git a/.github/workflows/trickops.yml b/.github/workflows/trickops.yml index 71c653639..1a7553504 100644 --- a/.github/workflows/trickops.yml +++ b/.github/workflows/trickops.yml @@ -71,6 +71,38 @@ jobs: share/trick/trickops/tests/*_doctest_log.txt /tmp/log.* + trickops-tests-rockylinux9: + name: Unit Tests RockyLinux9 + runs-on: ubuntu-22.04 + container: rockylinux:9 + steps: + - uses: actions/checkout@master + - name: install dependencies + # Note that perl is for trick-gte which TrickOps runs and qt and everything after it is for koviz + run: | + dnf install -y git python3-devel which perl perl-Digest-MD5 qt5-qtbase-devel bison clang flex make gcc gcc-c++ wget + - name: create virtual environment + run: | + cd share/trick/trickops/ + python3 -m venv .venv && source .venv/bin/activate && pip3 install -r requirements.txt + - name: get and build koviz + run: | + cd /tmp/ && wget -q https://github.com/nasa/koviz/archive/refs/heads/master.zip && unzip master.zip + cd /tmp/koviz-master/ && qmake-qt5 && make + - name: run unit and doc tests + run: | + cd share/trick/trickops/tests/ + source ../.venv/bin/activate + export PATH="/tmp/koviz-master/bin:${PATH}" + ./run_tests.py + - uses: actions/upload-artifact@v4 + if: ${{ always() }} + with: + name: doctests_${{ github.run_id }}_${{ github.job }} + path: | + share/trick/trickops/tests/*_doctest_log.txt + /tmp/log.* + # TODO: ExampleWorkflow.py is not included here because it needs a built Trick # to function correctly and I don't want to duplicate the Trick build testing # here to provide testing of what is essentially an example provided for From f93749f4bc70567d39e40dc7a52d4fbdaeb8b9bf Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 08:41:01 -0800 Subject: [PATCH 2/8] fix(ci): correct Oracle Linux 9 test configuration and dependencies - Fix duplicate Oracle Linux 8 entry in test matrix, replace with Oracle Linux 9 - Add Oracle Linux 9 specific gtest installation steps using ol9_codeready_builder repository - Update Oracle Linux 8 gtest installation to be version-specific instead of OS-only match This ensures Oracle Linux 9 is properly tested with the correct dependency installation commands. --- .github/workflows/test_linux.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 5875c3df2..b1793b362 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -26,7 +26,7 @@ jobs: - { os: rockylinux, tag: 8, arch: rhel, arch_ver: 8 } - { os: rockylinux, tag: 9, arch: rhel, arch_ver: 9 } - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 } - - { os: oraclelinux, tag: 8, arch: rhel, arch_ver: 8 } + - { os: oraclelinux, tag: 9, arch: rhel, arch_ver: 9 } python: [3] #-------- Defaults -------------------------- @@ -123,10 +123,14 @@ jobs: dnf config-manager --set-enabled crb dnf install -y gtest-devel gmock-devel #-------- OS and Version Specific Dependencies ---------------- - - cfg: { os: oraclelinux } + - cfg: { os: oraclelinux, tag: 8 } install_gtest: | dnf config-manager --enable ol8_codeready_builder dnf install -y gtest-devel gmock-devel + - cfg: { os: oraclelinux, tag: 9 } + install_gtest: | + dnf config-manager --enable ol9_codeready_builder + dnf install -y gtest-devel gmock-devel #-------- Job definition ---------------- runs-on: ubuntu-latest container: docker://${{matrix.cfg.os}}:${{matrix.cfg.tag}} From 19f5d4be140848c6ab511c3df218e047102af5c8 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:00:28 -0800 Subject: [PATCH 3/8] Remove python 2 dependency since only python3 is being tested --- .github/workflows/test_linux.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index b1793b362..981fee330 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -94,7 +94,6 @@ jobs: udunits2-devel which zlib-devel - python2-devel python3-devel #-------- RHEL 8-based Only Dependencies ---------------- - cfg: { arch: rhel, arch_ver: 8 } From 0493493fc4a5fc2af6ba56fc6365b88036766e40 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:04:32 -0800 Subject: [PATCH 4/8] Fixed `swig` installation for RHEL 9: - Removed `swig` from `tag_deps` (which tried to install it with other packages) - Added `swig` installation to the `conf_pkg` step after enabling the CRB repository - This ensures the CRB repository is enabled before attempting to install `swig` --- .github/workflows/test_linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 981fee330..e21ec7990 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -112,14 +112,14 @@ jobs: - cfg: { arch: rhel, arch_ver: 9 } 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 --set-enabled crb + dnf install -y swig + install_gtest: | dnf install -y gtest-devel gmock-devel #-------- OS and Version Specific Dependencies ---------------- - cfg: { os: oraclelinux, tag: 8 } From db98959cbe6ade7f730892f1a9db4a9d24e1c684 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:41:00 -0800 Subject: [PATCH 5/8] Fix test_linux.yml: Separate Rocky and Oracle Linux specific configs Separated RHEL-based matrix configurations to prevent Rocky-specific commands from running on Oracle Linux and vice versa. Common RHEL dependencies remain shared while install_gtest commands are now distribution-specific (powertools for Rocky, codeready_builder for Oracle). --- .github/workflows/test_linux.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index e21ec7990..24bab9c56 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -95,7 +95,7 @@ jobs: which zlib-devel python3-devel -#-------- RHEL 8-based Only Dependencies ---------------- +#-------- RHEL-based Common Dependencies ---------------- - cfg: { arch: rhel, arch_ver: 8 } pkg_mgr: dnf tag_deps: >- @@ -105,10 +105,6 @@ jobs: 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 gmock-devel -#-------- RHEL 9-based Only Dependencies ---------------- - cfg: { arch: rhel, arch_ver: 9 } pkg_mgr: dnf tag_deps: >- @@ -119,9 +115,15 @@ jobs: dnf install -y 'dnf-command(config-manager)' dnf config-manager --set-enabled crb dnf install -y swig +#-------- Rocky Linux Specific Dependencies ---------------- + - cfg: { os: rockylinux, tag: 8 } + install_gtest: | + dnf config-manager --enable powertools + dnf install -y gtest-devel gmock-devel + - cfg: { os: rockylinux, tag: 9 } install_gtest: | dnf install -y gtest-devel gmock-devel -#-------- OS and Version Specific Dependencies ---------------- +#-------- Oracle Linux Specific Dependencies ---------------- - cfg: { os: oraclelinux, tag: 8 } install_gtest: | dnf config-manager --enable ol8_codeready_builder From 279e08934152953d2f6274fde49b282d153055f4 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:48:48 -0800 Subject: [PATCH 6/8] Fix Oracle Linux 9 CI: Move crb repo config to Rocky Linux specific Oracle Linux 9 doesn't have a 'crb' repository - it uses 'ol9_codeready_builder'. Moved the crb enablement from generic RHEL 9 config to Rocky Linux 9 specific config to prevent "No matching repo to modify: crb" error. --- .github/workflows/test_linux.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 24bab9c56..0421f3e98 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -113,14 +113,17 @@ jobs: dnf -y install epel-release dnf -y update dnf install -y 'dnf-command(config-manager)' - dnf config-manager --set-enabled crb - dnf install -y swig #-------- Rocky Linux Specific Dependencies ---------------- - cfg: { os: rockylinux, tag: 8 } install_gtest: | dnf config-manager --enable powertools dnf install -y gtest-devel gmock-devel - cfg: { os: rockylinux, tag: 9 } + tag_deps: >- + swig + conf_pkg: | + dnf config-manager --set-enabled crb + dnf install -y swig install_gtest: | dnf install -y gtest-devel gmock-devel #-------- Oracle Linux Specific Dependencies ---------------- From 259e52893e348ba6447060f406498b9d9664ef70 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:57:19 -0800 Subject: [PATCH 7/8] ci: fix Rocky Linux 9 package installation and Oracle Linux 9 deps - Install epel-release and update repos before enabling CRB on Rocky 9 - Add dnf-command(config-manager) plugin installation for Rocky 9 - Move swig from conf_pkg to tag_deps for Rocky 9 to ensure proper ordering - Add missing swig dependency to Oracle Linux 9 configuration These changes ensure package repositories are properly configured before attempting to enable additional repos and install dependencies, fixing build failures on Rocky Linux 9 and Oracle Linux 9 environments. --- .github/workflows/test_linux.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 0421f3e98..79d8e59ac 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -122,8 +122,10 @@ jobs: tag_deps: >- swig conf_pkg: | + dnf -y install epel-release + dnf -y update + dnf install -y 'dnf-command(config-manager)' dnf config-manager --set-enabled crb - dnf install -y swig install_gtest: | dnf install -y gtest-devel gmock-devel #-------- Oracle Linux Specific Dependencies ---------------- @@ -132,6 +134,8 @@ jobs: dnf config-manager --enable ol8_codeready_builder dnf install -y gtest-devel gmock-devel - cfg: { os: oraclelinux, tag: 9 } + tag_deps: >- + swig install_gtest: | dnf config-manager --enable ol9_codeready_builder dnf install -y gtest-devel gmock-devel From 694690ee65e59c8848adfa30ef4ec701315be758 Mon Sep 17 00:00:00 2001 From: simtheverse <110426028+simtheverse@users.noreply.github.com> Date: Wed, 10 Dec 2025 12:24:46 -0800 Subject: [PATCH 8/8] feat(ci): add EPEL and config-manager setup for OracleLinux 9 Add prerequisite steps to enable EPEL repository and install dnf config-manager before enabling ol9_codeready_builder repository. This ensures the required tools are available before attempting to configure additional repositories and install gtest dependencies on OracleLinux 9. Changes: - Install epel-release package - Update dnf package database - Install dnf-command(config-manager) plugin - Reorganize steps into conf_pkg and install_gtest sections --- .github/workflows/test_linux.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml index 79d8e59ac..791b07a68 100644 --- a/.github/workflows/test_linux.yml +++ b/.github/workflows/test_linux.yml @@ -136,8 +136,12 @@ jobs: - cfg: { os: oraclelinux, tag: 9 } tag_deps: >- swig - install_gtest: | + conf_pkg: | + dnf -y install epel-release + dnf -y update + dnf install -y 'dnf-command(config-manager)' dnf config-manager --enable ol9_codeready_builder + install_gtest: | dnf install -y gtest-devel gmock-devel #-------- Job definition ---------------- runs-on: ubuntu-latest