This is the fourth release candidate for version 0.8. This is a breaking release, however, there are no end-user breaking changes.
Breaking Changes
- Switch the agent server protocol to grpc. See #2065.
- Switch from websockets to server sent events. See #2076.
- Separate server and agent binaries and images. See #2052.
- Restarting a build always uses a new build number. See #2035.
Closed Issues
- Ability to recover agents on network failure. See #2065.
- Ability to reactive a repository in the UI. See #523.
- Ability to globally limit container resources. See #1681.
- Ability to identify which agent ran a build. See #1496.
- Ability to configure session timeout duration. See #2066.
- Allow agents to filter builds. See #2171.
- Always use the standard json logging driver. #1523.
- Separate server and agent binaries and images. See #2052.
- Sync repository and permissions in the database. See #2036.
- Validate username when adding a user. See #1418.
- Support for plugins with no custom paramters. See #2124.
- Support for arm and arm64 builds. See #1767.
- Support for coding.net. See #2028.
- Support for HTTP/2 protocol. See #2076.
- Support for QUIC protocol. See #2076.
- Migrate to the GitLab v4 API. See #2068.
- Filter events by tag and its base ref. See #2217.
Closed UI Issues
- Hamburger icon not visible on small screens. See #27.
- Remove CDN dependency. #32.
- Show token popup does not work in Firefox. #112.
- Replace deprecated react-mdl library. #113.
- Add button to jump to bottom of logs. #84.
- Issues following builds in Firefox. #140.
- Show duration in build list. #121.
- Issues with password manager and autofill. #131.
Upgrade Instructions
This section details configuration changes when upgrading. The first configuration change is the agent and server are split into separate images:
services:
drone-server:
- image: drone/drone:0.7
+ image: drone/drone:0.8
drone-agent:
- image: drone/drone:0.7
+ image: drone/agent:0.8
The sever requires the DRONE_HOST environment variable and will exit when not properly configured. This setting is used to generate commit status links and lets encrypt certificates, and in the future will be used to more accurately perform oauth2 redirects.
services:
drone-server:
image: drone/drone:0.8
environment:
+ - DRONE_HOST=http://drone.mycompany.com
The agent server protocol is using grpc and listening on port 9000. Please update your server configuration to expose the grpc port.
services:
drone-server:
image: drone/drone:0.8
ports:
- 80:8000
+ - 9000:9000
The agent server protocol requires an update to your agent configuration. Please replace the ws address with the server hostname (including port).
services:
drone-agent:
image: drone/agent:0.8
environment:
- - DRONE_SERVER=ws://drone-server:8000/ws/broker
+ - DRONE_SERVER=drone-server:9000
Please note that grpc uses http/2 and cannot be routed through a reverse proxy (i.e. nginx). If you are using nginx you must bypass and connect the agent directly with the server.
Repository Syncing
Previous versions of drone synchronized repository and permission data in-memory and used sql hacks to provide the intersection of the in-memory and sql datasets. This approach had known performance limitations.
This release synchronizes the repository list to the database. This is now possible thanks to universal support of the INSERT IGNORE
and INSERT REPLACE
statements. The sql hacks are replaced with standard joins.
This new approach could result in repository permissions taking longer to propagate to drone. The user interface will also need to be improved to correctly handle data post-synchronization.
What’s Next
Future releases will continue to focus on reaching the 1.0 milestone and compatibility promise. There are currently less than 15 issues remaining before we can tag our first 1.0 release candidate. We expect subsequent minor releases following 1.0 (1.1, 1.2, etc) will focus on stabilizing and cleaning up the codebase, and removing technical debt.