Après de nombreux faux départs et impasses, je suis enfin capable de déployer le code d'un site web avec simplement "git push". à distance " grâce à cet article .
Le script post-mise à jour de l'auteur ne fait qu'une ligne et sa solution ne nécessite pas de configuration .htaccess pour cacher le repo Git comme le font certains autres.
Il y a quelques pierres d'achoppement si vous déployez ce système sur une instance Amazon EC2 ;
1) Si vous utilisez sudo pour créer le dépôt de destination nu, vous devez changer le propriétaire du dépôt en ec2-user ou le push échouera. (Essayez "chown ec2-user:ec2-user repo .")
2) Le push échouera si vous ne configurez pas au préalable l'emplacement de votre amazon-private-key .pem, soit dans /etc/ssh/ssh_config en tant que paramètre IdentityFile, soit dans ~/.ssh/config en utilisant la disposition "[Host] - HostName - IdentityFile - User" décrite ici ...
...MAIS si Host est configuré dans ~/.ssh/config et différent de HostName, le push Git échouera. (C'est probablement un bug de Git)
3 votes
Je suppose que cela ne s'applique que dans les situations où il n'y a qu'un seul serveur de production, n'est-ce pas ?
6 votes
@Rijk Eh bien, vous pouvez pousser sur plusieurs serveurs simultanément avec Git, mais une fois que vous atteignez ce niveau, vous pourriez vouloir une solution réelle, pas un hack comme celui-ci.
0 votes
J'ai réussi à utiliser capistrano avec mes projets, qui bien qu'ayant été conçu à l'origine pour le déploiement d'applications Ruby on Rails, fonctionne bien avec PHP et d'autres projets.
0 votes
Traduit les réponses en russe sur ru.so : ru.stackoverflow.com/questions/428483/