stampa questo articolo
Vuoi sapere come effettuare il deploy di un’app node.js su Heroku in Continuous Integration e Continuos Deployment con gitHub? In questo tutorial ti guiderò passo passo alla creazione di una semplice app di test, alla sua pubblicazione su gitHub e relativo deploy su Heroku sfruttando le potenzialità della piattaforma sul tema Continuous Integration e Continuos Deployment.

Cosa significa CI e CD?

Prima di andare a vedere come creare e configurare l’app per far si che venga eseguita su Heroku facciamo chiarezza sui termini Continuos IntegrationContinuos DeployContinuos Delivery.

Come deployare un'app node.js su Heroku in Continuous Integration con gitHub. #etrusco #pensandoitClick To Tweet

A tale scopo la seguente immagine, presa dall’utilissima guida presente sul sito Atlassian, chiarisce i concetti più di mille parole

CI CD - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Continuos Integration: Il termine si riferisce all’integrazione continua che uno o più sviluppatori devono fare del codice sorgente sulla repository git per consentire una generazione “continua” delle build (compilazioni), associata a degli Unit Test automatici.

Continuos Delivery: Il termine si riferisce a quelle operazioni che seguono la compilazione ed il superamento dei test, ossia il deploy (rilascio delle build) prima nell’ambiente di staging e poi, a seguito del superamento degli Acceptance Test, della promozione in ambiente di produzione. Con il continuos delivery il deploy finale in produzione viene fatto manualmente.

Continuos Deployment: A differenza del precedente il continuos deployment prevede che kil rilascio in produzione venga fatto in automatico.

Quali sono i prerequisiti necessari?

Fatta questa doverosa premessa, andiamo a vedere quelli che sono i prerequisiti necessari per l’esecuzione del seguente tutorial.

  • Un account attivo su Heroku
  • Un account attivo su gitHub
  • Un pc (meglio se linux) con installati i seguenti software

Avevo già affrontato il tema deploy su Heroku usando un IDE cloud come C9.io, questa volta invece userai solo il tuo pc e gitHub.

Tutto pronto? Allora puoi iniziare a creare l’app node.js in locale.

Crea una semplice app node.js in locale

Per creare una semplice app in node.js i passi sono veramente semplici, prima di tutto crea una nuova folder, in questo esempio si chiama “pensando“, ma puoi utilizzare qualsiasi nome.

$ mkdir pensando
$ cd pensando

Entra nella folder “pensando” e lancia il comando di npm init 

$ npm init

Conferma il nome dell’app “pensando

4 conferma nome app - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Dai invio a tutte le altre opzioni che ti vengono prospettate,ad eccezione di quella relativa all’entry point, preferisco usare il file “server.js” al posto di “index.js” ma questi sono dettagli.

$ entry point: (index.js) server.js

Una volta terminata la procedura nella cartella pensando avrai un nuovo file denominato “package.json” con tutti i settaggi impostati in fase di setup.

5 conferma dati nom init - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Ora dovrai creare una semplice app express (hello world), per cui esegui il comando:

$ npm install express --save

7 install express - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Al termine dell’installazione verifica che sia presente la folder “node_modules

8 verifica installazione express - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Crea il file “server.js” con il comando

$ nano server.js

Copia ed incolla il seguente codice nel file “server.js

var express = require('express');
var app = express();

app.set('port', process.env.PORT || 3000);

app.get('/', function (req, res) {
res.send('Pensando app Hello World!');
});

app.listen(app.get('port'), function () {
console.log('Example app listening on port ' + app.get('port') );
});

Salva e Chiudi.

Esegui l’app node con il comando:

$ node server.js

Se tutto è andato liscio dovresti vedere sul terminale la scritta “Example app listening on port 3000

10 start app - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

per sicurezza lancia da browser il seguente url:

http://localhost:3000

Dovrebbe apparire il seguente messaggio:

Pensando app Hello World!

11 web app started 300x132 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Se hai fatto tutti i passaggi correttamente puoi torna sul terminale e premere la combinazione di tasti Ctrl+C per terminare l’app.

Crea una repository su gitHub ed esegui il push

