Subversion: upload automatico file su server dopo il commit

Se volete velocizzare e automatizzare le procedure di pubblicazione (e backup) delle modifiche che fate ad una vostra applicazione i cui sorgenti sono gestiti tramite Subversion potete farlo sfruttando l’hook che ho realizzato.

Attenzione: funziona solo se il vostro server Subversion è basato su Linux, se da esso è possibile avviare connessioni ssh verso i server su cui gira l’applicazione e se non ci sono particolari impedimenti nell’amministrazione del repository da parte vostra.

Operazioni preliminari:

  1. avere pronto un repository subversion strutturato con:
    trunk/  –> directory in cui è presente la versione di pre-produzione dell’applicazione
    tags/ –> directory in cui è presente una sottodirectory per ogni macro-release dell’applicazione in produzione
    brances/ –> directory in cui è presenta una sottodirectory per ogni versione sperimentale/in sviluppo dell’applicazione
  2. configurare il server su cui gira subversion in modo che l’utente usato dal demone di quest’ultimo si possa connettere via ssh al server che ospita l’applicazione (pre-produzione e produzione) senza richiesta di password (autenticazione tramite chiavi crittografiche – vedere ssh-copy-id).
  3. permettere al server su cui gira subversion di scrivere in una directory locale/remota in modo che possa creare in essa i pacchetti di rilascio/backup da usare poi per verifica e come sorgente per gli upload automatici

Configurazione automatismi

  1. copiare il file post-commit nella directory hooks/ del repository sul server subversion
  2. dare i permessi di esecuzione al file post-commit
  3. modificare il file post-commit inserendo tutte le informazioni relative ai server che contengono la versione di pre-produzione e produzione della vostra applicazione e relativi metodi di accessibilità tramite ssh

Una volta fatto tutto questo avrete l’upload automatico, ad ogni commit, dei file direttamente dal repository ai server.

Il file è scaricabile qui .

Lascia un commento