←Torna al blog

Come Utilizzare Bitbucket Pipelines per CI/CD nello Sviluppo Web di WordPress e Drupal

2023-12-02•6 min di lettura

Nel mondo dello sviluppo di siti web, è importante lavorare velocemente e senza errori. L'Integrazione Continua e il Deployment Continuo (CI/CD) aiutano a raggiungere questo obiettivo automatizzando parti del nostro lavoro. In questo post, dimostrerò come sfruttare Bitbucket Pipelines per automatizzare varie attività, come il testing e il deployment di progetti realizzati con Drupal e WordPress, due Content Management System ampiamente utilizzati.

Introduzione a Bitbucket e Git

Prima di esplorare le sfumature di Bitbucket Pipelines, è essenziale comprendere Bitbucket stesso. Bitbucket, parte della suite Atlassian, è un servizio di hosting di repository di controllo versione basato sul web. È ampiamente utilizzato per la gestione dei repository Git, offrendo repository sia privati che pubblici. Questa funzionalità, in particolare la disponibilità di repository privati nel suo piano gratuito, rende Bitbucket una scelta privilegiata per team e sviluppatori individuali. Non si tratta solo di hosting di codice; Bitbucket si integra con altri prodotti Atlassian come Jira e Bamboo, creando un ecosistema fluido per lo sviluppo software, dalla pianificazione al deployment. Git, la spina dorsale di Bitbucket, è un sistema di controllo versione distribuito che consente a piÚ sviluppatori di collaborare in modo efficiente sulla stessa codebase.

Cos'è Bitbucket Pipelines?

Immagina uno strumento che entra in azione nel momento in cui effettui il push delle modifiche al tuo repository remoto. Questo è Bitbucket Pipelines per te. Integrato nel tuo repository Bitbucket, automatizza una varietà di attività ogni volta che aggiorni il tuo codice. Queste attività sono definite in un file di configurazione chiamato bitbucket-pipelines.yml. La gamma di passaggi automatizzati che può eseguire include, ma non si limita a:

  1. Testare il Codice: Eseguire unit test, integration test e altri test automatizzati per garantire la qualitĂ  del codice.
  2. Test End-to-End: Eseguire test E2E per simulare scenari utente reali e validare la funzionalitĂ  completa e l'esperienza utente dell'applicazione.
  3. Deployment del Codice: Distribuire automaticamente il codice in diversi ambienti come staging o produzione.
  4. Creare Artefatti: Compilare codice o creare applicazioni in pacchetti distribuibili o eseguibili.
  5. Eseguire Script: Eseguire script personalizzati per vari scopi, come migrazioni di database o attivitĂ  di pulizia.
  6. Linting e Analisi del Codice: Controllare il codice per errori di sintassi, problemi di formattazione e potenziali bug.
  7. Notifiche: Inviare notifiche o avvisi in base all'esito dei passaggi della pipeline.
  8. Operazioni Docker: Creare, eseguire e inviare immagini Docker ai registri.
  9. Scansioni di Sicurezza: Eseguire scansioni di sicurezza per identificare vulnerabilitĂ  nella codebase.
  10. Generazione Documentazione: Generare e aggiornare automaticamente la documentazione in base alle modifiche del codice.
  11. Test di Performance: Condurre test di carico e performance per valutare il comportamento dell'applicazione sotto stress.

Con queste capacitĂ , Bitbucket Pipelines migliora l'efficienza, la coerenza e l'affidabilitĂ  del tuo processo di sviluppo software.

Configurazione di un Repository con Bitbucket Pipelines

1. Crea o Seleziona il Tuo Repository

  • Passaggio 1: Accedi al tuo account Bitbucket.
  • Passaggio 2: Crea un nuovo repository o seleziona uno esistente in cui desideri configurare Bitbucket Pipelines.

2. Inizializza Bitbucket Pipelines

  • Passaggio 3: Nel tuo repository, naviga nella sezione ‘Pipelines’ nella barra laterale sinistra.
Bitbucket Pipelines
  • Passaggio 4: Fai clic su ‘Crea la tua prima pipeline’. Bitbucket visualizzerĂ  una varietĂ  di template.
  • Passaggio 5: Scegli un template che si adatti meglio allo stack tecnologico del tuo progetto. Ad esempio, seleziona ‘Build PHP Application’ per un progetto basato su PHP.
  • Passaggio 6: Bitbucket visualizzerĂ  il file bitbucket-pipelines.yml generato in base al template selezionato. Rivedi la configurazione della pipeline per assicurarti che sia in linea con i requisiti del tuo progetto. Questo file include passaggi predefiniti per il testing e il linting del tuo codice PHP.
  • Passaggio 7: Puoi modificare il file direttamente nell'interfaccia di Bitbucket per personalizzare i passaggi della pipeline in base alle esigenze del tuo progetto. Assicurati di definire eventuali passaggi aggiuntivi di build, test o deployment richiesti dal tuo progetto.
  • Passaggio 8: Una volta rivista e modificata opzionalmente la configurazione, fai clic su ‘Commit file’ per salvare il file bitbucket-pipelines.yml nel tuo repository.

