# alessandrosegato-jpg/awx-jenkins-exercise architecture

> Architecture diagram of the GitHub repository alessandrosegato-jpg/awx-jenkins-exercise, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/alessandrosegato-jpg/awx-jenkins-exercise
- Repository: https://github.com/alessandrosegato-jpg/awx-jenkins-exercise

## Overview

AWX fetches a Java source file from a VM, retains it in job artifacts, and sends a success webhook to Jenkins. Jenkins then retrieves the artifact through the AWX API, archives the file, and compiles it. The graph follows the README; no source excerpts were available, so implementation detail beyond the documented workflow is omitted.

Main entry points: [`playbooks/fetch_source.yaml`](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/playbooks/fetch_source.yaml) (AWX job), [`Jenkinsfile`](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile) (Jenkins pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_awx["AWX source retrieval"]
  node_awx_job["AWX job<br/>[fetch_source.yaml]"]
  node_vm["Source VM"]
  node_java_source["Java source"]
end

subgraph group_handoff["Artifact handoff"]
  node_awx_artifacts[("AWX job artifacts")]
  node_webhook["Success webhook"]
  node_awx_api["AWX artifacts API"]
end

subgraph group_jenkins["Jenkins build"]
  node_jenkins_job["Jenkins pipeline"]
  node_archived_file["Archived Example.java"]
  node_compiled_output["Java compilation"]
end

node_operator(("Operator"))

node_operator -->|"launches"| node_awx_job
node_awx_job -->|"reads via SSH"| node_vm
node_vm -->|"provides"| node_java_source
node_awx_job -->|"saves source"| node_awx_artifacts
node_awx_job -->|"notifies on success"| node_webhook
node_webhook -->|"triggers"| node_jenkins_job
node_jenkins_job -->|"requests artifact"| node_awx_api
node_awx_api -->|"reads"| node_awx_artifacts
node_jenkins_job -->|"archives"| node_archived_file
node_jenkins_job -->|"compiles"| node_compiled_output

click node_awx_job "https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/playbooks/fetch_source.yaml"
click node_jenkins_job "https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile"
click node_archived_file "https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile"
click node_compiled_output "https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_awx_job,node_vm,node_java_source toneBlue
class node_awx_artifacts,node_webhook,node_awx_api toneAmber
class node_jenkins_job,node_archived_file,node_compiled_output toneMint
class node_operator toneIndigo
```

## Components

### AWX source retrieval

- [AWX job](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/playbooks/fetch_source.yaml): `playbooks/fetch_source.yaml`
- **Source VM**
- **Java source**

### Artifact handoff

- **AWX job artifacts**
- **Success webhook**
- **AWX artifacts API**

### Jenkins build

- [Jenkins pipeline](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile): `Jenkinsfile`
- [Archived Example.java](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile): `Jenkinsfile`
- [Java compilation](https://github.com/alessandrosegato-jpg/awx-jenkins-exercise/blob/main/Jenkinsfile): `Jenkinsfile`

### Other components

- **Operator**

## Connections

- Operator → AWX job: launches (evidence: `README.md`)
- AWX job → Source VM: reads via SSH (evidence: `README.md`)
- Source VM → Java source: provides (evidence: `README.md`)
- AWX job → AWX job artifacts: saves source (evidence: `README.md`)
- AWX job → Success webhook: notifies on success (evidence: `README.md`)
- Success webhook → Jenkins pipeline: triggers (evidence: `README.md`)
- Jenkins pipeline → AWX artifacts API: requests artifact (evidence: `README.md`)
- AWX artifacts API → AWX job artifacts: reads (evidence: `README.md`)
- Jenkins pipeline → Archived Example.java: archives (evidence: `README.md`)
- Jenkins pipeline → Java compilation: compiles (evidence: `README.md`)
