Comment utiliser des points d'ancrage post-commit pour copier des fichiers validés dans un répertoire Web à partir de SVN?

StackOverflow https://stackoverflow.com/questions/140614

  •  02-07-2019
  •  | 
  •  

Question

Apache et Subversion sont installés sur mon serveur Ubuntu. J'utilise ce serveur en tant que serveur intermédiaire, uniquement à des fins de test. J'utilise Apache pour héberger l'application Web et Subversion pour conserver des copies versionnées du code source.

Mon flux de travail actuel:

  • Apporter des modifications à un fichier
  • Validez le fichier dans le référentiel Subversion
  • Téléchargez le nouveau fichier via SFTP dans le répertoire public Apache
  • Afficher les modifications dans mon navigateur Web

Je serais beaucoup plus heureux si mon flux de travail était comme ceci:

  • Apporter des modifications à un fichier
  • Validez le fichier dans le référentiel Subversion
  • En arrière-plan, Subversion place une copie du fichier validé dans le répertoire public Apache
  • .
  • Afficher les modifications dans mon navigateur Web

J'ai très peu d'expérience en tant qu'administrateur de serveur et toute aide ou tout pointeur est apprécié. J'ai entendu dire que j'avais besoin de points d'ancrage post-commit et que je pouvais écrire des scripts bash pour le faire, mais je ne savais pas trop par où commencer et je n'ai vraiment rien trouvé après beaucoup de recherches sur Google.

Merci!

Autres conseils

Cela peut être fait, mais imposer automatiquement chaque engagement au site Web de production n'est pas toujours une bonne idée. Parfois, d'autres modifications doivent être apportées, et casser le site à cause du nouveau code existe, mais le schéma de la base de données n'a pas encore été mis à jour est tout simplement embarrassant.

Ce que j’ai tendance à faire plutôt, c’est de faire en sorte que le contrôle du serveur soit une copie de svn. Ensuite, une fois que je suis prêt pour tout ce qui doit se passer, j’effectue une mise à jour de svn dessus.

Mais si vous le voulez vraiment, vous pouvez insérer des commandes dans le déclencheur post-validation, cela fera tout automatiquement pour vous. Cela peut inclure l'exécution d'un script de migration sur le serveur (s'il en existe un pour cette modification), afin de prendre en charge les modifications non liées au code qui doivent se produire.

Je pense que la vraie question que vous devriez vous poser - que vous vous êtes peut-être déjà posée bien sûr - est la suivante: "comment puis-je tester mon code aussi facilement?" avant de le déployer? "

Je pense qu'une bonne solution consiste à installer Apache sur votre zone de développement et à l'exécuter en tant que votre propre utilisateur, avec le chemin d'accès webroot et / ou cgi à / home / richardhenry / src / mywebsite (ou ailleurs). vous vérifiez votre code).

De cette façon, vous pouvez tester votre code sans même vous engager. En conséquence, vous ne laisserez pas votre coffre avec des commits brisés ou inutiles. En général, garder les choses indépendantes en toute indépendance a tendance à être une bonne idée.

Vous pouvez également synchroniser le serveur Web avec votre répertoire de travail avec rsync ou écrire un script qui envoie vos fichiers de la zone de développement sur votre serveur de transfert et ajouter une règle de Makefile qui exécute votre script (ou appelle rsync). . Si vous voulez vraiment aimer , utilisez inotify ou un autre moniteur de notification de fichier pour exécuter votre script automatiquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top