Refactor workflow distros and workflow python matrix (#1400) (#1401)

closes #1400
This commit is contained in:
Scott Fennell 2022-11-21 15:25:08 -06:00 committed by GitHub
parent 1b394e9386
commit 8611d7c40e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 344 additions and 45 deletions

168
.github/workflows/alt_linux_distros.yml vendored Normal file
View File

@ -0,0 +1,168 @@
name: More Linux
on:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
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: 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
python2.7-dev
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
#-------- 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}}
- name: Install GTest
run: ${{matrix.install_gtest}}
- name: Checkout repository
uses: actions/checkout@master
- 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 test
- 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
# Uncomment for build artifacts
# - name: Upload Trick Build
# uses: actions/upload-artifact@v3.0.0
# with:
# name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}}
# path: |
# bin
# include
# lib
# share
# libexec
# retention-days: 1

View File

@ -1,14 +1,9 @@
name: 32-bit
on:
push:
branches:
- master
paths-ignore:
- 'docs/**'
- '.github/workflows/**'
- '!.github/workflows/test_32.yml'
pull_request:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
trick_32bit:

View File

@ -1,14 +1,9 @@
name: 32-bit Oracle
on:
push:
branches:
- master
paths-ignore:
- 'docs/**'
- '.github/workflows/**'
- '!.github/workflows/test_32_oracle.yml'
pull_request:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
trick_32bit_oracle:

View File

@ -18,17 +18,11 @@ jobs:
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: ubuntu, tag: 22.04, arch: debian, arch_ver: 12 }
- { 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: 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]
python: [3]
#-------- Defaults --------------------------
include:
@ -120,20 +114,6 @@ jobs:
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
#-------- OS and Version Specific Dependencies ----------------
- cfg: { os: oraclelinux }
install_gtest: |

166
.github/workflows/test_linux_py2.yml vendored Normal file
View File

@ -0,0 +1,166 @@
name: 'Linux Python 2'
on:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
cfg:
#-------- Operating Systems ----------------
- { os: ubuntu, tag: 22.04, arch: debian, arch_ver: 12 }
- { 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 }
python: [2]
#-------- 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
python2.7-dev
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 7-based Only Dependencies ----------------
- cfg: { arch: rhel, arch_ver: 7 }
pkg_mgr: yum
conf_pkg: |
yum -y install epel-release
yum -y update
os_deps: >-
libX11-devel
libXt-devel
swig3
gtest-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
#-------- OS and Version Specific Dependencies ----------------
- cfg: { os: oraclelinux }
install_gtest: |
dnf config-manager --enable ol8_codeready_builder
dnf install -y gtest-devel
#-------- 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}}
- name: Install GTest
run: ${{matrix.install_gtest}}
- name: Checkout repository
uses: actions/checkout@master
- 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 test
- 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
# Uncomment for build artifacts
# - name: Upload Trick Build
# uses: actions/upload-artifact@v3.0.0
# with:
# name: Trick_${{matrix.cfg.os}}${{matrix.cfg.tag}}_py${{matrix.python}}
# path: |
# bin
# include
# lib
# share
# libexec
# retention-days: 1

View File

@ -1,14 +1,9 @@
name: TrickOps
# This workflow is triggered on pushes to the repository.
on:
push:
branches:
- master
paths-ignore:
- 'docs/**'
- '.github/workflows/**'
- '!.github/workflows/trickops.yml'
pull_request:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
defaults:
run: