Per una parete grande ci vuole un pennello grande o un grande pennello? La nostra parete è un’architettura per il build e deploy suddivisa logicamente in vari strati:
- Code repository: Gitlab
- Continuous integration: Gitlab CI
- Optimization: Sencha Cmd
- Native building: PhoneGap Build
Con poche (ma buone!) righe di bash è possibile mettere assieme i vari pezzi e fare in modo che ogni commit scateni l’intero workflow che porta ad ottenere l’applicazione finale (APK e IPA).
Prendete il vostro build server. Fatto?
Ora installate Gitlab. Gitlab è un ottimo prodotto per l’hosting del codice sorgente con backend git, è gratuito ed ha un’interfaccia molto simile a Github. Segui questa guida per installare Gitlab. Fatto?
Ora che siete in grado di fare commit dalla vostra workstation locale al build server potete installare GitLab CI. Gitlab CI si integra con Gitlab e fa continuous integration, cioè riceve i commit fatti sui repository di Gitlab e li “elabora” per produrre l’applicazione finale compilata. Segui questa guida per installare Gitlab CI. Fatto?
Ora, supponiamo che l’applicazione mobile che state sviluppando utilizzi il Sencha Touch. Sencha Touch è un framework MVC per lo sviluppo di siti e applicazioni mobile con supporto full touch. Essendo un framework molto “voluminoso” è necessario un processo di ottimizzazione prima di lanciare l’app sullo smartphone: questo processo fa il “build” dell’app, ossia elimina i componenti del framework non necessari e minifica quelli rimasti.
Una volta fatta la build dell’app è necessario (almeno per il nostro modus operandi) uploadare i file buildati su PhoneGap Build, che effettua il packaging nativo con PhoneGap e compila APK e IPA da installare su Android e iOS. Per fare l’upload su PhoneGap Build è possibile utilizzare delle API REST/JSON molto ben fatte.
Questi ultimi due passaggi sono non banali da ottenere in modo automatizzato. Per far ciò abbiamo sviluppato e reso disponibile come free software (LGPL) uno script chiamato build-sencha-deploy-phonegapbuild.sh.
Bene, non resta che copiare lo script sul vostro server e lanciarlo e avrete l’app uploadata e compilata su PhoneGap Build. Fatto?