Quando executamos nossas suítes de construção no Travis Pro, a etapa de empacotamento leva mais tempo por uma ampla margem (além do próprio script de teste).
Inspirado por este protip Coderwall de Michał Czyż, comecei a tentar armazenar em cache nosso pacote de gem completo no S3.
Como funciona
- O pacote com tarball e uma soma SHA-2 de
Gemfile.lock
são baixados do S3 (se existirem) - Travis funciona
bundle install
normalmente (exceto que o pacote é instalado~/.bundle
). Isso não deve demorar mais do que alguns segundos se o pacote não mudou. - Travis executa todas as etapas normais de compilação, como de costume
- O pacote é colocado em tarball e carregado para S3 (us-east é a região mais próxima dos novos workers do Travis), mas apenas se o hash SHA-2 para o
Gemfile.lock
for alterado
Instruções passo a passo
Leia mais no meu blog… (não queria postar novamente a postagem inteira do blog aqui)