Construire gestion des versions dans la livraison continue

J'ai quelques questions concrètes au sujet de gestion des versions dans la Livraison Continue. Je crois que je comprends de flux de travail global qui est plus ou moins ceci:

1) Code
2) Push to version Control
3) Continuous Integration (unit, integration and end-to-end auto testing)
4) Artifacts deployment

Que sur le contrôle de version? Comment gérer construire des versions?

Disons que nous travaillons sur une Maven du projet, avec la sémantique versions: major.minor.build.

Quand développeur de valider les modifications apportées aux VCS et serveur CI effectuer une génération, devraient serveur CI incrémenter le numéro de version et de créer une balise dans VCS?

Est cette version présente dans le code source? Si donc, après chaque poussée de VCS, les développeurs de mettre à jour le projet, depuis le serveur CI engage des changements (version incrément) sur le projet.

Je suis un peu confus et j'aimerais comprendre le CD de flux de travail d'une manière pratique.

Il y a plusieurs façons de procéder, selon les circonstances et les objectifs que l'on peut être meilleure qu'une autre. Il existe de nombreuses "standard" des livres qui couvrent ces approches ("Libération" est l'un d'eux). Commencez par répondre à la question: voulez-vous chaque génération de résultat dans un unique versionnées artefact. Pourquoi? Pourquoi pas? Ou avez-vous "manuellement" (par exemple, après un sprint) décide qu'il est temps pour une nouvelle version?
La question est probablement un meilleur ajustement pour programmers.stackexchange.com

OriginalL'auteur Héctor | 2015-11-20