Buildable

O Buildable é um framework criação de pacotes Debian (deb).

Sempre que preciso criar um pacote Debian para fazer a distribuição de meus projetos passava basicamente pelos mesmo problemas, criar scripts para gerar o pacote no build, fazer o script de init, e por ai vai. E isto me motivou a criar um framework para facilitar este processo e poder dedicar meu tempo ao ~~código~~ :beer:.

Sei que muitos de voces estão pensando: Mas peraí, eu uso ruby! não seria muito mais fácil criar uma gem? Sim criar gem é muito mais simples, se você estiver fazendo algo para rubistas utilizarem, quando você tem uma aplicação que é direcionada ao público em geral ela é muito melhor aceita se possuir um instalador em um formato conhecido (como o Debian) :relieved:

Como usar

Primeiramente adicione o Buildable no seu Gemfile

  group :build do
    gem 'buildable', require: false
  end

Execute o bundler para instalar a gem

  $ bundle install

Agora basta criar os arquivos de configuração do seu projeto (este passo é feito apenas uma vez)

  $ buildable init

Este comando criará os seguintes arquivos:

  • .buildable.yml: arquivo de configuração do projeto
  • production.env: arquivo de configuração do ambiente (ver: foreman)
  • Procfile: arquivo de configuração do executável (ver: foreman)

O Buildable pode ser utilizado de duas formas seu executável ou via rake.

Via bash

Para gerar o pacote basta executar o seguinte comando:

  $ buildable build

Quando o projeto não for um serviço, é possível desabilitar a criação do script de inicialização executando:

  $ buildable build --no-init

Via rake

Para utilizar o Buildable com o rake é necessário inluir o require no Rakefile

# on Rakefile
begin
  require 'buildable/rake_task'
  Buildable::RakeTask.load
rescue LoadError
  warn "Buildable not installed!"
end

Para gerar o pacote basta executar

  $ bundle exec rake buildable:build

e para gerar o pacote sem script de inicialização

  $ bundle exec rake buildable:build -- --no-init

Para uma lista completa das tasks execute rake -D

Dicas sujestões e agradecimentos eternos

:email: [email protected]