Configurer Drone pour Gitea
Par Alexis Lefebvre le lundi 8 octobre 2018, 00:15 - Lien permanent
Gitea est un clone léger de GitHub et GitLab. Gitea n'intégre pas de système de CI mais heureusement Drone.io comble ce besoin.
Voici comment je l'ai configuré.
J'avais déjà installé Gitea sur le port 3000
de mon serveur appelé nas
, cette URL sert à configurer le paramètre DRONE_GITEA_URL
ci-dessous.
Sur le serveur
J'ai installé Drone via Docker sur le port 3001
, c'est pourquoi la partie ports
contient 3001:8000
et est différente de la configuration officielle.
Fichier docker-compose.yml
:
version: '2' services: drone-server: image: drone/drone:0.8 ports: - 3001:8000 - 9000 volumes: - drone-server-data:/var/lib/drone/ restart: always environment: - DRONE_OPEN=true - DRONE_HOST=${DRONE_HOST} - DRONE_GITEA=true - DRONE_GITEA_URL=http://nas:3000/ - DRONE_GITEA_SKIP_VERIFY=true - DRONE_GITEA_GIT_USERNAME=${DRONE_GITEA_GIT_USERNAME} - DRONE_GITEA_GIT_PASSWORD=${DRONE_GITEA_GIT_PASSWORD} - DRONE_GITEA_PRIVATE_MODE=true - DRONE_SECRET=${DRONE_SECRET} - DRONE_ADMIN=alexis drone-agent: image: drone/agent:0.8 command: agent restart: always depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_SERVER=drone-server:9000 - DRONE_SECRET=${DRONE_SECRET} volumes: drone-server-data:
Fichier .env
:
DRONE_SECRET=toto DRONE_HOST=http://nas:3001 DRONE_GITEA_GIT_USERNAME=alexis DRONE_GITEA_GIT_PASSWORD=plop
Puis lancer Drone :
docker-compose up -d
Configuration
Il faut ensuite se rendre sur l'URL de Drone, pour moi http://nas:3001/
puis entrer son identifiant et mot de passe afin que Drone accède à Gitea. Enfin il faut importer les projets et activer le CI sur chaque projet.
Dans le projet
Fichier .drone.yml
à placer dans le projet et à commiter :
pipeline: install: image: alexislefebvre/docker-images:7.2-alpine-composer volumes: - composer-cache:/root/.composer commands: - composer install --no-progress environment: - SYMFONY_ENV=test phpunit: image: alexislefebvre/docker-images:7.2-alpine-composer commands: - php vendor/bin/phpunit environment: - SYMFONY_ENV=test
J'utilise une image Docker alexislefebvre/docker-images:7.2-alpine-composer
avec PHP 7.2 et Composer créée pour l'occasion.
Le volume composer-cache
est partagé entre les builds ce qui permet à Composer de télécharger les fichiers une fois puis de les placer dans le cache pour ne plus avoir à les télécharger ensuite.
Pour que Drone puisse monter un volume, il faut s'ajouter à la liste des administrateurs puis marquer le dépôt comme trusted dans Drone.
Résultat
Quand tout fonctionne, on voit le résultat des tests à côté de chaque commit dans Gitea.
Et Drone montre les résultats des tests :