Question

Je développe un rubis sur le site Web de rails à l'aide Heroku et git.

Quels sont les outils et les caractéristiques dois-je utiliser pour mettre en place le processus de développement simple suivant?

CODE> CHECK-IN> AUTO TEST> AUTO DEPLOY

  • Je vérifie mon code dans mon dépôt (option préférée, git hébergé comme github)
  • Les tests sont automatiquement exécutés et le site Web est déployé dans ma mise en scène heroku app
  • Si les tests passent, le site est déployé automatiquement sur mon application production heroku
  • Si les tests échouent, je veux être informé en quelque sorte.

Comment voulez-vous faire?

Était-ce utile?

La solution

Nous utilisons intégrité . Il est une solution assez de simple - il ne sera pas tout sous le soleil, mais il est assez facile à mettre en place et gère les la plupart des cas / caractéristiques d'usage courant. Il est également assez facile à pirater, si vous voulez qu'il fasse plus.

L'intégrité déclare:

  

Heroku est le plus facile et plus rapide pour déployer l'intégrité.

Cependant:

  

NOTE
  Il est impossible de référentiels d'accès via SSH sur Heroku

Ceci est parce que votre application Integrity aura besoin d'une clé SSH. Il est impossible, mais certainement quelques cerceaux pour sauter à travers. Vous devrez donner l'intégrité d'une clé privée et le mettre dans l'application, puis pirater l'intégrité d'utiliser cette clé ssh quand il initie le git clone.

Des choses que vous avez énumérés, le Déployez automatique est probablement la chose la plupart des gens ne seraient pas attendre leur serveur CI à faire (et l'intégrité ne fournit pas de la boîte). Vous devez git configurer pour utiliser cette clé ssh et initiez une git push de l'emplacement approprié (le référentiel vérifié sur).

Malheureusement, je ne connais pas les détails de la façon de le faire -. Nous courons réellement l'intégrité sur un VPS

Autres conseils

CircleCi offre exactement ce dont vous avez besoin. Nous allons lancer vos tests sur chaque pression, les déployer si elles passent (à Heroku ou en utilisant Capistrano / tissu / quoi que ce soit vraiment), et vous envoyer des notifications si elles échouent.

pour préface je suis l'un des fondateurs de Codeship ( https://codeship.io ), qui est un service que supports exactement cela.

Mais plus sur le sujet, fondamentalement, il y a 2 façons différentes, je pense que cela pourrait être mis en œuvre (s'il vous plaît garder à l'esprit que tous les noms de branche que j'utilise sont arbitraires et peuvent être nommés tout à fait différente):

mise en scène / production en une seule fois

Chaque fois que vous poussez à votre maître ou une branche de déploiement spécifique vous exécutez vos tests et si tous vous passez d'abord Déployez votre application de mise en scène, d'exécuter des tests séparés (laboratoires Sélénium ou sauce est grand pour cela) et si cela fonctionne y compris les migrations vous poussent à votre application de production.

est grande que la dernière version est toujours disponible en production et nous utilisons ce cycle depuis longtemps maintenant. Fonctionne très bien pour nous. L'inconvénient est que pousser à une application heroku de la mise en scène prend un certain temps. Si vous voulez exécuter les migrations contre une copie de vos données de production cela prend encore plus de temps. Ce n'est pas une éternité, mais il faut quelques minutes.

mise en scène / production comme des étapes séparées

Vous pouvez avoir des branches mise en scène / production séparées qui sont déployées aux applications Heroku respectives. Ceci a l'avantage d'être plus rapide et vous pouvez contrôler quand libérer certaines parties. Surtout pour les applications où vous souhaitez un retour externe avant de déployer en production ce fonctionne très bien.

Nous soutenons tout cela à Railsonfire, mais nous travaillons actuellement sur une nouvelle version de notre service qui est beaucoup mieux. Nous intégrons très bien avec Heroku de sorte que vous ne devez pas penser à ce sujet (mais toujours la possibilité de le faire vous-même de quelque façon que vous voulez)

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