Reputation: 735
I'm setting up a CI for our development and wanting to know ideas/best practices on managing configuration files targeting different environments.
The first approach that comes to mind is to keep environment-specific configuration files in different directories under version control, and use a build platform such as NAnt to copy the right configuration file to an environment in order:
For instance, my CI process basically follows this process:
subversion -> 1. buildarea -> 2. test env -> 3. beta. env. -> 4. live
have three folders under version control called:
dev.config/: global.asa, app.config
test.config/: gloval.asa, app.config
live.config/: global.asa, app.config
and during the successive steps 2, 3, 4 use NAnt to copy the right configuration file into the environment. But perhaps that might not be very ideal.
Upvotes: 1
Views: 1271
Reputation: 1477
Tools focused more on continuous delivery rather than continuous integration will model the environments you're deploying to as well as the deployment process. Good ones will allow you to specific environment specific parameters, and update a template configuration file (and keep secret stuff secure). I think that's a similar strategy to puppet.
Upvotes: 1