EgyProgramozo

PHP/NodeJS programozó, Linux Desktop/Server fan

CI/CD Automatizálás drone.io-val

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
- ssh
key
- 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.

2019.10.23.

ci/cd automatizálás teszt deployment

Szólj hozzá