Skip to content

Agent Release

The primary Agent release procedure and checklist are stored in Confluence: https://fastly.atlassian.net/l/c/ufYjAMm7 This flowchart visually documents the release workflow and should be considered a supplement to the primary documentation in Confluence.

Green boxes indicate steps that can be prepared in parallel or out of order.

flowchart LR

CorePrep[Prep <code>sigsci-agent-core</code> changes]:::parallel
CorePR[<code>sigsci-agent-core</code> Pull Request]:::parallel

ReleaseCore[Create <code>sigsci-agent-core</code><br> GitHub Release + Tag]

AgentPrep[Prep <code>sigsci-agent</code> changes]:::parallel
VendorCore[Vendor <code>sigsci-agent-core</code>]
AgentPR[Pull Request]
AgentMerge[Merge Pull Request]
ReleaseAgent[Create <code>sigsci-agent</code><br> GitHub release + Tag]

SigsciVendor[Vendor <code>sigsci-agent</code>]
SigsciPR[Pull Request]
SigsciTeamwork[/Might need to coordinate<br> simultaneous PR changes for<br> rules tests in some cases/]
SigsciDeploy[Merge + Deploy sigsci Repo]
Voltron[Release Agent in Voltron]
Monitor[Monitor dashboards and metrics for issues]

subgraph detail[<b>sigsci-agent Repo Detailed Steps</b>]
    direction TB

    D1[Update VERSION]:::parallel
    D2[Update README]:::parallel
    D3[Upgrade GeoIP]:::parallel
    D4[Verify with other teams]:::parallel
    D5[Update TLS Certs]:::parallel
    DVendor[Vendor <code>sigsci-agent-core</code>]
    DUpdateReadme[Update README with any External<br> entries from <code>sigsci-agent-core</code>]
    DRulelang[Update rulelang docs]
    DUpdateBOM["Update Bill of Materials (BOM)"]
    DTest[Run <code>make build</code><br> and <code>make test</code><br> and <code>make test-sanity</code>]
    DSmoke[Launch the agent and<br> verify it runs as expected]
    DIntegration[Run <code>sigsci</code> Integration Test]
    DPR[Create Pull Request]
    DMerge[Merge Pull Request]
    DRelease[Create <code>sigsci-agent</code><br> GitHub release + Tag]

    D1 & D2 & D3 & D4 & D5 --> DVendor
    DVendor --> DUpdateReadme --> DRulelang --> DUpdateBOM --> DTest --> DSmoke--> DIntegration --> DPR --> DMerge --> DRelease
end

subgraph general[<b>General Release Flow</b>]
    direction TB

    subgraph core[<b>sigsci-agent-core Repo</b>]
        direction TB
        CorePrep --> CorePR --> ReleaseCore
    end

    subgraph agent[<b>sigsci-agent Repo</b>]
        direction TB
        AgentPrep --> VendorCore --> AgentPR --> AgentMerge --> ReleaseAgent
    end
    core --> VendorCore

    subgraph sigsci[<b>sigsci Repo</b>]
        direction TB
        SigsciVendor --> SigsciPR --> SigsciTeamwork--> SigsciDeploy

    end
    agent --> sigsci


    subgraph voltron[<b>Voltron Release</b>]
        direction TB
        Voltron --> Monitor
    end 

    sigsci --> voltron
end

style general fill:white,stroke:#000;
classDef parallel fill:#BFC;