Ho scritto uno script 'deploy' molto semplice eseguito come il mio hook post-update
all'interno del mio repository git nudo.GIT & Ruby: Come posso rimuovere la variabile GIT_DIR da uno script ruby?
Le variabili sono i seguenti
live domain = ~/mydomain.com
staging domain = ~/stage.mydomain.com
git repo location = ~/git.mydomain.com/thisrepo.git (bare)
core = ~/git.mydomain.com/thisrepo.git
core == added remote into each live & stage gits
sia live
& stage
hanno inizializzato repos git (non nudo) e ho aggiunto il mio repo nuda come un telecomando per ciascuno di essi (di nome core
) in modo che git pull core stage
oppure git pull core live
estrarre i file aggiornati dal rispettivo branch
del repository core
.
Lo script è il seguente:
#!/usr/bin/env ruby
# Loop over each passed in argument
ARGV.each do |branch|
# If it matches the stage then 'update' the staging files
if branch == "refs/heads/stage"
puts ""
puts "Looks like the staging branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/stage.mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core stage`
puts ""
puts "Tree pull completed on staging branch."
puts ""
# If it's a live site update, update those files
elsif branch == "refs/heads/live"
puts ""
puts "Looks like the live branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core live`
puts ""
puts "Tree checkout completed on live branch."
puts ""
end
end
Ho provato adattare il 'aggiornamento' di file da this bash script here che usa il unset GIT_DIR
per eseguire il prossimo comando git git pull core stage
per esempio. core
è il remote
aggiunto del mio repository bare
in una cartella diversa sul server.
Tuttavia quando si esegue lo script precedente sto ottenendo i seguenti errori:
remote: hooks/post-update:35: command not found: unset GIT_DIR
remote: fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
Esiste un modo per fare la stessa cosa di unset GIT_DIR
in uno script bash nel mio script Ruby?
Molte grazie,
Jannis
Questo funziona come per magia! Grazie mille. Ho tutto pronto e funzionante ora!Off per scoprire come fare lo stesso passando in un commento appositamente formattato nelle note di commit :) Mi chiedo se qualcosa come '[update: live]' o '[update: stage]' possa essere usato per attivare questo 'pull 'azione ... – Jannis
Mi hai appena salvato un sacco di frustrazione - Grazie! Non sapevo che queste variabili avevano un tale significato! –