You can see here the sequence diagrams of the flow happening during the CI Jobs.
sequenceDiagram
Note over Airflow Repo: pull request
Note over Tests: pull_request<br>[Read Token]
Note over Build Images: pull_request_target<br>[Write Token]
activate Airflow Repo
Airflow Repo -->> Tests: Trigger 'pull_request'
activate Tests
Tests -->> Build Images: Trigger 'pull_request_target'
activate Build Images
Note over Build Images: Build info
par 3.6, [3.7, 3.8, 3.9]
activate GitHub Registry
GitHub Registry ->> Build Images: Pull CI Images from Cache
deactivate GitHub Registry
Note over Build Images: Build CI Images<br>[COMMIT_SHA]
end
par No CI image
Note over Tests: Build info<br>Which tests?<br>Which Python?
and
Note over Tests: OpenAPI client gen
and
Note over Tests: Test UI
and
Note over Tests: Test examples<br>PROD image building
end
par 3.6, [3.7, 3.8, 3.9]
activate GitHub Registry
Build Images ->> GitHub Registry: Push CI Images
Note over GitHub Registry: Tagged CI Images<br>[COMMIT_SHA]
end
par 3.6, [3.7, 3.8, 3.9]
GitHub Registry ->> Build Images: Pull PROD Images from Cache
Note over Build Images: Build PROD Images<br>[COMMIT_SHA]
end
loop Wait for CI images
par 3.6, [3.7, 3.8, 3.9]
Tests ->> Tests: Check CI Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, [3.7, 3.8, 3.9]
GitHub Registry ->> Tests: Pull CI Image
Note over Tests: Verify CI Image
end
deactivate GitHub Registry
par 3.6, [3.7, 3.8, 3.9]
opt Needed?
Note over Tests: Run static checks
end
and
opt Needed?
Note over Tests: Run basic <br>static checks
end
and
opt Needed?
Note over Tests: Build docs
end
and
opt Needed?
Note over Tests: Tests
end
and
opt Needed?
Note over Tests: Test provider <br>packages build
end
and
opt Needed?
Note over Tests: Helm tests
end
end
par 3.6, [3.7, 3.8, 3.9]
Build Images ->> GitHub Registry: Push PROD Images
activate GitHub Registry
end
deactivate Build Images
Note over GitHub Registry: Tagged PROD Images<br>[COMMIT_SHA]
loop Wait for PROD images
par 3.6, [3.7, 3.8, 3.9]
Tests ->> Tests: Check PROD Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, [3.7, 3.8, 3.9]
GitHub Registry ->> Tests: Pull PROD Image
Note over Tests: Verify PROD Image
end
deactivate GitHub Registry
par 3.6, [3.7, 3.8, 3.9]
opt Needed?
Note over Tests: Run Kubernetes <br>tests
end
and
opt Needed?
Note over Tests: Run Kubernetes <br>upgrade tests
end
end
Tests -->> Airflow Repo: Status update
deactivate Airflow Repo
deactivate Tests
sequenceDiagram
Note over Airflow Repo: merge
Note over Tests: push<br>[Write Token]
Note over Build Images: push<br>[Write Token]
activate Airflow Repo
Airflow Repo -->> Tests: Trigger 'push'
activate Tests
Airflow Repo -->> Build Images: Trigger 'push'
activate Build Images
Note over Build Images: Build info
par 3.6, 3.7, 3.8, 3.9
activate GitHub Registry
GitHub Registry ->> Build Images: Pull CI Images from Cache
deactivate GitHub Registry
Note over Build Images: Build CI Images<br>[COMMIT_SHA]
end
par No CI image
Note over Tests: Build info<br>All tests<br>All python
and
Note over Tests: OpenAPI client gen
and
Note over Tests: Test UI
and
Note over Tests: Test examples<br>PROD image building
end
par 3.6, 3.7, 3.8, 3.9
Build Images ->> GitHub Registry: Push CI Images
activate GitHub Registry
Note over GitHub Registry: Tagged CI Images<br>[COMMIT_SHA]
end
par 3.6, 3.7, 3.8, 3.9
GitHub Registry ->> Build Images: Pull PROD Images from Cache
Note over Build Images: Build PROD Images<br>[COMMIT_SHA]
end
loop Wait for CI images
par 3.6, 3.7, 3.8, 3.9
Tests ->> Tests: Check CI Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, 3.7, 3.8, 3.9
GitHub Registry ->> Tests: Pull CI Image [COMMIT_SHA]
Note over Tests: Verify CI Image
end
deactivate GitHub Registry
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Run static checks
and
Note over Tests: Build docs
and
Note over Tests: Tests
and
Note over Tests: Test provider <br>packages build
and
Note over Tests: Helm tests
end
par 3.6, 3.7, 3.8, 3.9
Build Images ->> GitHub Registry: Push PROD Images
Note over GitHub Registry: Tagged PROD Images<br>[COMMIT_SHA]
activate GitHub Registry
end
deactivate Build Images
loop Wait for PROD images
par 3.6, 3.7, 3.8, 3.9
Tests ->> Tests: Check PROD Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, 3.7, 3.8, 3.9
GitHub Registry ->> Tests: Pull PROD Image [COMMIT_SHA]
Note over Tests: Verify PROD Image
end
deactivate GitHub Registry
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Run Kubernetes <br>tests
and
Note over Tests: Run Kubernetes <br>upgrade tests
end
Note over Tests: Merge Coverage
Tests -->> Coverage.io: Upload Coverage
par 3.6, 3.7, 3.8, 3.9
Tests ->> GitHub Registry: Push CI Images to Cache
activate GitHub Registry
and
Tests ->> GitHub Registry: Push PROD Images to Cache
end
Note over GitHub Registry: Tagged Images<br>[latest]
deactivate GitHub Registry
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Generate constraints
Tests ->> Airflow Repo: Push constraints
end
Tests -->> Airflow Repo: Status update
deactivate Airflow Repo
deactivate Tests
sequenceDiagram
Note over Airflow Repo: scheduled
Note over Tests: schedule<br>[Write Token]
Note over Build Images: schedule<br>[Write Token]
activate Airflow Repo
Airflow Repo -->> Tests: Trigger 'schedule'
activate Tests
Airflow Repo -->> Build Images: Trigger 'schedule'
activate Build Images
Note over Build Images: Build info
par 3.6, 3.7, 3.8, 3.9
Note over Build Images: Build CI Images<br>Cache disabled<br>[COMMIT_SHA]
end
par No CI image
Note over Tests: Build info<br>All tests<br>All python
and
Note over Tests: OpenAPI client gen
and
Note over Tests: Test UI
and
Note over Tests: Test examples<br>PROD image building
end
par 3.6, 3.7, 3.8, 3.9
Build Images ->> GitHub Registry: Push CI Images
activate GitHub Registry
Note over GitHub Registry: Tagged CI Images<br>[COMMIT_SHA]
end
par 3.6, 3.7, 3.8, 3.9
Note over Build Images: Build PROD Images<br>Cache disabled<br>[COMMIT_SHA]
end
loop Wait for CI images
par 3.6, 3.7, 3.8, 3.9
Tests ->> Tests: Check CI Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, 3.7, 3.8, 3.9
GitHub Registry ->> Tests: Pull CI Image [COMMIT_SHA]
Note over Tests: Verify CI Image
end
deactivate GitHub Registry
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Run static checks
and
Note over Tests: Build docs
and
Note over Tests: Tests
and
Note over Tests: Test provider <br>packages build
and
Note over Tests: Helm tests
end
par 3.6, 3.7, 3.8, 3.9
Build Images ->> GitHub Registry: Push PROD Images
activate GitHub Registry
Note over GitHub Registry: Tagged PROD Images<br>[COMMIT_SHA]
end
deactivate Build Images
loop Wait for PROD images
par 3.6, 3.7, 3.8, 3.9
Tests ->> Tests: Check PROD Images
Note over Tests: Wait for<br>[COMMIT_SHA]
end
end
par 3.6, 3.7, 3.8, 3.9
GitHub Registry ->> Tests: Pull PROD Image [COMMIT_SHA]
Note over Tests: Verify PROD Image
end
deactivate GitHub Registry
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Run Kubernetes <br>tests
and
Note over Tests: Run Kubernetes <br>upgrade tests
end
par 3.6, 3.7, 3.8, 3.9
Note over Tests: Generate constraints
Tests ->> Airflow Repo: Push constraints
end
Tests -->> Airflow Repo: Status update
deactivate Airflow Repo
deactivate Tests