• Stars
    star
    260
  • Rank 157,189 (Top 4 %)
  • Language
    JavaScript
  • Created almost 11 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Dashboard for the Drone CI server

drone-wall

The Drone Wall is a wall display component for Drone CI server v0.4.0.

Light theme

Light theme

Configuration

Drone Wall uses Grunt to construct an entirely client-side web application in the /build directory. You can pass several optional values to pre-configure the application like so:

grunt --env=<env> --apiroot=<path> --token=<token> ... [full list below]

The default values for most of these options can be found in env.json, and can be modified there directly if you prefer to not have to pass them in via command-line every time. Additionally, with the exception of env and colors, all configuration values can be changed via the Wall interface at any time. Once set, they'll be stored in localstorage so you don't have to reenter them.

  • env: [local|dev|staging|prod] Defaults to local. Selects which group of configuration variables in env.json are used for further tasks. Implicitly enables mock data when set to local, and minifies/uglifies all scripts when set to staging or prod.

  • apiroot: [String] The absolute path of where your Drone API lives. Should be something like https://drone.something.com/api/.

  • token: [String] A user token generated by Drone, accessible via your user profile when logged into the Drone site. The repos and builds that appear on the Wall will be those that the owner of this token has access to in Drone.

Be aware: supplying these values hard-codes them into the deployed JavaScript files, so providing your Drone token here is suitable only when you do not plan to deploy the Drone Wall someplace public. If the apiroot and token values aren't supplied via the command line build process, they will be asked for in the Wall interface itself.

The Drone Wall will display builds from all repos and branches by default, unless filtered using these options:

  • include: [String] Supply a comma-delimited list of repos (ex. repo-name), branches (ex. repo-name/branch-name), or branch wildcards (ex. */branch-name) to include ONLY these items on the wall, and implicitly exclude all others.

  • exclude: [String] Supply a comma-delimited list in the same format as the include option to exclude repos or branches. If you set the exclude option and not the include option, all repos and branches will be implicitly included EXCEPT for those excluded. If you set the include AND exclude options, the list will first be filtered to only the inclusion list, and then further filtered by the exclusion list.

  • mainbranch: [String] Defaults to master. When pushes are made to this branch on any of the repos on the Wall, that repo will reflect the status of the build (color, avatar). Set to * to show build status for all pushes regardless of branch (this is the pre-3.1.0 behavior).

You can further customize the Wall's default appearance with these options:

  • prtimeout: [Number] Defaults to 48. The number of hours before an un-merged pull request is hidden in the repo list. Useful for removing stale pull requests that have been closed without being merged.

  • prmax: [Number] Defaults to 3. The maximum number of pull requests to display on a repo in the repo list before hiding extras.

  • orgname: [String] Defaults to Drone. This is the name that appears on the config page, and can be replaced with your own organization's name.

  • theme: [light|dark] Defaults to light. Determines whether the Wall is displayed using the light or dark theme.

  • colors: [Object] The default Wall color scheme is defined in /source/modules/_app/styles/colors.less. You can pass a JSON object with properties that match the LESS variable names (sans the @s) to override some or all of these colors, ala -colors="{\"success\":\"#00FF00\"}". Note the need to use double-quotes, and escape the innermost ones. This option's much easier to set via env.json, where you can just use an un-escaped object literal.

Usage Notes

The Drone Wall reads the ref and message parameters in a build response to determine the pull request that a build belongs to, so your configuration will need to include ref and you'll need to merge PRs without customizing the auto-filled message GitHub provides. See this issue for details. Future updates to drone may make this requirement unnecessary... or may break the wall fundamentally, depending upon whether PR numbers are exposed another way or not.

Local Development

The Drone Wall requires Node.js 4.x and npm 3.x at minimum.

Begin with npm install, and then run npm start to build the application, start a file-watcher, and run a local server accessible at localhost:3000. You can pass Grunt flags through npm (as of 2.0.0) like this:

