Céges berkeken belül már régóta használom a Gitlab által kínált gitlab-runnert tesztek futtatására és rendszerek frissítésére és most elérkezett az idő, hogy a magán dolgaimhoz is bevessek valami hasonlót, de ennél azért valamivel könnyebb rendszerre vágytam.
Ennek eredménye lett a Drone, ami alapértelmezetten támogatja többek között a Gitea-t is.
A telepítéshez Dockerre és a leírások követésére van szükség.
Jelenleg az alábbi Git hosting szolgáltatásokat támogatja:
- GitHub
- GitLab
- Gitea
- Gogs
- Bitbucket Cloud
- Bitbucket Server
Telepítés után pedig a gites felhasználónkkal tudunk belépni és aktiválni reponként a szolgáltatást.
Hasonlóan a Gitlabhoz, yml fájlt kell létrehozni, aminek az alapértelmezett neve: .drone.yml
Egy példa .drone.yml Laravel deployhoz
pipeline:
ssh:
image: appleboy/drone-ssh
host:
from_secret: host
port: 22
secrets: [ ssh_key, ssh_username, deploy_path ]
envs: [ deploy_path ]
command_timeout: 10m
when:
branch:
- master
script:
- cd "$${DEPLOY_PATH}"
- php artisan down
- git checkout -- public
- git pull
- composer install --optimize-autoloader --no-dev
- npm install
- npm run prod
- php artisan migrate --force
- php artisan up
Mivel ez a fájl bekerül a git-be, a kényes adatokat a Repo Settings Secret részében érdemes megadni, amik ebben a példában a következők:
- deploypath
- host
- sshkey
- ssh_username
Sajnos annyi hiányosságot észrevettem, hogy a script sorok visszatérési értéktől függetlenül mindenképpen lefutnak és ha bárhol hiba van, attól még a pipeline sikeres lesz, de már így is rengeteget gyorsít a folyamatokon. A következő nagy lépés az lesz, hogy a Laravel dusk tesztek is ilyen módon fussanak le docker containerekben.