go test --tag unit
docker image build --tag ghcr.io/vfarcic/silly-demo:v1.2.3 --push
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" staging/deployment.yaml
kubectl --namespace staging apply --filename dev/deployment.yaml
go test --tag integration
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" prod/deployment.yaml
kubectl --namespace prod apply --filename prod/deployment.yaml
# Do something else
go test --tag unit
docker image build --tag ghcr.io/vfarcic/silly-demo:v1.2.3 --push
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" staging/deployment.yaml
# Changed!
git add . && git commit -m "Release 1.2.3" && git push
# Challenge!
# Wait until the changes are synced into the cluster without write (or even read) permissions
go test --tag integration
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" prod/deployment.yaml
# Changed!
git add . && git commit -m "Release 1.2.3" && git push
# Challenge!
# Wait until the changes are synced into the cluster without write (or even read) permissions
# Do something else
Pipeline 1: Triggered by Git events
go test --tag unit
docker image build --tag ghcr.io/vfarcic/silly-demo:v1.2.3 --push
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" staging/deployment.yaml
git add . && git commit -m "Release 1.2.3" && git push
# Do NOT waste resources on waiting. Pipeline run is finished!
Pipeline 2: Triggered when promotion is finished and is successful (how?)
go test --tag integration
yq --inplace ".spec.template.spec.containers[0].image = \"ghcr.io/vfarcic/silly-demo:v1.2.3\"" prod/deployment.yaml
git add . && git commit -m "Release 1.2.3" && git push
# Do NOT waste resources on waiting. Pipeline run is finished!
Pipeline 3: Triggered when promotion is finished and is successful (how?)
# Do something else
Pipeline 1: Triggered by Git events
go test --tag unit
docker image build --tag ghcr.io/vfarcic/silly-demo:v1.2.3 --push
# Changed!
# Execute or trigger promotion
# Do NOT waste resources on waiting. Pipeline run is finished!
Pipeline 2: Triggered when promotion is finished and is successful (how?)
go test --tag integration
# Changed!
# Execute or trigger promotion
# Do NOT waste resources on waiting. Pipeline run is finished!
Pipeline 3: Triggered when promotion is finished and is successful (how?)
# Do something else