Includere Continuous Integration è fantastico, ma ci sono molti provider tra cui scegliere. CircleCI ha un piano gratuito abbastanza decente, ma usarlo per la tua app Laravel potrebbe essere un po' confusionario.
Istruzioni per la distribuzione di Laravel 5.5 con Circle CI:
Questo sito ha un bel testo di esempio:
Se però avete trovato una sceneggiatura migliore, fatecelo sapere nei commenti.
Se si utilizza PHPUnit, assicurarsi di aver specificato le variabili dell'ambiente di test nei file .env.testing e phpunit.xml.
Ricevi un errore Mysql Root?
Da marzo 2021, a volte abbiamo ricevuto questo errore:
[ERRORE] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD non può essere utilizzato per l'utente root Utilizzare uno dei seguenti per controllare la password dell'utente root: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD
Abbiamo risolto il problema cambiando il nome di MYSQL_USER con uno diverso da 'root'.
Distribuzione su Laravel Forge tramite CI
Dopodiché chiama questo script forge-deploy.sh nel tuo passaggio finale in config.yml:
- run: name: Esegui il comando dello script di distribuzione: sudo chmod +x ./deploy.sh; sudo ./deploy.sh
Quindi crea uno script deploy.sh nella tua app e includi l'URL del trigger di distribuzione di Laravel Forge/Envoyer (puoi trovarlo nella dashboard della tua app in Laravel Forge/Envoyer):
#!/bin/bash # Attiva la distribuzione # Sostituisci l'URL sottostante con l'URL di envoyer/forge # APPLICAZIONE1 curl -s 'https://forge.laravel.com/servers/123456...'; # APPLICAZIONE2 - se hai più applicazioni che devono essere distribuite e attivate curl -s 'https://forge.laravel.com/servers/12345678...'; echo 'Distribuzione attivata!'
Dopodiché, puoi eseguire il push su Github o Bitbucket e vedere se la build riesce e viene distribuita su Laravel Forge / Envoyer. Assicurati di disabilitare la distribuzione automatica, poiché vorresti distribuire su Laravel Forge / Envoyer solo dopo una build CI riuscita.
Distribuisci su Fortrabbit con CircleCI
Preferisci distribuire su Fortrabbit invece che su Laravel Forge dopo una build CircleCI riuscita?
Per saperne di più sull'utilizzo di CI con Fortrabbit Qui.
Per impostare la distribuzione su Fortrabbit da CircleCI, seguire questa procedura:
- Esegui questo script su un client terminale: ssh-keygen -m PEM -t rsa -C “[email protected]”
- Copia la chiave privata su CircleCI
- Vai al progetto -> Chiavi SSH -> Chiavi SSH aggiuntive Inserisci il nome host: deploy.XYZ.frbit.com (sostituisci XYX con la posizione del tuo server Fortrabbit)
- Aggiungere la chiave pubblica nel gestore delle chiavi SSH pubbliche della Dashboard di Fortrabbit
- Aggiungi l'impronta digitale che vedi nella dashboard di CircleCI al file config.yml:
- NOTA: aggiungere una chiave SSH a un servizio di terze parti comporta sempre dei rischi, bisogna esserne consapevoli e se è troppo rischioso, non adottare queste misure.
versione: 2 lavori: deploy-job: passaggi: - add_ssh_keys: impronte digitali: - "SO:ME:FIN:G:ER:PR:IN:T"
Prova a caricare i file aggiornati su Github o Bitbucket.
Controlla se questa build riesce. In caso contrario, correggi i problemi finché non funziona.
Dopo i passaggi di test, aggiungere questo codice allo script circleci/config.yml:
- run: name: Aggiungi FRBIT remoto comando: git remote add frbit YOURFRBITGITURL - run: name: Aggiungi impronta digitale remota FRBIT agli host noti comando: ssh-keyscan deploy.XYZ.frbit.com >> ~/.ssh/known_hosts - run: name: Distribuisci su FRBIT comando: git push frbit
Non dimenticare di sostituire le variabili YOURFRBITGITURL e XYZ.
Naturalmente l'utilizzo di questi script e istruzioni avviene a vostro rischio e pericolo.
Hai suggerimenti per un flusso di lavoro migliore? Faccelo sapere!