npm start -- -env=dev -theme=dark

Run npm test to run Angular E2E tests against mock data.

Deployment

The Drone Wall uses dominatr-grunt for its build process, and supports automated deployment to CloudFront/S3 on AWS. Set an S3 bucket name and CloudFront distribution ID in your env.json file, and then run the following task with the appropriate env value:

grunt deploy --env=prod --aws-access-key-id=<id> --aws-secret-access-key=<key>

The AWS access key ID and secret access key should belong to an AWS user created via Identity and Access Management that has been granted the AmazonS3FullAccess and CloudFrontFullAccess policies. You'll be given these values when you first create a user.

Be sure to set apiroot, token, or any other configuration values in the deploy command as appropriate. Deployment should only take a few seconds, but building on AWS's end can take upwards of ten minutes.

You can also just run grunt with the appropriate env value to export the full site to your /build directory, and manually deploy its contents to whatever web hosting solution you prefer.

If you plan to deploy to a non-root directory, update the <base> tag in index.html, found in /source/modules/_app/templates, before running your Grunt tasks. For example, if you want to deploy to something.com/wall, set href to /wall/.

Docker Image

We provide a lightweight (6mb) Docker image for quick setup and installation:

docker run -d -p 80:80 drone/drone-wall

More Repositories

1

drone-ui

Front-end for the Drone continuous integration server
JavaScript
470
star
2

routes

[DEPRECATED] routing API for Go web applications
Go
340
star
3

envsubst

Go package emulates bash environment variable substitution
Go
270
star
4

drone-go

Go client for the Drone API
Go
268
star
5

go.stripe

a simple Credit Card processing library for Go using the Stripe API
Go
260
star
6

autoscaler

Automatically adds or removes instances based on build volume
Go
193
star
7

sqlgen

Go tool for generating sql scanners, sql statements and other helper functions
Go
183
star
8

go-scm

Package scm provides a unified interface to multiple source code management systems.
Go
172
star
9

charts

Helm charts for the Drone platform on Kubernetes
Go
168
star
10

jkl

[DEPRECATED] a static site generator written in Go based on Jekyll
Go
132
star
11

docs

Documentation for the Drone Continuous Integration project
SCSS
114
star
12

awesome-drone

A curated list of awesome Drone resources.
104
star
13

drone-plugin-index

Public index of Drone plugins
JavaScript
74
star
14

drone-gc

Garbage collection of unused docker resources
Go
73
star
15

drone-vault

Drone plugin for integrating with the Vault secrets manager
Go
64
star
16

drone-node

Node client for the Drone API
JavaScript
62
star
17

drone-runtime

[DEPRECATED] migrated to https://github.com/drone-runners
Go
62
star
18

drone-kaniko

Drone plugin for building and publishing Docker images
Go
56
star
19

drone-git

Drone plugin for cloning Git repositories
Go
53
star
20

drone-kubernetes-runtime

Goto drone/drone-runtime
Go
47
star
21

mq

a lightweight STOMP message broker
Go
42
star
22

drone-yaml

Go package for parsing and compiling the drone yaml file
Go
41
star
23

runner-go

Go helper package to extend Drone with customer runners.
Go
38
star
24

ca-certs

Docker image from scratch with root certificates
37
star
25

drone-plugin-starter

Starter project for creating Drone plugins
Go
34
star
26

drone-migrate

Migration utility from Drone 0.8.x to 1.0.x
Go
33
star
27

go-bitbucket

[DEPRECATED] Go bindings for the Bitbucket API
Go
28
star
28

go-login

Package login provides login handlers for multiple Source Control Management systems.
Go
28
star
29

drone-js

Javascript client for the Drone API
JavaScript
23
star
30

tutorials

Hugo project for the Drone tutorials website
CSS
20
star
31

homebrew-drone

Homebrew repository to install the Drone command line utility
Ruby
19
star
32

drone-convert-starlark

