Integrazione continua per wrapper API

1

Sto configurando il processo di Continuous Integration per la nostra API e ho diviso il mio cervello cercando di capire come connettere quel processo anche con le librerie API wrapper.

Ecco cosa voglio che succeda:

  1. Applico una modifica all'API
  2. I test vengono eseguiti per assicurarti che l'API sia verde.
  3. Distribuisci temporaneamente l'API e verifica le seguenti librerie di wrapper:

    a. myapi-php wrapper lib - ha un test scritto in PHPUnit .

    b. myapi-ruby wrapper - con un test scritto in RSpec .

4. Se tutto il passaggio precedente, quindi distribuire l'API. Altrimenti, rollback.

  1. Se il passaggio precedente, quindi distribuire alla produzione. Altrimenti, mantieni la versione precedente dell'API.

In questo modo, posso essere sicuro che le modifiche che applichiamo all'API non interrompono le nostre librerie di wrapper. Non posso essere la prima persona a fare questo .. Idee?

    
posta FloatingRock 08.01.2015 - 09:35
fonte

1 risposta

1

Ho fatto cose simili in passato. In generale, il piano funziona anche se si desidera risolvere il problema in modo che "se i test lavorino in produzione e eseguano test esterni" anziché eseguire il rollback se si dispone dell'infrastruttura per supportarlo.

Potresti anche voler pensare alla versione dell'apice in anticipo come misura profilattica.

In termini di strumenti, ci sono un certo numero di piattaforme di CI là fuori di vario genere. I migliori di razza sono TeamCity (gratuito per piccola scala / relativamente economico per più) e Jenkins (FOSS). Esistono alcuni servizi di implementazione del cloud, ma non ne ho mai utilizzato nessuno, quindi non posso dire cosa funzionerebbe meglio. Tendono ad essere legati a piattaforme e / o servizi specifici in modo tale che probabilmente ti aiuteranno a restringere il campo.

Il vero lavoro consiste nel costruire la base di codici per essere distribuibili al 100% mediante processi automatizzati - in gran parte i server di CI sono solo un livello di reportistica di fantasia per quell'azione. Il modo esatto per arrivarci dipende molto dalle specifiche relative all'API e al codice base, ma il punto di partenza è "Posso creare e distribuire questo dalla riga di comando senza l'intervento umano?"

    
risposta data 08.01.2015 - 14:50
fonte

Leggi altre domande sui tag