Skip to content

fix(cicd): Clean cicd, rework depends and add pre-release#570

Merged
aeppling merged 9 commits intodevelopfrom
fix/cicd-rework
Mar 15, 2026
Merged

fix(cicd): Clean cicd, rework depends and add pre-release#570
aeppling merged 9 commits intodevelopfrom
fix/cicd-rework

Conversation

@aeppling
Copy link
Copy Markdown
Contributor

  • Cleaned all files for a more reusable cicd
  • Added pre-release on develop
  • Added jobs dependencies to gain time (avoid running all if mandatory fail)
  • Add CICD.md documentation

CI/CD Flows

PR Quality Gates (ci.yml)

Trigger: pull_request to develop or master

                          ┌──────────────────┐
                          │    PR opened      │
                          └────────┬─────────┘
                                   │
                          ┌────────▼─────────┐
                          │       fmt         │
                          └────────┬─────────┘
                                   │
                          ┌────────▼─────────┐
                          │     clippy        │
                          └──┬───┬───┬───┬───┘
                             │   │   │   │
              ┌──────────────┘   │   │   └──────────────┐
              │          ┌───────┘   └───────┐          │
              ▼          ▼                   ▼          ▼
     ┌──────────────┐ ┌──────────────┐ ┌───────────┐ ┌──────────┐
     │ test         │ │Security Scan │ │ benchmark │ │ validate │
     │ ubuntu       │ │ cargo audit  │ │ >=80%     │ │ docs     │
     │ windows      │ │ (blocking)   │ │ savings   │ │ hooks    │
     │ macos        │ │              │ │           │ │ modules  │
     └──────┬───────┘ └──────┬───────┘ └─────┬─────┘ └────┬─────┘
            │                │               │             │
            └────────────────┴───────┬───────┴─────────────┘
                                     │
                          ┌──────────▼─────────┐
                          │  All must pass     │
                          │  to merge          │
                          └────────────────────┘
     + DCO check (independent, develop PRs only)

Merge to develop — pre-release (cd.yml)

Trigger: push to develop | Concurrency: cancel-in-progress

     ┌──────────────────┐
     │ push to develop   │
     └────────┬─────────┘
              │
     ┌────────▼──────────────────┐
     │ pre-release                │
     │ read Cargo.toml version   │
     │ tag = v{ver}-rc.{run}     │
     │ safety: fail if exists    │
     └────────┬──────────────────┘
              │
     ┌────────▼──────────────────┐
     │ release.yml               │
     │ prerelease = true         │
     └────────┬──────────────────┘
              │
     ┌────────▼──────────────────┐
     │ Build                     │
     │ 5 platforms + DEB + RPM   │
     └────────┬──────────────────┘
              │
     ┌────────▼──────────────────┐
     │ GitHub Release            │
     │ (pre-release badge)       │
     │                           │
     │ Discord:  SKIPPED         │
     │ Homebrew: SKIPPED         │
     └──────────────────────────┘

Merge to master — stable release (cd.yml)

Trigger: push to master | Concurrency: never cancelled

     ┌──────────────────┐
     │ push to master    │
     └────────┬─────────┘
              │
     ┌────────▼──────────────────┐
     │ release-please            │
     │ analyze conventional      │
     │ commits                   │
     └────────┬──────────────────┘
              │
         ┌────┴────────────────┐
         │                     │
    no release           release created
         │                     │
         ▼                     ▼
  ┌──────────────┐    ┌───────────────────────┐
  │ create/update│    │ release.yml            │
  │ release PR   │    │ prerelease = false     │
  └──────────────┘    └───────────┬───────────┘
                                  │
                     ┌────────────▼────────────┐
                     │ Build                   │
                     │ 5 platforms + DEB + RPM  │
                     └────────────┬────────────┘
                                  │
                     ┌────────────▼────────────┐
                     │ GitHub Release           │
                     │ (stable, "Latest" badge) │
                     └──┬─────────┬─────────┬──┘
                        │         │         │
                        ▼         ▼         ▼
                    Discord   Homebrew   latest
                    notify    tap update  tag

Manual release (release.yml)

Trigger: workflow_dispatch

     ┌────────────────────────┐
     │ workflow_dispatch       │
     │ inputs: tag, prerelease │
     └───────────┬────────────┘
                 │
     ┌───────────▼────────────┐
     │ Full build pipeline     │
     │ 5 platforms + DEB + RPM │
     └───────────┬────────────┘
                 │
          ┌──────┴──────┐
          │             │
   prerelease=false  prerelease=true
          │             │
          ▼             ▼
     Discord        pre-release
     Homebrew       badge only
     latest tag

- Cleaned all files for a more reusable cicd
- Added pre-release on develop
- Added jobs dependencies to gain time (avoid running all if mandatory fail)
- Add CICD.md documentation
@aeppling
Copy link
Copy Markdown
Contributor Author

To be done before merging

We need a better "validate" documentation pipeline, need to review this one and fix it.

Use ai agent with correct context to ensure this automatically ?

@aeppling
Copy link
Copy Markdown
Contributor Author

Recap':

  • Rework of all cicd flow, re-using some component for building and release
  • Add pre-release stage
  • Add 3 platforms testing
  • Removed shady doc testing for a ai agent reviewer (using for now my own API key with 10$ limit / month)
  • Added CONTRIBUTING.md guidelines about PRs scope and big feat or refacto split
  • Fixed failing windows test for git and binlog commands support
  • Added documentation for CICD flow

…fix/cicd-rework

Signed-off-by: aesoft <43991222+aeppling@users.noreply.github.com>
@aeppling aeppling merged commit d24a765 into develop Mar 15, 2026
8 of 9 checks passed
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