Skip to content

CI / Jenkins → Next (discovery, decision, migration) #447

Description

@ofahimIQSS
  • Understand Jenkins infrastructures and all the areas it currently supports, document all requirements.
  • Identify a modernization plan to implement - (Switch to new platform vs Upgrading)
  • Present propsal during tech hours (powerpoint with pros and cons of each tool)

Project Summary

We’re modernizing CI for the Dataverse stack (Java WAR on Payara, backed by PostgreSQL, Solr, and S3-compatible storage like MinIO). Today, Jenkins runs our end-to-end pipeline: builds the WAR, spins an integration environment, executes unit + integration tests, and generates JaCoCo coverage across both. We want feature parity (or better), lower ops overhead, and clear PR feedback while keeping costs sane.

What Jenkins Currently Provides (must keep)

Coverage via JaCoCo (WAR/JVM instrumentation)
Attach -javaagent (or offline instrumentation) so code executed inside Payara is covered.
Produce .exec files for unit + integration runs.
Integration Test Suite (full stack)
Boot ephemeral Payara + Postgres + Solr + MinIO; seed data; run Failsafe/UI smoke; capture logs and JUnit XML.
Deterministic startup (health checks), idempotent fixtures, and stable teardown.
Coverage Merge + Reporting
Merge unit + integration .exec; publish one authoritative HTML + XML report.
Enforce thresholds/gates and expose trends.

Non-negotiable Requirements (tool-agnostic)

Runners & Containers: Support Docker/Compose with writable volumes for coverage and logs; JDK 17.
Parity Profiles: -Pcoverage, -Pintegration, (optional -Pui-smoke) runnable locally and in CI.
Artifacts: JUnit XML, Payara server.log, coverage HTML/XML, merged .exec—retained ≥30 days.
Gates & PR UX: Status checks, diff coverage/annotations, and fail-the-build thresholds.
Security: Proper secrets handling (no long-lived keys); auditability for who can rerun jobs.
Performance: Unit ≤ ~5 min, integration ≤ ~25 min (or sharded), reproducible timings.

Options on the Table

All-in GitHub Actions (self-hosted runner): One platform for PR checks, builds, coverage, and artifacts. Lowest ongoing ops after runner hardening; Actions minutes on self-hosted are $0 (you pay the VM).

Hybrid (GHA for PR/build, Jenkins for heavy integration): Smoothest transition; two systems in play.

Jenkins Upgrade: Minimal change risk; keep everything, modernize with pipeline-as-code and containerized agents.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions