GemeenteNijmegen / cdk-repository-template

European Union Public License 1.2
0 stars 1 forks source link

Cloudformation diff automatisch toevoegen aan een nieuw PR #7

Closed marnixdessing closed 2 years ago

marnixdessing commented 2 years ago
marnixdessing commented 2 years ago

Stap 1

Downloaden van artifacts van eerdere workflows

Een aanpak zou kunnen zijn na een build de artifacts van de laatste build van een PR's base branch te pakken. Dit heeft als voordeel dat er maar een build gedaan hoeft te worden. Omdat de cloudformation templates als artifact gedownload kunnen worden. Helaas is dit nog niet mogelijk 501.

Build van base branch

Volgende optie is om naast de normale build, de base branch van een PR te builden, om vervolgens de cloudformation templates als artifact te uploaden. Een diff job zou vervolgens cloudformation templates van de normale build en de base branch build kunnen downloaden en vergelijken.

marnixdessing commented 2 years ago

Stap 2

CDK Diff of bash Diff

De cdk diff moet vanuit een cdk project gedraait worden. Dit zou in de huidige oplossing de PR base branch kunnen zijn. Als hier de CF templates van de PR source branch bij worden gedownload kan er vergeleken worden met npx cdk diff --template cdk.out.build/stack-a.template.json stack-a. Het nadeel hiervan is dat er per stack vergeleken moet worden. Er is geen algehele diff mogelijk. Daarom is gebruikt de eerste oplossing een diff -rq cdk.out.base_branch cdk.out.source_branch.

Melden van verschillen.

Bij het uitvoeren van de cfn-diff job wordt een comment aan een PR toegevoegd met of er een diff zit in de CloudFormation templates. De diff output wordt ook aan een comment toegevoegd.