3. Aggiungi una Chiave SSH per l'Accesso al Server (Opzionale)

  • Passaggio 9: Naviga in ‘Impostazioni repository’, quindi ‘Chiavi SSH’ sotto ‘Pipelines’ se il tuo processo di deployment richiede l'accesso SSH al tuo server.
  • Passaggio 10: Qui puoi generare una nuova coppia di chiavi SSH o aggiungere una esistente facendo clic su ‘Usa le mie chiavi’.
  • Passaggio 11: Se stai aggiungendo una chiave esistente, fornisci la chiave privata nello spazio indicato e etichettala (ad esempio, ‘Server di Deployment’).
  • Passaggio 12: AffinchĂŠ la chiave SSH funzioni, devi anche aggiungere le informazioni host del server sotto ‘Known hosts’. Inserisci l'indirizzo host e recupera l'impronta digitale dell'host per garantire connessioni sicure.
  • Passaggio 13: Salva la chiave SSH e i dettagli dell'host conosciuto.

4. Definisci le Variabili del Repository

  • Passaggio 14: Vai su ‘Impostazioni repository’ e fai clic su ‘Variabili repository’ sotto ‘Pipelines’.
  • Passaggio 15: Fai clic sul pulsante ‘Aggiungi’ per creare una nuova variabile.
  • Passaggio 16: Inserisci il ‘Nome’ per la variabile, come DEV_SERVER, e il ‘Valore’ corrispondente.
  • Passaggio 17: Se la variabile è sensibile, assicurati che la casella ‘Protetto’ sia selezionata per nascondere il valore nei log.
  • Passaggio 18: Fai clic su ‘Aggiungi’ per salvare la variabile.

5. Definisci gli Ambienti di Deployment

  • Passaggio 19: In ‘Impostazioni repository’, naviga in ‘Deployment’ sotto ‘Pipelines’.
  • Passaggio 20: Definisci i tuoi ambienti di deployment. Bitbucket supporta fino a cento ambienti di deployment nelle categorie: Test, Staging e Production.
  • Passaggio 21: Per ogni ambiente, puoi specificare diverse configurazioni. Inserisci i dettagli specifici dell'ambiente come URL, percorsi server o qualsiasi altro dato rilevante come variabili del repository, anteponendo il nome dell'ambiente come TEST_, STAGE_ e PROD_ per chiarezza.
  • Passaggio 22: Assicurati che qualsiasi informazione sensibile per ogni ambiente sia protetta. Bitbucket maschererĂ  le variabili protette nei log e nell'interfaccia utente.

6. Finalizza la Configurazione

  • Passaggio 23: Effettua il commit di eventuali modifiche al file bitbucket-pipelines.yml.
  • Passaggio 24: Effettua il push delle modifiche al tuo repository per attivare la pipeline.
  • Passaggio 25: Utilizza ignorelist.txt nel tuo processo di deployment. Come parte del passaggio di deployment, specialmente quando sincronizzi file con rsync, è importante gestire quali file vengono trasferiti all'ambiente di produzione. Per questo, utilizziamo un file speciale chiamato ignorelist.txt. Questo file contiene un elenco di tutti i file e le directory che dovrebbero essere esclusi durante il processo rsync per evitare sovrascritture o trasferimenti non necessari di file.

Per esempi pratici di configurazioni di bitbucket-pipelines.yml, visita questo repository: Esempi di Bitbucket Pipelines. In particolare, questo esempio focalizzato su Drupal illustra l'esecuzione di composer install nel cloud per progetti Drupal. Questi esempi servono come un utile punto di partenza per personalizzare le tue pipeline.

7. Monitora la Tua Pipeline

Passaggio 26: Controlla la sezione ‘Pipelines’ dopo ogni push per monitorare l'esecuzione e visualizzare i log.

Considerazioni Finali

In sintesi, Bitbucket Pipelines porta molta facilitĂ  ed efficienza allo sviluppo web. Semplifica il lavoro di squadra, il testing e il deployment, rendendo il nostro lavoro piĂš fluido.

Ricorda, il mondo del CI/CD è in continua evoluzione. Quello che ho trattato è solo l'inizio. Man mano che utilizzerai maggiormente Bitbucket Pipelines, imparerai nuovi modi per farlo funzionare meglio per le tue esigenze. Continua a esplorare e migliorare il tuo processo di sviluppo. Buona debug!