--- title: Howto DroneCI categories: sysadmin git ci ... * Documentation : [DroneCI](https://drone.io/) est un logiciel libre d'[intération continue](https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue). ## Installation Depuis la version 1.0, DroneCI est exclusivement fournit sous forme de conteneur [Docker](HowtoDocker). ~~~ apt install docker-compose ~~~ On créé le fichier **docker-compose.yml** : ~~~ version: '2' services: drone-server: image: drone/drone:1.0.0-rc.5 ports: - 8080:80 volumes: - /var/lib/drone:/data restart: always env_file: - /etc/drone/drone-server.env drone-agent: image: drone/agent:1.0.0-rc.5 depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always env_file: - /etc/drone/drone-agent.env ~~~ ### Serveur Éditer le fichier **/etc/drone/drone-server.env** : ~~~ DRONE_SERVER_HOST=drone.example.com DRONE_SERVER_PROTO=https DRONE_SERVER_PORT=:80 DRONE_TLS_AUTOCERT=false DRONE_RPC_SECRET=XXXXXXXXXXXXXXXX # Gitea config DRONE_GITEA_SERVER=https://gitea.example.com DRONE_GIT_ALWAYS_AUTH=false # Logs config DRONE_LOGS_DEBUG=true DRONE_LOGS_TEXT=true DRONE_LOGS_PRETTY=true DRONE_LOGS_COLOR=true # Admins DRONE_USER_CREATE=username:admin,admin:true ~~~ ### Agent Éditer le fichier **/etc/drone/drone-agent.env** : ~~~ DRONE_RPC_SERVER=https://drone.example.com DRONE_RPC_SECRET=XXXXXXXXXXXXXXXX DRONE_RUNNER_CAPACITY=3 # Logs config DRONE_LOGS_DEBUG=true DRONE_LOGS_TEXT=true DRONE_LOGS_PRETTY=true DRONE_LOGS_COLOR=true ~~~ ### Lancement On peut maintenant lancer **DroneCI** via docker-compose : ~~~ docker-compose up ~~~ ## Utilisation DroneCI se configure via un fichier `.drone.yml` a la racine de vos projets **GIT**, voici un exemple simple qui lance l'utilitaire `shellcheck` sur un script shell : ~~~ kind: pipeline name: default steps: - name: run shellcheck on script.sh image: vlaborie/shellcheck commands: - LC_ALL=C.UTF-8 shellcheck script.sh ~~~