velocizzare il deploy con capifony

Come probabilmente saprete, Capifony (per chi non lo conoscesse, è lo standard de facto per gestire i deploy su Symfony2) purtroppo ha un’impostazione predefinita che reinstalla tutti i vendor a ogni deploy. Questo vuol dire che ogni volta che facciamo un deploy dobbiamo aspettare che il server di produzione (o comunque il server su cui stiamo eseguendo il deploy stesso) scarichi da github tutte le librerie necessarie. Ogni volta, anche se molto probabilmente le librerie dei vendor non sono state modificate dal deploy precedente. In realtà, quando anche fossero state modificate, per esempio per un aggiornamento di Symfony, non sarebbe più efficiente scaricare solo le modifiche, piuttosto che tutto quanto? Dopotutto, è esattamente ciò che facciamo sulle nostre macchine di sviluppo.
Ecco una possibile soluzione, da riportare nel proprio file di configurazione deploy.rb.

# app/config/deploy.rb
# [...]
set :vendors_mode, "install"
set :update_vendors, true
before "symfony:vendors:install", "symfony:copy_vendors"
 
namespace :symfony do
  desc "Copy vendors from previous release"
  task :copy_vendors, :except => { :no_release => true } do
    pretty_print "--> Copying vendors from previous release"
    run "cp -a #{previous_release}/vendor/* #{latest_release}/vendor/"
    puts_ok
  end
end

Aggiornamento: il codice, ampliato e migliorato, è stato pubblicato come ricetta sul sito di Capifony.

anche eZ publish adotta Symfony2

Come già sapete, i componenti di Symfony2 sono stati già adottati da due grossi progetti open source, phpBB e Drupal, per i loro prossimi rilasci maggiori.
A questi, da oggi si aggiunge un altro progetto molto importante: eZ publish! Il celebre sistema di gestione di contenuti l’ha infatti annunciato proprio oggi, subito ripreso dal blog ufficiale di Symfony, per la versione 5, tra l’altro già disponibile su gtihub.