Where do you store your build and deploy scripts?
I've seen multiple ways of dealing with this:
- Keeping them within the Jenkins (or any other CI) Job.
- Keeping them with the actual code all together.
- Keeping them in a separate repository, as sort of a cookbook.
Whilst 1. is a complete no-go, as it is bypassing any kind of QC, 2. & 3. to my mind are valid options. I would probably lean more towards 2., as it is brings everything into one place. If everything is in one place, it is usually easier to maintain.
The only thing that could be against the 2. option is that if you change the build and deploy scripts, you technically need to bump up your projects version, which triggers a release/redeploy, etc.
I believe that is a small price to pay, compared to having n different repos, but option 3. could solve this.
What are your thoughts about this? Do you have a different strategy?