How to Upgrade Drone

Upgrading Drone is as simple as pulling the latest docker image, stopping your container, and then restarting using the newer image.

# pull a newer version of the image.
# (drone/drone:2 is shorthand for the latest 2.x.x release)
docker pull drone/drone:2

# stop and remove the running container.
# (we assume the container name is "drone")
docker stop drone
docker rm drone

# start the container using the newer image.
# (be sure to provide your runtime options in the below example)
docker run [...options] --name=drone drone/drone:2

Breaking Changes
Unless breaking changes are specified in the release notes, it is completely safe to upgrade your Drone instance using the above instructions. In general we do not make backward incompatible changes. The last breaking release was over 2 years ago when we announced version 1.0.0 (upgrading from 0.8.x).

Database Migrations
When you do upgrade Drone it will automatically execute database migrations on startup. These can take a few minutes to complete (or longer depending on database size) during which time the server / website / api will be unavailable. Please ensure you do not kill the container during migration; be patient and allow the migration to complete and the server to initialize.

Release Cadence
We continuously publish tagged releases as we add features and fix issues. You can expect at least one tagged release per month, although we sometimes release multiple times per week.

Downgrades
When you upgrade Drone it automatically upgrades your database (adds tables, columns, etc) and these database changes cannot be rolled back. The database will no longer be compatible with older versions of Drone after an upgrade, which means a downgrade is not possible (attempting to downgrade may place your database in an inconsistent state). For this reason, you should backup your database prior to upgrade in the event you need to revert back.