Att inkludera kontinuerlig integration är bra, men det finns många leverantörer att välja mellan. CircleCI har en ganska anständig gratis plan, men att använda den för din Laravel-app kan vara lite förvirrande.
Instruktioner för att distribuera Laravel 5.5 med Circle CI:
Den här sidan har ett trevligt skript:
Men om du hittade ett bättre manus, låt oss veta i kommentarerna.
Se till att du har specificerat testmiljövariablerna i din .env.testing och phpunit.xml om du använder PHPUnit.
Får du ett Mysql Root-fel?
Sedan mars 2021 har vi ibland fått det här felet:
[FEL] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD kan inte användas för rootanvändaren Använd något av följande för att styra rootanvändarens lösenord: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD
Vi löste det genom att ändra MYSQL_USER till ett annat namn än "root".
Utplacering på Laravel Forge via CI
Kalla sedan detta forge-deploy.sh-skript i ditt sista steg i config.yml:
- kör: namn: Kör kommandot deploy script: sudo chmod +x ./deploy.sh; sudo ./deploy.shSkapa sedan ett deploy.sh-skript i din app och inkludera utlösar-URL för Laravel Forge/Envoyer-utlösare (finns i appens instrumentpanel i Laravel Forge/Envoyer):
#!/bin/bash # Trigger-distribution # Ersätt webbadressen nedan med din envoyer/forge-url # APPLICATION1 curl -s 'https://forge.laravel.com/servers/123456...'; # APPLICATION2 - om du har flera applikationer som behöver distribueras och utlösa curl -s 'https://forge.laravel.com/servers/12345678...'; echo 'Implementering utlöst!'Efter detta kan du trycka till Github eller Bitbucket och se om bygget lyckas och distribueras till Laravel Forge / Envoyer. Se till att du inaktiverar automatisk distribution, eftersom du bara vill distribuera till Laravel Forge / Envoyer efter en lyckad CI-build.
Distribuera på Fortrabbit med CircleCI
Vill du hellre distribuera på Fortrabbit istället för Laravel Forge efter ett framgångsrikt CircleCI-bygge?
Läs mer om att använda CI med Fortrabbit här.
Följ denna procedur för att ställa in distributionen till Fortrabbit från CircleCI:
- Kör det här skriptet på en terminalklient: ssh-keygen -m PEM -t rsa -C "[email protected]"
- Kopiera den privata nyckeln till CircleCI
- Gå till projektet -> SSH-nycklar -> Ytterligare SSH-nycklar Ange värdnamn: deploy.XYZ.frbit.com (ersätt XYX med din Fortrabbit-serverplats)
- Lägg till den publika nyckeln i Fortrabbit Dashboards offentliga SSH-nyckelhanterare
- Lägg till fingeravtrycket som du ser i CircleCI-instrumentpanelen till filen config.yml:
- OBS: att lägga till en SSH-nyckel till en tredjepartstjänst innebär alltid risker, var medveten om dem och om det är för riskabelt, ta inte dessa steg.
version: 2 jobb: deploy-job: steg: - add_ssh_keys: fingeravtryck: - "SO:ME:FIN:G:ER:PR:IN:T"Försök att skicka de uppdaterade filerna till Github eller Bitbucket.
Se om den här konstruktionen lyckas. Om inte, åtgärda problemen tills det fungerar.
Lägg till den här koden i skriptet circleci/config.yml efter teststegen:
- kör: namn: Lägg till FRBIT fjärrkommando: git fjärr lägg till frbit YOURFRBITGITURL - kör: namn: Lägg till FRBIT fjärrfingeravtryck till kända värdar kommando: ssh-keyscan deploy.XYZ.frbit.com >> ~/.ssh/known_hosts - kör: namn: Deploy till FRBIT kommando: git push frbitGlöm inte att byta ut variablerna YOURFRBITGITURL och XYZ.
Att använda dessa skript och instruktioner är naturligtvis på egen risk.
Har du några förslag på ett bättre arbetsflöde? Låt oss veta!
Senast uppdaterad 18 maj 2021