Bene, In locale funziona tutto alla grande, ora sei pronto per portare il codice su gitHub.

Accedi al tuo account gitHub e crea una nuova repository, chiamala per comodità come il nome della folder che hai creato in locale (Es. pensando)

12 crea github repo 1024x209 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Ora torna alla shell linux ed esegui nell’ordine i seguenti comandi:

$ echo "# pensando - Sample app for heroku and gitHub continuos integration" >> README.md
$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin [email protected]:[tuoaccount]/pensando.git
$ git push -u origin master

Fai attenzione al comando “git remote“, inserisci il link relativo alla tua repository git: [tuoaccount]

21 git add and automatic deploy - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Torna su gitHub e verifica che il codice sia presente nella repo appena creata.

Crea una nuova app su Heroku e collegala a gitHub

E’ arrivato il momento di creare l’app su Heroku, accedi al tuo pannello di amministrazione delle app e crea una nuova app

14 ceate heroku app 300x226 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

con lo stesso nome utilizzato fino ad ora (Es.pensando) nella region “Europe

15 create heroku app 1024x626 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Una volta creata l’app accedi alla voce “Deploy” per agganciarvi il tuo account gitHub

16 heroku github 1024x401 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Una volta selezionato come “Deployment methodGitHub, cerca la repo pensando (o come l’hai chiamata in fase di creazione)

17 heroku searc github repo 1024x198 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

E premi il tasto “Connect

18 heroku app connected 1024x139 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Ora la tua app Heroku è connessa con la repository “pensando” del tuo account GitHub.

Abilita il deploy automatico

19 heroku enable automatic deploy 1024x224 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Il gioco è fatto, sei pronto per fare la prima build e il primo deploy automatico.

Esegui il push e verifica il Deploy Automatico

Per fare la prima build ed il primo deploy automatico su Heroku devi semplicemente editare il file server.js in locale sulla tua macchina, con il comando:

$ nano server.js

Modifica la riga relativa alla response aggiungendo qualcosa, esempio ” – first deploy” nel seguente modo:

res.send('Pensando app Hello World - first deploy!');

20 mod server.js - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Salva e chiudi il file server.js

Ora esegui i seguenti comandi git di push:

$ git add .
$ git commit -am "first deploy"
$ git push -u origin master

21 git add and automatic deploy - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

In automatico verrà attivato un “Web Hook” ovvero un trigger che da GitHub determinerà automaticamente il deploy della tua app su Heroku.

Per verificare che l’app sia stata correttamente deployata accedi nuovamente alla tua dashboard Heroku e clicca sul tab activity

22 activity 1024x824 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Verifica che ci sia una “Build succeeded” e un deploy nello stato “Deployed“, se la Build è ancora in esecuzione potresti trovarti nello stato “Build in progress

23 build in progress - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Attendi il completamento dell’operazione ed accedi alla tua app, cliccando sul tasto “Open App

24 open app 300x116 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Ora puoi verificarne il funzionamento attraverso il link

https://[tuaapp].herokuapp.com

25 first deploy www 1024x287 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Dovresti vedere a video la stringa: “Pensando app Hello World – first deploy!

Se vuoi analizzare i log della tua app basta cliccare sulla voce di menu “More – View Logs

26 view log 256x300 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Si aprirà una console con tutti i log dell’applicazione

27 log deploy e1528024823827 1024x503 - Deployare un'app node.js su Heroku in Continuous Integration con gitHub

Il gioco è fatto, da questo momento in poi ogni push su gitHub determinerà una build ed un deploy su Heroku.

Conclusioni

In questo articolo ti ho descritto come effettuare il deploy di un’app node.js su Heroku in Continuous Integration e Continuos Deployment con gitHub. Ti ho guidato passo passo alla creazione di una semplice app di test, alla sua pubblicazione su gitHub e relativo deploy su Heroku sfruttando le potenzialità della piattaforma sul tema Continuous Integration e Continuos Deployment.

Che te ne pare di questo tutorial? Pensi sia stato utile? Fammi sapere tutto nei commenti!

 

Potrebbe interessarti anche ...

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here