¿Cuál es la mejor opción para auto hospedar una aplicación Rails y configurar un sistema CI / CP simple cuando se usa GitHub para el control de versiones?

(Ya publiqué esta respuesta pero estaba marcada como spam; los administradores asumieron que solo estaba destinada a dirigir el tráfico a mi sitio. Sin embargo, lo intentaré nuevamente, ligeramente editado).

Asumiendo que básicamente sabe cómo implementar su aplicación, también sugeriría obtener un pequeño VPS de Digital Ocean, configurar un sistema operativo mínimo y echar un vistazo a la documentación del webhook de Github.

Como mi VPS no es de Digital Ocean (y alojo mis repositorios yo mismo), ejecuto un entorno de CI / CD básico para mi sitio web usando git hooks para ejecutar automáticamente las pruebas (y cancelar la confirmación en caso de fallar las pruebas) e implementar automáticamente en producción cada vez que se envía algo a mi rama maestra. Los webhooks de Github deberían darle casi la misma funcionalidad.

Para evitar que esta respuesta se vea como spam, aquí hay un git hook básico que uso, tal vez pueda usarlo como punto de partida en caso de que necesite uno:

#! / bin / bash -l

RAMA = $ (git symbolic-ref HEAD | sed ‘s, refs / heads / ,,’)
[[“$ {BRANCH}”! = “Master”]] && salir de 0

cd $ (cd $ (dirname $ 0); pwd -P) /../ ..

git stash -q –keep-index
Prueba de rastrillo de paquete ejecutivo &> / dev / null
RESULTADO = $?
git stash pop -q

if [[$ RESULT! = 0]]; luego
echo “Hay pruebas fallidas. Aborto”. 1> y 2
salida 1
fi

Si necesita más contexto, esto está tomado de uno de mis artículos.

¡Saludos cordiales!

Mi solución favorita de rápido / bajo costo para esto es con el océano digital y su plantilla de rieles. Use todas sus configuraciones de servidor y agregue un pequeño script bash para hacer un git force pull, ejecutar migraciones, precompilar activos, luego reiniciar unicornio y listo.