Closed marnixdessing closed 2 years ago
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.
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.
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
.
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.