INFO [050fe961] Running mkdir -p /home/rails/rails-
capistrano/releases/20140114234157 on staging-rails
DEBUG [050fe961] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh mkdir -p /home/rails/rails-capistrano/releases/20140114234157 )
INFO [050fe961] Finished in 0.142 seconds with exit status 0 (successful).
INFO [2dea2fe5] Running git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 on staging-rails
DEBUG [2dea2fe5] Command: cd /home/rails/rails-capistrano/repo && ( PATH=/opt/ruby/bin:$PATH GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/rails/git-ssh.sh git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157 )
DEBUG [2dea2fe5] fatal: Not a valid object name
DEBUG [2dea2fe5] tar: This does not look like a tar archive
DEBUG [2dea2fe5] tar:
DEBUG [2dea2fe5] Exiting with failure status due to previous errors
Estou confuso sobre duas coisas:
Por que Capistrano está funcionando
git archive
aqui:
git archive feature/Capistrano | tar -x -C /home/rails/rails-capistrano/releases/20140114234157
Por que está
tar
falhando?
capistrano
rvm-capistrano
capistrano3
Eric Francis
fonte
fonte
Excluir app_name / repo também corrigiu esse problema para mim.
fonte
Isso acontece quando o repo no servidor a ser implantado está bagunçado. Estamos falando sobre o repositório git que o Capistrano por padrão colocaria
/var/www/$application/repo
(para referência de outras pessoas).No seu caso, ele não tem um recurso local / ramificação Capistrano , portanto, ao executar,
git archive feature/Capistrano
nada é enviado para aquele|
pipe. Para confirmar, ssh no servidor, cd em / home / rails / rails-capistrano / repo e executegit branch
.Ele está executando o git archive como uma forma de exportar a árvore do branch selecionado. O arquivo git "grava na saída padrão", então Capistrano redireciona isso para tar , a fim de descompactar o arquivo imediatamente em seu novo diretório de lançamento. (Por que Capistrano escolheu isso em vez de checkout git me derrota.)
tar falha porque não está recebendo nada d:
Posso pensar em duas soluções / maneiras possíveis de solucionar o problema:
git remote -v
) - você pode apenas precisar atualizar seu:repo_url
em deploy.rb (e excluir o repo / dir).fonte
Acho que essa pasta é preenchida por meio de um pull git, então não deve estar vazia. Se você vê-lo vazio, o problema é do git e não do tarball.
O problema que tive foi que a URL do meu repositório capistrano deploy.rb foi configurada para um diferente do projeto em que eu estava trabalhando. Para corrigir esse problema, também tive que fazer logon no servidor e excluir a pasta app_name / repo que deve têm armazenado em cache o URL remoto incorreto original.
fonte
Sempre que recebo esse erro, é porque o branch especificado em meu arquivo .rb de implantação / ambiente não foi verificado no git. Faça um add / commit / git push origin branch_name e isso provavelmente fará as coisas funcionarem.
fonte
Estou usando o Bedrock Roots (wordpress) para desenvolvimento, capistrano para deploys e git flow. Encontrei este erro quando tentei implantar, enquanto no ramo hotfix / xxx localmente. Então, terminei o atual (alterações mescladas para desenvolver o branch) e implantei com sucesso.
fonte