Skip to content

omnetpp/opp_ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

178 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opp_ci

Continuous integration and testing service for OMNeT++ simulation projects (OMNeT++ is a discrete-event network simulator). Tests any project in the opp_env catalog — OMNeT++, INET, Simu5G, Veins, and 60+ others — across version, platform, and feature matrices.

The three-tool stack

opp_ci is the orchestration layer of a three-tool stack. The boundary is strict: opp_ci never duplicates test logic, and opp_repl never owns the environment.

Tool Role
opp_env Installs and manages versions of simulation projects in isolated Nix environments. Provides the project catalog, version list, and dependency graph.
opp_repl Runs the tests (smoke, fingerprint, statistical, feature, …) inside the environment set up by opp_env.
opp_ci The orchestrator: expands test matrices, schedules jobs, invokes opp_env and opp_repl, stores results, integrates with GitHub. No test logic of its own.

See Concepts for the full vocabulary and how the pieces connect.

Why opp_ci over per-project GitHub Actions

Historically each project (omnetpp, inet, simu5g, …) ran its own hand-rolled GitHub Actions workflows, which couple to fixed dependency versions, duplicate environment setup, can't easily test cross-version combinations, and don't preserve history. opp_ci decouples versions via matrix configs, reuses one opp_env build across multiple tests, stores every run in Postgres for trend/regression queries, and supports self-hosted workers (needed for speed tests with hardware perf counters). See the full comparison.

Key Features

  • Multi-project testing — any project supported by opp_env
  • Version matrices — test across multiple OMNeT++/INET/model versions with automatic dependency resolution
  • Platform matrices — OS, compiler type/version, build mode (debug/release)
  • Reproducible buildsopp_env provides isolated Nix environments
  • Test execution — delegates to opp_repl for smoke, fingerprint, statistical, feature, and other tests
  • Result storage — PostgreSQL database for structured querying and historical tracking
  • GitHub integration — webhook-driven testing on push/PR, status checks
  • Web dashboard — browse results, start tests, compare runs
  • Remote workers — distributed execution on self-hosted or cloud machines

Related Projects

  • opp_env — reproducible OMNeT++ environment management via Nix
  • opp_repl — interactive Python REPL for running and testing OMNeT++ simulations

Documentation

Start here:

Day-to-day:

Reference (deep dive):

For developers:

License

LGPL-3.0-or-later

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors