Treat Heroku igual que cualquier otro repositorio git remoto - se puede utilizar git ls-remote
:
git ls-remote heroku
(heroku
siendo aquí el nombre remoto)
ACTUALIZACIÓN:
Desde el OP realmente está buscando adquirir el SHA en el env Ruby, una posible forma sería usar un custom buildpack.
Para empezar, vaya a Heroku's Ruby Buildpack y bifurque para que pueda hacer sus propias variaciones. Ahora clone su tenedor y eche un vistazo al lib/language_pack/ruby.rb
. Añadir un nuevo método, algo así como:
def get_SHA
#get SHA
#save SHA to ENV, ala: ENV['SHA'] = retrieved_sha
end
Cómo ir sobre cómo obtener el SHA depende de usted. Se podría ejecutar un comando git y utilizar lo que se volvió:
git log -1 --format="%H"
O usted podría utilizar @ consejo de avaynshtok y utilizar la gema Heroku utilizar el método releases
.
Luego, una vez que tenga el SHA, configúrelo como una var. ENV.
A continuación, encontrar el método compile
en ruby.rb
y añada el método get_sha
al final de la misma:
def compile
Dir.chdir(build_path)
install_ruby
setup_language_pack_environment
allow_git do
install_language_pack_gems
build_bundler
create_database_yml
install_binaries
run_assets_precompile_rake_task
get_sha #your additional method
end
end
empujar sus cambios de nuevo hasta GitHub, y ahora la cabeza a la línea de comandos. Usted tendrá que añadir una nueva configuración var para su aplicación Heroku:
heroku config:add [email protected]:<your GitHub username>/heroku-buildpack-ruby.git
Tenga en cuenta que tendrá que asegurarse de que ha <your GitHub username>
reemplazar con ... bueno, su nombre de usuario GitHub, por lo que están apuntando a su repositorio bifurcado.
Por último, ejecute un último comando que permite a un Heroku labs feature que permite el acceso babosa compilador para el usuario vars:
heroku labs:enable user_env_compile
Ahora usted debe estar todo listo. Entonces, ¿qué pasa exactamente ahora? Bueno, cuando presionas a Heroku, Heroku recibirá los cambios, y luego verás que tienes una url de buildpack personalizada. Por lo tanto, buscará su buildpack personalizado desde GitHub y luego lo usará para crear el slug. Eso significa que una vez que se ejecuta a través de todos los comandos de compilación predeterminados, terminará con su método get_sha
, que debe establecer ENV var SHA
en el SHA apropiado. Ahora deberías tener acceso a esa var ENV desde dentro de Ruby, para hacer con lo que quieras.
tengo que preguntar ¿por qué? Usted dice 'tenemos un par de personas que usan esta rama para buscar errores'. No estoy tratando de trollar, pero me pregunto por qué no ramificaría el error en dev, lo cargaría para que los demás lo mirasen y luego se fusionarían una vez. aprobado "o cualquier otra razón que tengas para que puedan ver una rama específica en heroku y no en sus propias máquinas de desarrollo. – pjammer
no hay problema en absoluto, no creo que sea trolling: tal vez mi método no esté respaldado por el pensamiento óptimo, pero si prueban la aplicación solo en su máquina local, simplemente no puedo dormir bien pensando que lo hará trabaja exactamente de la misma manera en Heroku. –
, pero para eso es un entorno de ensayo ¿no? ¿Cuántos chicos tienes en el código? Quiero decir, si hay un error, un tipo se bifurca del maestro, lo arregla, actualiza la puesta en escena. Usted lo aprueba Luego se fusiona en maestro y empuja hacia la producción. Todo lo que te permite dormir un poco. – pjammer