Skip to content

CI: Align workflow with configure.ac (recursive submodules, v2 Linux job, drop x32)#3504

Open
Easton97-Jens wants to merge 10 commits intoowasp-modsecurity:v3/masterfrom
Easton97-Jens:v3/master_update_workflows
Open

CI: Align workflow with configure.ac (recursive submodules, v2 Linux job, drop x32)#3504
Easton97-Jens wants to merge 10 commits intoowasp-modsecurity:v3/masterfrom
Easton97-Jens:v3/master_update_workflows

Conversation

@Easton97-Jens
Copy link

Summary

This PR introduces a new separate CI workflow (ci_new.yml).
The existing workflow remains unchanged.

The primary goal is to align CI behavior with the expectations defined in configure.ac, while modernizing the Linux environment and simplifying architecture handling.


  1. Alignment with configure.ac

The build system assumes that required components provided via git submodules are fully and recursively initialized.

configure.ac explicitly documents this expectation (e.g., requiring recursive submodule initialization for bundled modules).

To ensure CI matches this requirement, the new workflow:

Upgrades actions/checkout from v4 to v6

Explicitly runs:

git submodule update --init --recursive

This guarantees:

Deterministic submodule state

Full availability of bundled modules

Consistency with configure.ac

Reduced risk for upcoming submodule updates (including the pending Mbed TLS update PR)

This is the primary structural change introduced by this workflow.


  1. Integration of v2 Linux Static Analysis Flow

The workflow adds a dedicated Linux cppcheck job using a debian:sid container.

This structure is derived from the previous v2 CI logic and restores Linux-based static analysis in addition to the macOS job.

Benefits:

Closer alignment with the Linux target environment

Broader static analysis coverage

Continuity with earlier CI design


  1. Removal of x32 (i386)

The new workflow drops 32-bit (x32/i386) builds:

Ubuntu upgraded from 22.04 to 24.04

Ubuntu 24.04 no longer provides native i386 runner support

Removes multilib setup and architecture-specific dependency branches

Simplifies the matrix and dependency logic

This reduces CI complexity and aligns the build matrix with current runner support.


Additional Updates

macOS 14 → macOS 15

Windows 2022 → Windows 2025

Minor matrix cleanup and clearer job structure


Rationale for Separate Workflow

The existing workflow is intentionally preserved to:

Avoid disrupting the current CI baseline

Allow isolated validation of structural changes

Enable safe comparison before potential consolidation

Reduce migration risk


@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant