When learning a deployment platform, I now prefer to get one deployment working manually before creating the pipeline.
The manual process might be:
Build
↓
Test
↓
Push
↓
Deploy
↓
Verify
Only after that works do I automate it:
git push
↓
Pipeline
↓
Build
↓
Push
↓
Deploy
The advantage is troubleshooting.
If this pipeline command fails:
docker build ...
I already know the image builds outside CI.
If:
docker push ...
fails, I know the image and registry path have already worked manually.
The same applies to the deployment command.
Without that baseline, a failed pipeline can simultaneously be:
- an application problem
- a container problem
- an authentication problem
- a registry problem
- a deployment problem
- a CI runner problem
Doing it manually first removes several unknowns.
The objective isn’t to keep deploying manually.
It’s to make the eventual automation describe a process I already understand.