mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-01-11 17:18:09 +02:00
flag parse, load config, readme
This commit is contained in:
parent
c9edd1a018
commit
fac0582b57
247
README.md
247
README.md
@ -1,240 +1,53 @@
|
|||||||
[![Stories in Ready](https://badge.waffle.io/drone/drone.png?label=ready&title=Ready)](https://waffle.io/drone/drone)
|
Highly experimental branch that implements the following features:
|
||||||
[![Build Status](http://test.drone.io/api/badge/github.com/drone/drone/status.svg?style=flat)](http://test.drone.io/github.com/drone/drone)
|
|
||||||
[![GoDoc](https://godoc.org/github.com/drone/drone?status.svg)](https://godoc.org/github.com/drone/drone)
|
|
||||||
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/drone/drone?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
||||||
|
|
||||||
## Documentation
|
* Pluggable database backends
|
||||||
|
* Pluggable queue
|
||||||
|
* Matrix builds
|
||||||
|
* Build plugins
|
||||||
|
* New Yaml syntax
|
||||||
|
* and more ...
|
||||||
|
|
||||||
* [Installation](http://readme.drone.io/setup/install/ubuntu/)
|
Running Drone:
|
||||||
* [User Guide](http://readme.drone.io/usage/overview/)
|
|
||||||
* [API Reference](http://readme.drone.io/api/overview/)
|
|
||||||
|
|
||||||
## System Requirements
|
```
|
||||||
|
./drone --config="/path/to/config.toml"
|
||||||
* Docker
|
|
||||||
* AUFS
|
|
||||||
|
|
||||||
|
|
||||||
We highly recommend running Docker with the AUFS storage driver. You can verify Docker is using
|
|
||||||
the AUFS storage driver with the following command `sudo docker info | grep Driver:`
|
|
||||||
|
|
||||||
## Upgrading
|
|
||||||
|
|
||||||
If you are upgrading from `0.2` I would recommend waiting a few weeks for the master
|
|
||||||
branch to stabilize. There was a huge amount of refactoring that destabilized the codebase
|
|
||||||
and I'd hate for that to impact any real world installations.
|
|
||||||
|
|
||||||
If you still want to upgrade to `0.2` please know that the databases are not compatible and
|
|
||||||
there is no automated migration due to some fundamental structural changes. You will need
|
|
||||||
to start with a fresh instance.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
**This is project is alpha stage. Consider yourself warned**
|
|
||||||
|
|
||||||
We have optimized the installation process for Ubuntu since that is what we test with internally.
|
|
||||||
You can run the following commands to quickly download an install Drone on an Ubuntu machine.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Ubuntu, Debian
|
|
||||||
wget downloads.drone.io/master/drone.deb
|
|
||||||
sudo dpkg -i drone.deb
|
|
||||||
|
|
||||||
# CentOS, RedHat
|
|
||||||
wget downloads.drone.io/master/drone.rpm
|
|
||||||
sudo yum localinstall drone.rpm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Database
|
Configuring Drone:
|
||||||
|
|
||||||
By default, Drone will create a SQLite database. Drone also supports Postgres and MySQL
|
|
||||||
databases. You can customize the database settings using the configuration options
|
|
||||||
described in the **Setup** section.
|
|
||||||
|
|
||||||
Below are some example configurations that you can use as reference:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
# to use postgres
|
|
||||||
[database]
|
|
||||||
driver="postgres"
|
|
||||||
datasource="host=127.0.0.1 user=postgres dbname=drone sslmode=disable"
|
|
||||||
|
|
||||||
# to use mysql
|
|
||||||
[database]
|
|
||||||
driver="mysql"
|
|
||||||
datasource="root@tcp(127.0.0.1:3306)/drone"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Setup
|
|
||||||
|
|
||||||
We are in the process of moving configuration out of the UI and into configuration
|
|
||||||
files and/or environment variables (your choice which). If you prefer configuration files
|
|
||||||
you can provide Drone with the path to your configuration file:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
droned --config=/path/to/drone.toml
|
|
||||||
```
|
|
||||||
|
|
||||||
The configuration file is in TOML format. If installed using the `drone.deb` file
|
|
||||||
will be located in `/etc/drone/drone.toml`.
|
|
||||||
|
|
||||||
You can find the current config of the master branch [here](https://github.com/drone/drone/blob/master/packaging/root/etc/drone/drone.toml).
|
|
||||||
|
|
||||||
```toml
|
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
port=""
|
addr=":80"
|
||||||
|
|
||||||
[server.ssl]
|
|
||||||
key=""
|
|
||||||
cert=""
|
cert=""
|
||||||
|
key=""
|
||||||
|
|
||||||
[session]
|
[session]
|
||||||
secret=""
|
secret=""
|
||||||
expires=""
|
expires=""
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
driver=""
|
path=""
|
||||||
datasource=""
|
|
||||||
|
|
||||||
[github]
|
|
||||||
client=""
|
|
||||||
secret=""
|
|
||||||
orgs=[]
|
|
||||||
open=false
|
|
||||||
|
|
||||||
[github_enterprise]
|
|
||||||
client=""
|
|
||||||
secret=""
|
|
||||||
api=""
|
|
||||||
url=""
|
|
||||||
orgs=[]
|
|
||||||
private_mode=false
|
|
||||||
open=false
|
|
||||||
|
|
||||||
[bitbucket]
|
|
||||||
client=""
|
|
||||||
secret=""
|
|
||||||
open=false
|
|
||||||
|
|
||||||
[gitlab]
|
|
||||||
url=""
|
|
||||||
client=""
|
|
||||||
secret=""
|
|
||||||
skip_verify=false
|
|
||||||
open=false
|
|
||||||
|
|
||||||
[gogs]
|
|
||||||
url=""
|
|
||||||
secret=""
|
|
||||||
open=false
|
|
||||||
|
|
||||||
[smtp]
|
|
||||||
host=""
|
|
||||||
port=""
|
|
||||||
from=""
|
|
||||||
user=""
|
|
||||||
pass=""
|
|
||||||
|
|
||||||
[docker]
|
[docker]
|
||||||
cert=""
|
cert=""
|
||||||
key=""
|
key=""
|
||||||
|
|
||||||
[worker]
|
|
||||||
nodes=[
|
nodes=[
|
||||||
"unix:///var/run/docker.sock",
|
"unix:///var/run/docker.sock",
|
||||||
"unix:///var/run/docker.sock"
|
"unix:///var/run/docker.sock"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[service]
|
||||||
|
name = "github"
|
||||||
|
base = "https://github.com"
|
||||||
|
orgs = []
|
||||||
|
open = false
|
||||||
|
private_mode = false
|
||||||
|
skip_verify = true
|
||||||
|
|
||||||
|
[service.oauth]
|
||||||
|
client = ""
|
||||||
|
secret = ""
|
||||||
|
authorize = "https://github.com/login/oauth/authorize"
|
||||||
|
access_token = "https://github.com/login/oauth/access_token"
|
||||||
|
request_token = ""
|
||||||
```
|
```
|
||||||
|
|
||||||
Or you can use environment variables
|
|
||||||
|
|
||||||
```sh
|
|
||||||
|
|
||||||
# custom http server settings
|
|
||||||
export DRONE_SERVER_PORT=""
|
|
||||||
export DRONE_SERVER_SSL_KEY=""
|
|
||||||
export DRONE_SERVER_SSL_CERT=""
|
|
||||||
|
|
||||||
# session settings
|
|
||||||
export DRONE_SESSION_SECRET=""
|
|
||||||
export DRONE_SESSION_EXPIRES=""
|
|
||||||
|
|
||||||
# custom database settings
|
|
||||||
export DRONE_DATABASE_DRIVER=""
|
|
||||||
export DRONE_DATABASE_DATASOURCE=""
|
|
||||||
|
|
||||||
# github configuration
|
|
||||||
export DRONE_GITHUB_CLIENT=""
|
|
||||||
export DRONE_GITHUB_SECRET=""
|
|
||||||
export DRONE_GITHUB_OPEN=false
|
|
||||||
|
|
||||||
# github enterprise configuration
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_CLIENT=""
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_SECRET=""
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_API=""
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_URL=""
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_PRIVATE_MODE=false
|
|
||||||
export DRONE_GITHUB_ENTERPRISE_OPEN=false
|
|
||||||
|
|
||||||
# bitbucket configuration
|
|
||||||
export DRONE_BITBUCKET_CLIENT=""
|
|
||||||
export DRONE_BITBUCKET_SECRET=""
|
|
||||||
export DRONE_BITBUCKET_OPEN=false
|
|
||||||
|
|
||||||
|
|
||||||
# gitlab configuration
|
|
||||||
export DRONE_GITLAB_URL=""
|
|
||||||
export DRONE_GITLAB_CLIENT=""
|
|
||||||
export DRONE_GITLAB_SECRET=""
|
|
||||||
export DRONE_GITLAB_SKIP_VERIFY=false
|
|
||||||
export DRONE_GITLAB_OPEN=false
|
|
||||||
|
|
||||||
# email configuration
|
|
||||||
export DRONE_SMTP_HOST=""
|
|
||||||
export DRONE_SMTP_PORT=""
|
|
||||||
export DRONE_SMTP_FROM=""
|
|
||||||
export DRONE_SMTP_USER=""
|
|
||||||
export DRONE_SMTP_PASS=""
|
|
||||||
|
|
||||||
# worker nodes
|
|
||||||
# these are optional. If not specified Drone will add
|
|
||||||
# two worker nodes that connect to $DOCKER_HOST
|
|
||||||
export DRONE_WORKER_NODES="tcp://0.0.0.0:2375,tcp://0.0.0.0:2375"
|
|
||||||
```
|
|
||||||
|
|
||||||
Or a combination of the two:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
DRONE_GITLAB_URL="https://gitlab.com" droned --config=/path/to/drone.conf
|
|
||||||
```
|
|
||||||
|
|
||||||
## GitHub
|
|
||||||
|
|
||||||
In order to setup with GitHub you'll need to register your local Drone installation
|
|
||||||
with GitHub (or GitHub Enterprise). You can read more about registering an application here:
|
|
||||||
https://github.com/settings/applications/new
|
|
||||||
|
|
||||||
Below are example values when running Drone locally. If you are running Drone on a server
|
|
||||||
you should replace `localhost` with your server hostname or address.
|
|
||||||
|
|
||||||
Homepage URL:
|
|
||||||
|
|
||||||
```
|
|
||||||
http://localhost:8000/
|
|
||||||
```
|
|
||||||
|
|
||||||
Authorization callback URL:
|
|
||||||
|
|
||||||
```
|
|
||||||
http://localhost:8000/api/auth/github.com
|
|
||||||
```
|
|
||||||
|
|
||||||
## Build Configuration
|
|
||||||
|
|
||||||
You will need to include a `.drone.yml` file in the root of your repository in order to
|
|
||||||
configure a build. I'm still working on updated documentation, so in the meantime please refer
|
|
||||||
to the `0.2` README to learn more about the `.drone.yml` format:
|
|
||||||
|
|
||||||
https://github.com/drone/drone/blob/v0.2.1/README.md#builds
|
|
||||||
|
1
drone.go
1
drone.go
@ -15,6 +15,7 @@ import (
|
|||||||
var path = flag.String("config", "drone.toml", "")
|
var path = flag.String("config", "drone.toml", "")
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
settings, err := settings.Parse(*path)
|
settings, err := settings.Parse(*path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -118,54 +118,3 @@ func ParseString(data string) (*Settings, error) {
|
|||||||
_, err := toml.Decode(data, s)
|
_, err := toml.Decode(data, s)
|
||||||
return s, err
|
return s, err
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SAMPLE. REMOVE ME
|
|
||||||
|
|
||||||
|
|
||||||
[server]
|
|
||||||
addr=":80"
|
|
||||||
cert=""
|
|
||||||
key=""
|
|
||||||
|
|
||||||
[session]
|
|
||||||
secret=""
|
|
||||||
expires=""
|
|
||||||
|
|
||||||
[database]
|
|
||||||
path=""
|
|
||||||
|
|
||||||
[docker]
|
|
||||||
cert=""
|
|
||||||
key=""
|
|
||||||
nodes=[
|
|
||||||
"unix:///var/run/docker.sock",
|
|
||||||
"unix:///var/run/docker.sock"
|
|
||||||
]
|
|
||||||
|
|
||||||
[service]
|
|
||||||
name = "gitlab"
|
|
||||||
base = "https://github.com"
|
|
||||||
orgs = []
|
|
||||||
open = true
|
|
||||||
private_mode = false
|
|
||||||
skip_verify = true
|
|
||||||
|
|
||||||
[service.oauth]
|
|
||||||
client = ""
|
|
||||||
secret = ""
|
|
||||||
authorize_url=""
|
|
||||||
access_token_url=""
|
|
||||||
request_token_url=""
|
|
||||||
|
|
||||||
[plugins.npm]
|
|
||||||
|
|
||||||
[plugins.email]
|
|
||||||
|
|
||||||
[plugins.smtp]
|
|
||||||
host=""
|
|
||||||
port=""
|
|
||||||
from=""
|
|
||||||
user=""
|
|
||||||
pass=""
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
Loading…
Reference in New Issue
Block a user