So I'm trying to start off with dagger but 1 of the things that's quite unclear for me at the moment is how to structurize all of it.
I run alot of different CI's but dagger has my interest, my favorite for now is actually Tekton and the reusability of tasks.
I'll try 2 describe kind of the different steps I currently have for my buildprocess, and BTW I know the branching strategy could be better 🤫
What I mainly want to know is do I try to put the different scenarios into 1 large container each, do I spin up multiple containers 1 for each step (had alot of issues passing the information from 1 container to the next this way).
And also if you know good examples of dagger pipelines written in go (especially with multibranch - semantic versioning, ...)
Pipeline Flows
Main Branch
KIND: BUILD-DEPLOY
NOTE: Build & test code, publish a new tag, deploy the new tag to TST.
Pipeline:
- prepare
- preflight:check:env:vars:build
- preflight:check:env:vars:deploy
- semantic-release:find:next:version
- build
- build:image
- publish
- semantic-release:publish
- test
- lint:eslint
- lint:styleline
- scan:trivy
- scan:php:cs
- infra-update
- update:infra:repo (TST)
- infra-sync
- deploy:argocd:sync (TST)
F / B / H / R Branches
KIND: BUILD
NOTE: Build & test code, publish a new tag, no deployment
Pipeline:
- prepare
- preflight:check:env:vars:build
- semantic-release:find:next:version
- build
- build:image
- publish
- semantic-release:publish
- test
- lint:eslint
- lint:styleline
- scan:trivy
- scan:php:cs