Continuous Integration opnemen is geweldig, maar er zijn veel aanbieders om uit te kiezen. CircleCI heeft een redelijk goed gratis plan, maar het gebruiken ervan voor je Laravel-app kan wat verwarrend zijn.
Instructies voor het implementeren van Laravel 5.5 met Circle CI:
Deze site heeft een mooi boilerplate-script:
Maar als u een beter script hebt gevonden, laat het ons dan weten in de reacties.
Zorg ervoor dat u de testomgevingsvariabelen in uw .env.testing en phpunit.xml hebt opgegeven als u PHPUnit gebruikt.
Krijgt u een Mysql Root-fout?
Sinds maart 2021 kregen we soms deze foutmelding:
[ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD kan niet worden gebruikt voor de rootgebruiker. Gebruik een van de volgende opties om het wachtwoord van de rootgebruiker te beheren: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD
We hebben dit opgelost door MYSQL_USER te wijzigen naar een andere naam dan 'root'.
Implementeren op Laravel Forge via CI
Roep daarna dit forge-deploy.sh script aan in uw laatste stap in config.yml:
- uitvoeren: naam: Implementatiescriptopdracht uitvoeren: sudo chmod +x ./deploy.sh; sudo ./deploy.sh
Maak vervolgens een deploy.sh-script in uw app en neem de Laravel Forge/Envoyer-implementatietrigger-URL op (te vinden in het dashboard van uw app in Laravel Forge/Envoyer):
#!/bin/bash # Trigger implementatie # Vervang de onderstaande url door uw envoyer/forge-url # APPLICATION1 curl -s 'https://forge.laravel.com/servers/123456...'; # APPLICATION2 - als u meerdere applicaties hebt die moeten worden geïmplementeerd en geactiveerd curl -s 'https://forge.laravel.com/servers/12345678...'; echo 'Deployment triggered!'
Hierna kun je pushen naar Github of Bitbucket en kijken of de build slaagt en wordt geïmplementeerd in Laravel Forge / Envoyer. Zorg ervoor dat je auto-deploy uitschakelt, omdat je alleen wilt implementeren in Laravel Forge / Envoyer na een succesvolle CI-build.
Implementeren op Fortrabbit met CircleCI
Wilt u na een succesvolle CircleCI-build liever implementeren op Fortrabbit in plaats van Laravel Forge?
Lees meer over het gebruik van CI met Fortrabbit hier.
Volg deze procedure om de implementatie van CircleCI naar Fortrabbit in te stellen:
- Voer dit script uit op een terminalclient: ssh-keygen -m PEM -t rsa -C “[email protected]”
- Kopieer de privésleutel naar CircleCI
- Ga naar het project -> SSH-sleutels -> Extra SSH-sleutels Voer de hostnaam in: deploy.XYZ.frbit.com (vervang XYX door de locatie van uw Fortrabbit-server)
- Voeg de openbare sleutel toe in de openbare SSH-sleutelbeheerder van het Fortrabbit Dashboard
- Voeg de vingerafdruk die u in het CircleCI-dashboard ziet toe aan het bestand config.yml:
- LET OP: het toevoegen van een SSH-sleutel aan een externe service brengt altijd risico's met zich mee. Wees u hiervan bewust en onderneem deze stappen niet als het te riskant is.
versie: 2 taken: deploy-job: stappen: - add_ssh_keys: vingerafdrukken: - "SO:ME:FIN:G:ER:PR:IN:T"
Probeer de bijgewerkte bestanden naar Github of Bitbucket te pushen.
Kijk of deze build slaagt. Zo niet, los dan de problemen op totdat het werkt.
Voeg deze code toe aan het script circleci/config.yml na de teststappen:
- uitvoeren: naam: Voeg FRBIT-vingerafdruk op afstand toe opdracht: git remote add frbit YOURFRBITGITURL - uitvoeren: naam: Voeg FRBIT-vingerafdruk op afstand toe aan bekende hosts opdracht: ssh-keyscan deploy.XYZ.frbit.com >> ~/.ssh/known_hosts - uitvoeren: naam: Implementeren naar FRBIT opdracht: git push frbit
Vergeet niet de variabelen YOURFRBITGITURL en XYZ te vervangen.
Het gebruik van deze scripts en instructies is uiteraard op eigen risico.
Heb je suggesties voor een betere workflow? Laat het ons weten!