{"id":37202945,"url":"https://github.com/suquant/drone","last_synced_at":"2026-01-14T23:24:44.168Z","repository":{"id":20199479,"uuid":"23470835","full_name":"suquant/drone","owner":"suquant","description":"Drone is a Continuous Integration platform built on Docker, written in Go","archived":false,"fork":true,"pushed_at":"2014-10-04T22:26:26.000Z","size":10109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-21T12:48:00.712Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"harness/gitness","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/suquant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-29T16:48:32.000Z","updated_at":"2021-11-15T10:56:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/suquant/drone","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/suquant/drone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suquant%2Fdrone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suquant%2Fdrone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suquant%2Fdrone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suquant%2Fdrone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suquant","download_url":"https://codeload.github.com/suquant/drone/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suquant%2Fdrone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28437981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T23:24:43.357Z","updated_at":"2026-01-14T23:24:44.093Z","avatar_url":"https://github.com/suquant.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Drone is a [Continuous Integration](http://en.wikipedia.org/wiki/Continuous_integration) platform built on [Docker](https://www.docker.io/)\n\n[![Build Status](http://test.drone.io/v1/badge/github.com/suquant/drone/status.svg?branch=master)](http://test.drone.io/github.com/suquant/drone)\n[![GoDoc](https://godoc.org/github.com/suquant/drone?status.png)](https://godoc.org/github.com/suquant/drone)\n\n### Getting Started\n\n* [Installation](http://drone.readthedocs.org/en/latest/install.html)\n* [Configuration](http://drone.readthedocs.org/en/latest/setup.html)\n* [Getting Help](http://drone.readthedocs.org/en/latest/index.html#need-help)\n\n### Contributing\n\nInterested in contributing? Great! Please read our [contributor guidelines](http://drone.readthedocs.org/en/latest/contribute.html#pull-requests).\n\n---\n\n* [System Requirements](#system)\n* [Installation](#setup)\n* [Builds](#builds)\n* [Images](#images)\n* [Application Environment](#environment)\n* [Git Command Options](#git-command-options)\n* [Deployments](#deployments)\n* [Notifications](#notifications)\n* [Database Services](#databases)\n* [Caching](#caching)\n* [Params Injection](#params-injection)\n* [Wall display](#wall-display)\n* [Local development](#local-development)\n* [Documentation and References](#docs)\n\n### System\n\nDrone is tested on the following versions of Ubuntu:\n\n* Ubuntu Precise 12.04 (LTS) (64-bit)\n* Ubuntu Raring 13.04 (64 bit)\n\nDrone's only external dependency is the latest version of Docker (0.8)\n\n### Setup\n\nDrone is packaged and distributed as a debian file. You can download an install\nusing the following commands:\n\n```sh\n$ wget http://downloads.drone.io/latest/drone.deb\n$ sudo dpkg -i drone.deb\n$ sudo start drone\n```\n\nOnce Drone is running (by default on :80) navigate to **http://localhost:80/install**\nand follow the steps in the setup wizard.\n\n**IMPORTANT** You will also need a GitHub Client ID and Secret:\n\n* Register a new application https://github.com/settings/applications\n* Set the homepage URL to http://$YOUR_IP_ADDRESS/\n* Set the callback URL to http://$YOUR_IP_ADDRESS/auth/login/github\n* Copy the Client ID and Secret into the Drone admin console http://localhost:80/account/admin/settings\n\nI'm working on a getting started video. Having issues with volume, but hopefully\nyou can still get a feel for the steps:\n\nhttps://docs.google.com/file/d/0By8deR1ROz8memUxV0lTSGZPQUk\n\n**Using MySQL**\n\nBy default, Drone use sqlite as its database storage. To use MySQL/MariaDB instead, use `-driver` flag\nand set it to `mysql`. You will need to set your DSN (`-datasource`) in this form: \n```\n    user:password@tcp(hostname:port)/dbname?parseTime=true\n```\nChange it according to your database settings. The parseTime above is required since drone using\n`time.Time` to represents `TIMESTAMP` data. Please refer to [1] for more options on mysql driver.\n\nYou may also need to tweak some innodb options, especially if you're using `utf8mb4` collation type.\n```\n    innodb_file_format = Barracuda\n    innodb_file_per_table = On\n    innodb_large_prefix = On\n```\nPlease consult to the MySQL/MariaDB documentation for further information\nregarding large prefix for index column and dynamic row format (which is used in Drone).\n\n[1] https://github.com/go-sql-driver/mysql\n\n### Builds\n\nDrone use a **.drone.yml** configuration file in the root of your\nrepository to run your build:\n\n```\nimage: mischief/docker-golang\nenv:\n  - GOPATH=/var/cache/drone\nscript:\n  - go build\n  - go test -v\nservices:\n  - redis\nnotify:\n  email:\n    recipients:\n      - brad@drone.io\n      - burke@drone.io\n```\n\n### Images\n\nIn the above example we used a custom Docker image from index.docker.io **mischief/docker-golang**\n\nDrone also provides official build images. These images are configured specifically for CI and\nhave many common software packages pre-installed (git, xvfb, firefox, libsqlite, etc).\n\nOfficial Drone images are referenced in the **.drone.yml** by an alias:\n\n```sh\nimage: go1.2   # same as bradrydzewski/go:1.2\n```\n\nHere is a list of our official images:\n\n```sh\n# these two are base images. all Drone images are built on top of these\n# these are BIG (~3GB) so make sure you have a FAST internet connection\ndocker pull bradrydzewski/ubuntu\ndocker pull bradrydzewski/base\n\n# clojure images\ndocker pull bradrydzewski/lein             # image: lein\n\n# dart images\ndocker pull bradrydzewski/dart:stable      # image: dart\n\n# erlang images\ndocker pull bradrydzewski/erlang:R16B      # image: erlangR16B\ndocker pull bradrydzewski/erlang:R16B02    # image: erlangR16B02\ndocker pull bradrydzewski/erlang:R16B01    # image: erlangR16B01\n\n# gcc images (c/c++)\ndocker pull bradrydzewski/gcc:4.6          # image: gcc4.6\ndocker pull bradrydzewski/gcc:4.8          # image: gcc4.8\n\n# go images\ndocker pull bradrydzewski/go:1.0           # image: go1\ndocker pull bradrydzewski/go:1.1           # image: go1.1\ndocker pull bradrydzewski/go:1.2           # image: go1.2\ndocker pull bradrydzewski/go:1.3           # image: go1.3\n\n# haskell images\ndocker pull bradrydzewski/haskell:7.4      # image: haskell\n\n# java and jdk images\ndocker pull bradrydzewski/java:openjdk6    # image: openjdk6\ndocker pull bradrydzewski/java:openjdk7    # image: openjdk7\ndocker pull bradrydzewski/java:oraclejdk7  # image: oraclejdk7\ndocker pull bradrydzewski/java:oraclejdk8  # image: oraclejdk8\n\n# node images\ndocker pull bradrydzewski/node:0.10        # image node0.10\ndocker pull bradrydzewski/node:0.8         # image node0.8\n\n# php images\ndocker pull bradrydzewski/php:5.5          # image: php5.5\ndocker pull bradrydzewski/php:5.4          # image: php5.4\n\n# python images\ndocker pull bradrydzewski/python:2.7       # image: python2.7\ndocker pull bradrydzewski/python:3.2       # image: python3.2\ndocker pull bradrydzewski/python:3.3       # image: python3.3\ndocker pull bradrydzewski/python:pypy      # image: pypy\n\n# ruby images\ndocker pull bradrydzewski/ruby:2.0.0       # image: ruby2.0.0\ndocker pull bradrydzewski/ruby:1.9.3       # image: ruby1.9.3\n\n# scala images\ndocker pull bradrydzewski/scala:2.10.3     # image: scala2.10.3\ndocker pull bradrydzewski/scala:2.9.3      # image: scala2.9.3\n\n```\n\n### Environment\n\nDrone clones your repository into a Docker container\nat the following location:\n\n```\n/var/cache/drone/src/github.com/$owner/$name\n```\n\nPlease take this into consideration when setting up your build commands, or\nif you are using a custom Docker image.\n\n### Git Command Options\n\nYou can specify the `--depth` option of the `git clone` command (default value is `50`):\n\n```\ngit:\n  depth: 1\n```\n\n### Deployments\n\nDrone can trigger a deployment at the successful completion of your build:\n\n```\ndeploy:\n  heroku:\n    app: safe-island-6261\n\npublish:\n  s3:\n    acl: public-read\n    region: us-east-1\n    bucket: downloads.drone.io\n    access_key: C24526974F365C3B\n    secret_key: 2263c9751ed084a68df28fd2f658b127\n    source: /tmp/drone.deb\n    target: latest/\n\n  swift:\n    username: someuser\n    password: 030e39a1278a18828389b194b93211aa\n    auth_url: https://identity.api.rackspacecloud.com/v2.0\n    region: DFW\n    container: drone\n    source: /tmp/drone.deb\n    target: latest/drone.deb\n    branch: master\n\n```\n\nDrone currently has these `deploy` and `publish` plugins implemented (more to come!):\n\n**deploy**\n- [heroku](#docs)\n- [git](#docs)\n- [modulus](#docs)\n- [nodejitsu](#docs)\n- [ssh](#docs)\n- [tsuru](#docs)\n- [bash](#docs)\n\n**publish**\n- [Amazon s3](#docs)\n- [OpenStack Swift](#docs)\n- [PyPI](#docs)\n\nPublish plugins can be limited to a specific branch using the `branch` configuration\nas seen above in the `swift` example. If you do not specify a `branch` all branches\nwill be published, with the exception of Pull Requests.\n\n### Notifications\n\nDrone can trigger email, hipchat and web hook notification at the beginning and\ncompletion of your build:\n\n```\nnotify:\n  email:\n    recipients:\n      - brad@drone.io\n      - burke@drone.io\n\n  webhook:\n    on_success: true\n    on_failure: true\n    urls:\n      - http://my-deploy-hook.com\n\n  hipchat:\n    room: support\n    token: 3028700e5466d375\n    on_started: true\n    on_success: true\n    on_failure: true\n```\n\n### Databases\n\nDrone can launch database containers for your build:\n\n```\nservices:\n  - cassandra\n  - couchdb\n  - couchdb:1.0\n  - couchdb:1.4\n  - couchdb:1.5\n  - elasticsearch\n  - elasticsearch:0.20\n  - elasticsearch:0.90\n  - neo4j\n  - neo4j:1.9\n  - mongodb\n  - mongodb:2.2\n  - mongodb:2.4\n  - mysql\n  - mysql:5.5\n  - postgres\n  - postgres:9.1\n  - rabbitmq\n  - rabbitmq:3.2\n  - redis\n  - riak\n  - zookeeper\n```\n\nIf you omit the version, Drone will launch the latest version of the database. (For example, if you set `mongodb`, Drone will launch MongoDB 2.4.)\n\nYou can also launch custom Docker containers using standard docker notation:\n\n```sh\nservices:\n  - dockerfile/rethinkdb # same as dockerfile/rethinkdb:latest\n  - barnybug/elasticsearch:1.0.1\n```\n\n**NOTE 1:** database and service containers are exposed over TCP connections and\nhave their own local IP address. If the **socat** utility is installed inside your\nDocker image, Drone will automatically proxy localhost connections to the correct\nIP address.\n\n**NOTE 2:** avoid running services that use the same ports. For example, don't specify\nmultiple versions of Elastic Search since the port will already be in use.\n\n### Caching\n\nDrone can persist directories between builds. This should be used for caching dependencies to\ndecrease overall build time. Examples include your `.npm`, `.m2`, `bundler`, etc.\n\n```\ncache:\n  - /usr/local/bin/go/pkg\n```\n\nThis will cache the directory relative to the root directory of your repository:\n\n```\ncache:\n  - .npm\n```\n\n**NOTE:** this is an alpha quality feature and still has some quirks. See https://github.com/suquant/drone/issues/147\n\n### Params Injection\n\nYou can inject params into .drone.yml.\n\n```\nnotify:\n  hipchat:\n    room: {{hipchatRoom}}\n    token: {{hipchatToken}}\n    on_started: true\n    on_success: true\n    on_failure: true\n```\n\n![params-injection](https://f.cloud.github.com/assets/1583973/2161187/2905077e-94c3-11e3-8499-a3844682c8af.png)\n\n### Wall display\n\nA wall display for Drone is available as a separate service. See [Drone Wall](https://github.com/suquant/drone-wall)\nfor details.\n\n### Local development\n\nLocal Drone setup for development is pretty straightforward.\n\nYou will need to clone the repo, install Vagrant and run `vagrant up`.\nThis command will download base Ubuntu image, setup the virtual machine and build Drone.\n\nAfterwards, you may `vagrant ssh` into the vagrant instance, where docker is already installed and ready to go.\n\nOnce in the vagrant instance, run `make run`, the visit http://localhost:8080/install in your browser.\n\nThe Makefile has other targets so check that out for more build, test, run configurations.\n\n### Docs\n\n* [drone.readthedocs.org](http://drone.readthedocs.org/) (Coming Soon)\n* [GoDoc](http://godoc.org/github.com/suquant/drone)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuquant%2Fdrone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuquant%2Fdrone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuquant%2Fdrone/lists"}