DEPRECATED: native Starlark support was added to Drone core. This extension is no longer required and has been deprecated.
Go
16
star
33

boilr-config

boilr template for creating Drone configuration extensions
Go
13
star
34

proposal

Drone Project Design Documents
13
star
35

drone-template-lib

library for generating templates in notification plugins
Go
13
star
36

hello-world

simple repository with CI enabled
Dockerfile
12
star
37

drone-registry-plugin

Registry extension for backward compatibility with 0.8 global registry credentials.
Go
12
star
38

docs.drone.io

[DEPRECATED] Documentation for Drone.io continuous integration service
CSS
12
star
39

drone-jsonnet-config

Drone extensions to support Jsonnet configuration files
Go
12
star
40

boilr-plugin

boilr template for creating Drone plugins
Go
11
star
41

drone-plugin-go

[DEPRECATED] use drone-go instead
Go
11
star
42

go-convert

Package convert provides tools for converting pipeline configuration files to the Drone format.
Go
11
star
43

drone-docker

Drone plugin for building and publishing Docker images
Go
9
star
44

boilr-metrics

boilr template for creating custom Drone metrics providers
Go
8
star
45

drone-cache-lib

library for building cache plugins
Go
8
star
46

brand

Logos and branding
8
star
47

drone-amazon-secrets

Drone plugin for integrating with the AWS Secrets Manager
Go
7
star
48

signal

Go package implements Context for os/signal
Go
7
star
49

drone-jira

Drone plugin for sending build and deployment status updates to Jira
Go
7
star
50

autoscaler-docs

Documentation for the Drone Autoscaler
6
star
51

drone-hugo-theme

Hugo theme for Drone documentation
CSS
6
star
52

go-license

Package license provides software license management utilities
Go
6
star
53

boilr-convert

boilr template for creating Drone conversion extensions
Go
5
star
54

ui-template

Harness micro-frontend template
TypeScript
5
star
55

boilr-webhook

boilr template for creating Drone webhook extensions
Go
4
star
56

spec

JavaScript
4
star
57

ui-core

Experimental React component library for Drone.
TypeScript
4
star
58

boilr-runner

boilr template for creating custom pipeline runners
Go
4
star
59

funcmap

Template functions for Go templates
Go
3
star
60

plugin

Tool to execute plugins
Go
3
star
61

drone-gitleaks

Drone Plugin for detecting credentials or other sensitive data in your repository
Go
3
star
62

blog

static website for blog.drone.io
HTML
3
star
63

boilr-admission

boilr template for creating Drone admission extensions
Go
3
star
64

drone-admit-members

Drone extension to restrict access based on organization membership
Go
3
star
65

go-task

Go
3
star
66

ff-test-cases

Test cases for FF SDKs evaluator tests
Go
2
star
67

go-generate

Package generate provides tools for generating pipeline configuration files in the Drone format.
Go
2
star
68

boilr-secret

boilr template for creating Drone secret extensions
Go
2
star
69

boilr-environ

boilr template for creating Drone environment variable extensions
Go
2
star
70

ff-nodejs-server-sample

ff-nodejs-server-sample
JavaScript
2
star
71

ff-ios-client-sample

Swift
2
star
72

drone-yaml-v1

moved to https://github.com/drone/drone-yaml
Go
1
star
73

drone.js

[MOVED] Javascript client for the Drone API
JavaScript
1
star
74

drone-secret-plugin

Secrets extension for backward compatibility with 0.8 global secrets files.
Go
1
star
75

ff-java-server-sample

Sample application using Java Server SDK
Java
1
star
76

ff-dotnetcore-server-sample

C#
1
star
77

ff-javascript-client-sample

JavaScript
1
star
78

hubot-drone

1
star
79

expr

Go package evaluates SQL expressions
Go
1
star
80

ff-dotnet-server-sample

C#
1
star
81

ff-golang-server-sample

Go
1
star
82

ff-flutter-client-sample

Dart
1
star