Nell’articolo Integrazione e Deployment continui in ECAD abbiamo parlato del concetto di Continuous Deployment all’interno di un sistema build. In questo articolo, approfondiremo il modo in cui si possono impostare sistemi di distribuzione continuae Continuous Deployment affinché il vostro team e i fornitori possano disporre di un flusso continuo di pacchetti ECAD aggiornati da analizzare.
Continuous Deployment/Distribuzione Continua: una rivisitazione
Nell’articolo Integrazione continua: un’implementazione utilizzando Altium Designer, abbiamo preso in esame i dettagli del PCB design integrato in un sistema build. Ciò prevedeva:
In questo articolo parliamo della fase successiva: deployment e distribuzione continua. I sistemi di distribuzione e deployment prendono i file di output generati e li forniscono sotto forma di pacchetti per i “clienti finali”. In questo caso il nostro cliente potremmo essere noi stessi, oppure un collega, un fornitore, il reparto del controllo qualità o un vero cliente.
Continuous Deployment e Distribuzione Continua
Nell’applicazione che stiamo per prendere in esame, Continuous Deployment e Distribuzione Continua funzionano in modo pressoché identico, fatta eccezione per il fatto che la fase di distribuzione richiede un passaggio in più per raggiungere il cliente. Secondo Atlassian, il Continuous Deployment prende gli output generati dall’ambiente build e li fornisce direttamente al cliente. La distribuzione continua richiede invece al team di fornire attivamente il pacchetto al cliente. Poiché, ai fini di questa applicazione, il nostro cliente può essere letteralmente chiunque (inclusi noi stessi), parleremo di Continuous Deployment quale meccanismo di fornitura del pacchetto.
Esempio: lavoro di squadra
Ricordate l’esempio dell’articolo Integrazione continua: un’implementazione utilizzando Altium Designer? Un team sta cercando gli schemi PDF, i file di fabbricazione/assemblaggio e/o i modelli STEP migliori e più recenti. Nonostante la vostra progettazione non sia terminata, una parte di essa è “sufficientemente buona” per la revisione DFM. Magari il posizionamento è stato bloccato affinché un progettista meccanico possa utilizzare l’ultima versione del vostro modello STEP. Indipendentemente da ciò, deve essere generato un pacchetto affinché questo gruppo possa controllare i vostri file di progetto. Il sistema Continuous Deployment farà questo per ciascun build che ha attraversato. Per alcuni questo esempio ha molto senso, tuttavia per altri questo approccio “agile” non è molto pratico. Ecco un secondo esempio, più pratico e utile nelle relazioni con i clienti aziendali.
Esempio: Arma a noleggio
In qualità di azienda di PCB design, il vostro cliente chiede continuamente aggiornamenti riguardo al progetto a cui state lavorando. La creazione di aggiornamenti settimanali e il loro invio al cliente tramite e-mail diventa una scocciatura e può richiedere molto tempo. Se sfruttiamo il nostro sistema build, già impegnato nell’integrazione continua, possiamo fare un ulteriore passo avanti per fornire pacchetti pronti all’uso ai nostri clienti e/o implementarli automaticamente presso di loro. Ciò significa che, per ogni commit che effettuate verso il server, il vostro cliente riceverà una schematica, un pacchetto di fabbricazione/assemblaggio e altri output aggiornati, da voi impostati nel file Output Job. Questo file può essere inviato a un’unità di rete condivisa oppure nel cloud. Ciò consente inoltre al cliente di visualizzare i file di progetto e i pacchetti senza installare il software ECAD (generazione automatica del PDF tramite il file Output Job). Ad alcuni ciò potrebbe non interessare (perché preferiscono avere il controllo di ciò che viene rilasciato al cliente), tuttavia per altri potrebbe trasformare il significato della parola “trasparenza”. Se l’idea di un deployment automatico ai clienti piace, è possibile generare il build, inviarlo al gruppo per la revisione, quindi inviare il pacchetto al cliente in un momento successivo.
Implementazione
Fase 1: Configurate il vostro Output Job utilizzando i file di output necessari per il vostro sistema build.
Figura 1. Configurazione dell’Output Job per generare i file di fabbricazione all’interno del sistema build un esempio di distribuzione continua
(Dall’esempio del “MiniPC” Altium Designer)
Figura 2. Un altro esempio del sistema di distribuzione continua: Configurazione dell’Output Job per generare i file di assemblaggio all’interno del sistema build
(Dall’esempio del “MiniPC” Altium Designer)
Fase 2: Zippate i pacchetti tramite la riga di comando. Installate 7-Zip sulla macchina build e utilizzate il seguente comando per zippare il pacchetto:
7z a -tzip Fabrication.zip Fabrication/
7z a -tzip Assembly.zip Assembly/
Fase 3: Configurate il sistema di deployment affinché utilizzi il build attuale e controllate che i pacchetti siano stati inviati.
Figura 3. Configurazione del sistema di distribuzione deployment Bamboo
Figura 4. Esempio di distribuzione continua e deployment per un build Bamboo
Figura 5. Stato del sistema di distribuzione e deployment dei build Bamboo
Fase 4: Rilasciate automaticamente in caso di impostazione Deployment e manualmente in caso di impostazione di distribuzione.
Figura 6. Notifica tramite e-mail: rilascio della distribuzione continua e del deployment automatico utilizzando Atlassian Bamboo
Fase 5: Approfittate del linkage
Figura 7. Linkage del rilascio della distribuzione continua e deployment a specifici ticket Jira
Come potete notare, un ticket Jira è stato risolto tra la fase di sviluppo (1.11) e quella di produzione (1.5)
Conclusione
In questa analisi abbiamo approfondito il concetto di Continuous Deployment e Distribuzione Continua. Impostando sistemi di CI/CD, consentiamo al nostro team e/o ai nostri clienti di prendere visione del pacchetto, indipendentemente della fase in cui ci troviamo. Questo processo favorisce la collaborazione e la trasparenza con il team e i clienti.
Volete saperne di più su come Altium può aiutarvi con il vostro prossimo progetto PCB? Contattate un esperto di Altium o continuate a leggere per scoprire come utilizzare le librerie PCB integrate e la cattura schematica con Altium Designer®.