Deploya kod direkt från CircleCI

Här nedan ska jag visa hur man kan koppla ihop CircleCI så den gör en deploy direkt till servern du har hos Cloudnet. CircleCI sköter testning av koden och med hjälp av Git deployas koden till servern som tar hand om tömning av cache och annat.

Det finns många olika deployverktyg som bland annat Jenkins och Bamboo. Numera finns även molnbaserade tjänster som t.ex. CircleCI och Travis som gör samma sak.

Börja med att lägga till ditt GitHub-projekt i CircleCI genom att klicka på Add projects. Under inställningar för projeketet så klicka på Permissions -> SSH keys. Här laddar du upp den privata delen av din SSH-nyckel du använder för deploy.

Gör en sedan en Git klon av ditt projekt till din egna dator:
git clone git@github.com:<organisation>/<projekt>.git

Skapa filen circle.yml med följande innehåll:
test:
override:
- echo Do testing...
deployment:
production:
branch: [master, staging]
commands:
- git fetch --unshallow
- git push git@c0000.cloudnet.se:live.git $CIRCLE_SHA1:refs/heads/$CIRCLE_BRANCH

Lägg sedan till filen till ditt repo och gör en push:
git add circle.yml ; git commit -m "La till circle.yml"
git push

När du nu gör en push så kommer CircleCI förstå det och leta efter circle.yml. I det här fallet kommer lint för PHP köras för att kolla att syntaxen för PHP är korrekt. Om det går bra sker sedan en deploy till servern c0000.cloudnet.se. Beroende på vilken branch så hamnar koden på rätt ställe och cache och annat kommer att rensas.

Enkelt va? När du gör en förändring så är koden deployad och klar inom någon minut. Nästa steg är att bygga flera tester så att kvaliteten på koden blir säkrare.

Om du har frågor eller vill ha hjälp att komma igång så tveka inte att höra av dig!
– Magnus