Skip to content

Bump version to v8.0.4 #50

Bump version to v8.0.4

Bump version to v8.0.4 #50

Workflow file for this run

name: Build
# Build + package (cpack) on each platform, uploaded as workflow
# artifacts. This does NOT install or run the GUI apps -- that needs a
# display (Xvfb) and per-user service setup (see GETTING_STARTED.md), a
# lot more complexity than a build-and-package health check warrants.
# Packaging itself needs neither: cpack just archives already-built
# binaries, no display involved. The goal is early, continuous signal on
# "does this even compile (and package) here", especially for platforms
# nobody is routinely building on locally.
#
# RPM packages built here are real .rpm artifacts, but incomplete ones --
# CPACK_RPM_PACKAGE_REQUIRES (the RPM equivalent of the existing
# CPACK_DEBIAN_PACKAGE_DEPENDS) isn't set yet, so the package won't
# auto-pull its runtime deps (apache2 equivalent, activemq, wx python
# bindings, ...) the way the .deb does. Worth fixing before treating
# these as real release artifacts, not before treating them as "does
# cpack's RPM generator work at all here" signal.
#
# Target platforms and why:
# - Debian: what the primary maintainer actually develops on.
# - Ubuntu: most popular desktop/CI Linux distro.
# - RHEL family: what a lot of institutional/cluster environments run.
# GitHub Actions has no real RHEL runner (needs a subscription), so
# this uses Rocky Linux -- a bug-for-bug free rebuild of RHEL from
# the same sources, the standard stand-in for "does this work on
# RHEL" in CI that doesn't have a Red Hat subscription to spend.
# - WSL2: NOT a separate job. WSL2 runs a real Linux kernel with a real
# distro userland (Ubuntu by default) on top of it -- there's no
# separate "WSL2 build" to test, the Ubuntu/Debian jobs below already
# cover it directly. The one WSL2-relevant wrinkle, filename
# case-collisions (#40), is actually a non-issue for WSL2 specifically
# (its ext4-backed filesystem is case-sensitive like any other Linux
# disk) -- it only bites on a native-Windows checkout or a default
# case-insensitive macOS volume.
# - macOS: tracks GitHub #3 (currently expected to fail -- see the job
# below for why).
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch: {}
jobs:
debian:
name: Debian (apt, containerized)
runs-on: ubuntu-latest
container: debian:trixie
steps:
- name: Install build dependencies
run: |
apt-get update
apt-get install -y \
build-essential gfortran cmake ninja-build \
libwxgtk3.2-dev libxerces-c-dev libgl-dev libglu1-mesa-dev \
libgtk-3-dev libx11-dev libice-dev libxt-dev libjpeg-dev \
default-jdk ant git dpkg-dev file
- uses: actions/checkout@v4
- name: Configure
run: cmake -G Ninja -B build-cmake
- name: Build
run: cmake --build build-cmake
- name: Package
working-directory: build-cmake
run: cpack -G DEB
- uses: actions/upload-artifact@v4
with:
name: ecce-debian-trixie-deb
path: build-cmake/*.deb
ubuntu:
name: Ubuntu (apt)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential gfortran cmake ninja-build \
libwxgtk3.2-dev libxerces-c-dev libgl-dev libglu1-mesa-dev \
libgtk-3-dev libx11-dev libice-dev libxt-dev libjpeg-dev \
default-jdk ant git dpkg-dev
- name: Configure
run: cmake -G Ninja -B build-cmake
- name: Build
run: cmake --build build-cmake
- name: Package
working-directory: build-cmake
run: cpack -G DEB
- uses: actions/upload-artifact@v4
with:
name: ecce-ubuntu-latest-deb
path: build-cmake/*.deb
rocky:
name: Rocky Linux (dnf, RHEL family, containerized)
runs-on: ubuntu-latest
container: rockylinux:9
steps:
- name: Install build dependencies
run: |
dnf install -y epel-release 'dnf-command(config-manager)'
# ninja-build and a few -devel packages live in the CodeReady
# Builder repo, not EPEL itself -- EPEL's own release package
# prints a reminder about this ("Many EPEL packages require the
# CRB repository... /usr/bin/crb enable") but doesn't enable it
# automatically.
dnf config-manager --set-enabled crb
dnf install -y \
gcc gcc-c++ gcc-gfortran make cmake ninja-build git rpm-build \
wxGTK-devel xerces-c-devel \
mesa-libGL-devel mesa-libGLU-devel \
gtk3-devel libX11-devel libICE-devel libXt-devel libjpeg-turbo-devel \
java-latest-openjdk-devel ant
# actions/checkout doesn't work reliably inside an arbitrary
# container image (no git-installed-as-a-prereq guarantee, and the
# container user often isn't the checkout action's expected uid) --
# install git above first, then check out manually instead.
- name: Check out source
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git clone --depth 1 --branch "${GITHUB_REF_NAME}" \
"https://github.com/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE" \
|| git clone --depth 1 "https://github.com/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE"
- name: Configure
working-directory: ${{ github.workspace }}
run: cmake -G Ninja -B build-cmake
- name: Build
working-directory: ${{ github.workspace }}
run: cmake --build build-cmake
- name: Package
working-directory: ${{ github.workspace }}/build-cmake
run: cpack -G RPM
- uses: actions/upload-artifact@v4
with:
name: ecce-rockylinux9-rpm
path: build-cmake/*.rpm
fedora:
name: Fedora (dnf, containerized)
runs-on: ubuntu-latest
container: fedora:latest
steps:
- name: Install build dependencies
run: |
dnf install -y \
gcc gcc-c++ gcc-gfortran make cmake ninja-build git rpm-build \
wxGTK-devel xerces-c-devel \
mesa-libGL-devel mesa-libGLU-devel \
gtk3-devel libX11-devel libICE-devel libXt-devel libjpeg-turbo-devel \
java-latest-openjdk-devel ant
- name: Check out source
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git clone --depth 1 --branch "${GITHUB_REF_NAME}" \
"https://github.com/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE" \
|| git clone --depth 1 "https://github.com/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE"
- name: Configure
working-directory: ${{ github.workspace }}
run: cmake -G Ninja -B build-cmake
- name: Build
working-directory: ${{ github.workspace }}
run: cmake --build build-cmake
- name: Package
working-directory: ${{ github.workspace }}/build-cmake
run: cpack -G RPM
- uses: actions/upload-artifact@v4
with:
name: ecce-fedora-latest-rpm
path: build-cmake/*.rpm
macos:
name: macOS (Homebrew)
runs-on: macos-latest
# Known-unsupported today (GitHub #3) -- ECCE's offscreen-rendering
# path (src/inv/dbso/SoOffscreenRenderer.inc) calls raw Xlib/GLX
# (XOpenDisplay/glXCreateContext), which has no macOS-native
# equivalent (Cocoa/NSOpenGL, or GLX only via XQuartz). This job is
# here to track the gap with a real, current compile log instead of
# nothing -- it's expected to fail until #3 gets real porting work,
# not a sign the workflow itself is broken.
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: |
brew install cmake ninja wxwidgets xerces-c ant gcc
# src/comm/commxt/JobStore.C calls raw X Toolkit Intrinsics
# (XtAppAddSignal etc.) directly -- macOS has no native
# equivalent and doesn't ship X11 at all by default. XQuartz
# is the standard way to get real X11/Xt headers+libs on macOS.
brew install --cask xquartz
- name: Configure
run: cmake -G Ninja -B build-cmake -DCMAKE_PREFIX_PATH=/opt/X11
- name: Build
run: cmake --build build-cmake