Acelere as compilações do Travis CI armazenando o pacote em cache no S3

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

  1. O pacote com tarball e uma soma SHA-2 de Gemfile.locksão baixados do S3 (se existirem)
  2. Travis funciona bundle installnormalmente (exceto que o pacote é instalado ~/.bundle). Isso não deve demorar mais do que alguns segundos se o pacote não mudou.
  3. Travis executa todas as etapas normais de compilação, como de costume
  4. 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.lockfor alterado

Instruções passo a passo

Leia mais no meu blog… (não queria postar novamente a postagem inteira do blog aqui)