Clean up config environment variables for server and agent (#218)

The goal here is to make consistent use of configuration environment variables prefixed `WOODPECKER_`. Where several variants existed, this PR aims to remove all but one option, leaving the most explicit.

This PR only changes server and agent code, but not documentation, in order to keep the PR digestible. Once we have consensus that this is correct, I'll change docs accordingly.

User (rather: admin) facing changes in this PR:

- In general, support for all server and agent config environment variables (env vars) starting with `DRONE_` is removed. The according `WOODPECKER_*` variables must be used instead.
- The env var `WOODPECKER_HOST` replaces `DRONE_HOST`, and `DRONE_SERVER_HOST`.
- The env var `WOODPECKER_AGENT_SECRET` is used to configure the shared secret which agents use to authenticate against the server. It replaces `WOODPECKER_SECRET`, `DRONE_SECRET`, `WOODPECKER_PASSWORD`, `DRONE_PASSWORD`, and `DRONE_AGENT_SECRET`.
- The env var `WOODPECKER_DATABASE_DRIVER` replaces `DRONE_DATABASE_DRIVER` and `DATABASE_DRIVER`.
- The env var `WOODPECKER_DATABASE_DATASOURCE` replaces `DRONE_DATABASE_DATASOURCE` and `DATABASE_CONFIG`.
This commit is contained in:
Marian Steinbach 2021-09-28 15:43:44 +02:00 committed by GitHub
parent 6144f16631
commit 17b8867b96
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 220 additions and 207 deletions

View file

@ -24,8 +24,8 @@ pipeline:
image: golang:1.16
group: db-test
environment:
- DATABASE_DRIVER=postgres
- DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable
- WOODPECKER_DATABASE_DRIVER=postgres
- WOODPECKER_DATABASE_CONFIG=host=postgres user=postgres dbname=postgres sslmode=disable
commands:
- go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore
@ -33,8 +33,8 @@ pipeline:
image: golang:1.16
group: db-test
environment:
- DATABASE_DRIVER=mysql
- DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true
- WOODPECKER_DATABASE_DRIVER=mysql
- WOODPECKER_DATABASE_CONFIG=root@tcp(mysql:3306)/test?parseTime=true
commands:
- go test -timeout 30s github.com/woodpecker-ci/woodpecker/server/store/datastore

View file

@ -3,10 +3,10 @@
FROM drone/ca-certs
EXPOSE 8000 9000 80 443
ENV DATABASE_DRIVER=sqlite3
ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite
ENV GODEBUG=netdns=go
ENV XDG_CACHE_HOME /var/lib/drone
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
ENV XDG_CACHE_HOME=/var/lib/drone
ADD release/woodpecker-server /bin/

View file

@ -3,10 +3,10 @@ EXPOSE 8000 9000 80 443
RUN apk add -U --no-cache ca-certificates
ENV DATABASE_DRIVER=sqlite3
ENV DATABASE_CONFIG=/var/lib/drone/drone.sqlite
ENV GODEBUG=netdns=go
ENV XDG_CACHE_HOME /var/lib/drone
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
ENV XDG_CACHE_HOME=/var/lib/drone
ADD release/woodpecker-server /bin/

View file

@ -39,31 +39,31 @@ var Command = cli.Command{
},
Flags: []cli.Flag{
cli.BoolTFlag{
EnvVar: "WOODPECKER_LOCAL",
Name: "local",
Usage: "build from local directory",
EnvVar: "DRONE_LOCAL,WOODPECKER_LOCAL",
},
cli.DurationFlag{
EnvVar: "WOODPECKER_TIMEOUT",
Name: "timeout",
Usage: "build timeout",
Value: time.Hour,
EnvVar: "DRONE_TIMEOUT,WOODPECKER_TIMEOUT",
},
cli.StringSliceFlag{
EnvVar: "WOODPECKER_VOLUMES",
Name: "volumes",
Usage: "build volumes",
EnvVar: "DRONE_VOLUMES,WOODPECKER_VOLUMES",
},
cli.StringSliceFlag{
EnvVar: "WOODPECKER_NETWORKS",
Name: "network",
Usage: "external networks",
EnvVar: "DRONE_NETWORKS,WOODPECKER_NETWORKS",
},
cli.StringFlag{
EnvVar: "WOODPECKER_DOCKER_PREFIX",
Name: "prefix",
Value: "drone",
Usage: "prefix containers created by drone",
EnvVar: "DRONE_DOCKER_PREFIX,WOODPECKER_DOCKER_PREFIX",
Hidden: true,
},
cli.StringSliceFlag{
@ -86,199 +86,199 @@ var Command = cli.Command{
// workspace default
//
cli.StringFlag{
EnvVar: "WOODPECKER_WORKSPACE_BASE",
Name: "workspace-base",
Value: "/drone",
EnvVar: "DRONE_WORKSPACE_BASE,WOODPECKER_WORKSPACE_BASE",
},
cli.StringFlag{
EnvVar: "WOODPECKER_WORKSPACE_PATH",
Name: "workspace-path",
Value: "src",
EnvVar: "DRONE_WORKSPACE_PATH,WOODPECKER_WORKSPACE_PATH",
},
//
// netrc parameters
//
cli.StringFlag{
EnvVar: "WOODPECKER_NETRC_USERNAME",
Name: "netrc-username",
EnvVar: "DRONE_NETRC_USERNAME,WOODPECKER_NETRC_USERNAME",
},
cli.StringFlag{
EnvVar: "WOODPECKER_NETRC_PASSWORD",
Name: "netrc-password",
EnvVar: "DRONE_NETRC_PASSWORD,WOODPECKER_NETRC_PASSWORD",
},
cli.StringFlag{
EnvVar: "WOODPECKER_NETRC_MACHINE",
Name: "netrc-machine",
EnvVar: "DRONE_NETRC_MACHINE,WOODPECKER_NETRC_MACHINE",
},
//
// metadata parameters
//
cli.StringFlag{
EnvVar: "WOODPECKER_SYSTEM_ARCH",
Name: "system-arch",
Value: "linux/amd64",
EnvVar: "DRONE_SYSTEM_ARCH,WOODPECKER_SYSTEM_ARCH",
},
cli.StringFlag{
EnvVar: "WOODPECKER_SYSTEM_NAME",
Name: "system-name",
Value: "pipec",
EnvVar: "DRONE_SYSTEM_NAME,WOODPECKER_SYSTEM_NAME",
},
cli.StringFlag{
EnvVar: "WOODPECKER_SYSTEM_LINK",
Name: "system-link",
Value: "https://github.com/cncd/pipec",
EnvVar: "DRONE_SYSTEM_LINK,WOODPECKER_SYSTEM_LINK",
},
cli.StringFlag{
EnvVar: "WOODPECKER_REPO_NAME",
Name: "repo-name",
EnvVar: "DRONE_REPO_NAME,WOODPECKER_REPO_NAME",
},
cli.StringFlag{
EnvVar: "WOODPECKER_REPO_LINK",
Name: "repo-link",
EnvVar: "DRONE_REPO_LINK,WOODPECKER_REPO_LINK",
},
cli.StringFlag{
EnvVar: "WOODPECKER_REPO_REMOTE",
Name: "repo-remote-url",
EnvVar: "DRONE_REPO_REMOTE,WOODPECKER_REPO_REMOTE",
},
cli.StringFlag{
EnvVar: "WOODPECKER_REPO_PRIVATE",
Name: "repo-private",
EnvVar: "DRONE_REPO_PRIVATE,WOODPECKER_REPO_PRIVATE",
},
cli.IntFlag{
EnvVar: "WOODPECKER_BUILD_NUMBER",
Name: "build-number",
EnvVar: "DRONE_BUILD_NUMBER,WOODPECKER_BUILD_NUMBER",
},
cli.IntFlag{
EnvVar: "WOODPECKER_PARENT_BUILD_NUMBER",
Name: "parent-build-number",
EnvVar: "DRONE_PARENT_BUILD_NUMBER,WOODPECKER_PARENT_BUILD_NUMBER",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_BUILD_CREATED",
Name: "build-created",
EnvVar: "DRONE_BUILD_CREATED,WOODPECKER_BUILD_CREATED",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_BUILD_STARTED",
Name: "build-started",
EnvVar: "DRONE_BUILD_STARTED,WOODPECKER_BUILD_STARTED",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_BUILD_FINISHED",
Name: "build-finished",
EnvVar: "DRONE_BUILD_FINISHED,WOODPECKER_BUILD_FINISHED",
},
cli.StringFlag{
EnvVar: "WOODPECKER_BUILD_STATUS",
Name: "build-status",
EnvVar: "DRONE_BUILD_STATUS,WOODPECKER_BUILD_STATUS",
},
cli.StringFlag{
EnvVar: "WOODPECKER_BUILD_EVENT",
Name: "build-event",
EnvVar: "DRONE_BUILD_EVENT,WOODPECKER_BUILD_EVENT",
},
cli.StringFlag{
EnvVar: "WOODPECKER_BUILD_LINK",
Name: "build-link",
EnvVar: "DRONE_BUILD_LINK,WOODPECKER_BUILD_LINK",
},
cli.StringFlag{
EnvVar: "WOODPECKER_BUILD_TARGET",
Name: "build-target",
EnvVar: "DRONE_BUILD_TARGET,WOODPECKER_BUILD_TARGET",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_SHA",
Name: "commit-sha",
EnvVar: "DRONE_COMMIT_SHA,WOODPECKER_COMMIT_SHA",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_REF",
Name: "commit-ref",
EnvVar: "DRONE_COMMIT_REF,WOODPECKER_COMMIT_REF",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_REFSPEC",
Name: "commit-refspec",
EnvVar: "DRONE_COMMIT_REFSPEC,WOODPECKER_COMMIT_REFSPEC",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_BRANCH",
Name: "commit-branch",
EnvVar: "DRONE_COMMIT_BRANCH,WOODPECKER_COMMIT_BRANCH",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_MESSAGE",
Name: "commit-message",
EnvVar: "DRONE_COMMIT_MESSAGE,WOODPECKER_COMMIT_MESSAGE",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_AUTHOR_NAME",
Name: "commit-author-name",
EnvVar: "DRONE_COMMIT_AUTHOR_NAME,WOODPECKER_COMMIT_AUTHOR_NAME",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_AUTHOR_AVATAR",
Name: "commit-author-avatar",
EnvVar: "DRONE_COMMIT_AUTHOR_AVATAR,WOODPECKER_COMMIT_AUTHOR_AVATAR",
},
cli.StringFlag{
EnvVar: "WOODPECKER_COMMIT_AUTHOR_EMAIL",
Name: "commit-author-email",
EnvVar: "DRONE_COMMIT_AUTHOR_EMAIL,WOODPECKER_COMMIT_AUTHOR_EMAIL",
},
cli.IntFlag{
EnvVar: "WOODPECKER_PREV_BUILD_NUMBER",
Name: "prev-build-number",
EnvVar: "DRONE_PREV_BUILD_NUMBER,WOODPECKER_PREV_BUILD_NUMBER",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_PREV_BUILD_CREATED",
Name: "prev-build-created",
EnvVar: "DRONE_PREV_BUILD_CREATED,WOODPECKER_PREV_BUILD_CREATED",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_PREV_BUILD_STARTED",
Name: "prev-build-started",
EnvVar: "DRONE_PREV_BUILD_STARTED,WOODPECKER_PREV_BUILD_STARTED",
},
cli.Int64Flag{
EnvVar: "WOODPECKER_PREV_BUILD_FINISHED",
Name: "prev-build-finished",
EnvVar: "DRONE_PREV_BUILD_FINISHED,WOODPECKER_PREV_BUILD_FINISHED",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_BUILD_STATUS",
Name: "prev-build-status",
EnvVar: "DRONE_PREV_BUILD_STATUS,WOODPECKER_PREV_BUILD_STATUS",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_BUILD_EVENT",
Name: "prev-build-event",
EnvVar: "DRONE_PREV_BUILD_EVENT,WOODPECKER_PREV_BUILD_EVENT",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_BUILD_LINK",
Name: "prev-build-link",
EnvVar: "DRONE_PREV_BUILD_LINK,WOODPECKER_PREV_BUILD_LINK",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_SHA",
Name: "prev-commit-sha",
EnvVar: "DRONE_PREV_COMMIT_SHA,WOODPECKER_PREV_COMMIT_SHA",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_REF",
Name: "prev-commit-ref",
EnvVar: "DRONE_PREV_COMMIT_REF,WOODPECKER_PREV_COMMIT_REF",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_REFSPEC",
Name: "prev-commit-refspec",
EnvVar: "DRONE_PREV_COMMIT_REFSPEC,WOODPECKER_PREV_COMMIT_REFSPEC",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_BRANCH",
Name: "prev-commit-branch",
EnvVar: "DRONE_PREV_COMMIT_BRANCH,WOODPECKER_PREV_COMMIT_BRANCH",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_MESSAGE",
Name: "prev-commit-message",
EnvVar: "DRONE_PREV_COMMIT_MESSAGE,WOODPECKER_PREV_COMMIT_MESSAGE",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_AUTHOR_NAME",
Name: "prev-commit-author-name",
EnvVar: "DRONE_PREV_COMMIT_AUTHOR_NAME,WOODPECKER_PREV_COMMIT_AUTHOR_NAME",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_AUTHOR_AVATAR",
Name: "prev-commit-author-avatar",
EnvVar: "DRONE_PREV_COMMIT_AUTHOR_AVATAR,WOODPECKER_PREV_COMMIT_AUTHOR_AVATAR",
},
cli.StringFlag{
EnvVar: "WOODPECKER_PREV_COMMIT_AUTHOR_EMAIL",
Name: "prev-commit-author-email",
EnvVar: "DRONE_PREV_COMMIT_AUTHOR_EMAIL,WOODPECKER_PREV_COMMIT_AUTHOR_EMAIL",
},
cli.IntFlag{
EnvVar: "WOODPECKER_JOB_NUMBER",
Name: "job-number",
EnvVar: "DRONE_JOB_NUMBER,WOODPECKER_JOB_NUMBER",
},
cli.StringSliceFlag{
EnvVar: "WOODPECKER_ENV",
Name: "env, e",
EnvVar: "DRONE_ENV,WOODPECKER_ENV",
},
},
}
@ -286,7 +286,7 @@ var Command = cli.Command{
func exec(c *cli.Context) error {
file := c.Args().First()
if file == "" {
file = ".drone.yml"
file = ".woodpecker.yml"
}
dat, err := ioutil.ReadFile(file)
@ -314,7 +314,7 @@ func exec(c *cli.Context) error {
func execWithAxis(c *cli.Context, axis matrix.Axis) error {
file := c.Args().First()
if file == "" {
file = ".drone.yml"
file = ".woodpecker.yml"
}
metadata := metadataFromContext(c, axis)

View file

@ -22,83 +22,83 @@ import (
var flags = []cli.Flag{
cli.StringFlag{
EnvVar: "DRONE_SERVER,WOODPECKER_SERVER",
EnvVar: "WOODPECKER_SERVER",
Name: "server",
Usage: "drone server address",
Usage: "server address",
Value: "localhost:9000",
},
cli.StringFlag{
EnvVar: "DRONE_USERNAME,WOODPECKER_USERNAME",
EnvVar: "WOODPECKER_USERNAME",
Name: "username",
Usage: "drone auth username",
Usage: "auth username",
Value: "x-oauth-basic",
},
cli.StringFlag{
EnvVar: "DRONE_PASSWORD,DRONE_SECRET,WOODPECKER_PASSWORD,WOODPECKER_SECRET",
EnvVar: "WOODPECKER_AGENT_SECRET",
Name: "password",
Usage: "server-agent shared password",
},
cli.BoolTFlag{
EnvVar: "DRONE_DEBUG,WOODPECKER_DEBUG",
EnvVar: "WOODPECKER_DEBUG",
Name: "debug",
Usage: "enable agent debug mode",
},
cli.BoolFlag{
EnvVar: "DRONE_DEBUG_PRETTY,WOODPECKER_DEBUG_PRETTY",
EnvVar: "WOODPECKER_DEBUG_PRETTY",
Name: "pretty",
Usage: "enable pretty-printed debug output",
},
cli.BoolTFlag{
EnvVar: "DRONE_DEBUG_NOCOLOR,WOODPECKER_DEBUG_NOCOLOR",
EnvVar: "WOODPECKER_DEBUG_NOCOLOR",
Name: "nocolor",
Usage: "disable colored debug output",
},
cli.StringFlag{
EnvVar: "DRONE_HOSTNAME,HOSTNAME,WOODPECKER_HOSTNAME,HOSTNAME",
EnvVar: "WOODPECKER_HOSTNAME",
Name: "hostname",
Usage: "agent hostname",
},
cli.StringFlag{
EnvVar: "DRONE_PLATFORM,WOODPECKER_PLATFORM",
EnvVar: "WOODPECKER_PLATFORM",
Name: "platform",
Usage: "restrict builds by platform conditions",
Value: "linux/amd64",
},
cli.StringFlag{
EnvVar: "DRONE_FILTER,WOODPECKER_FILTER",
EnvVar: "WOODPECKER_FILTER",
Name: "filter",
Usage: "filter expression to restrict builds by label",
},
cli.IntFlag{
EnvVar: "DRONE_MAX_PROCS,WOODPECKER_MAX_PROCS",
EnvVar: "WOODPECKER_MAX_PROCS",
Name: "max-procs",
Usage: "agent parallel builds",
Value: 1,
},
cli.BoolTFlag{
EnvVar: "DRONE_HEALTHCHECK,WOODPECKER_HEALTHCHECK",
EnvVar: "WOODPECKER_HEALTHCHECK",
Name: "healthcheck",
Usage: "enable healthcheck endpoint",
},
cli.DurationFlag{
EnvVar: "DRONE_KEEPALIVE_TIME,WOODPECKER_KEEPALIVE_TIME",
EnvVar: "WOODPECKER_KEEPALIVE_TIME",
Name: "keepalive-time",
Usage: "after a duration of this time of no activity, the agent pings the server to check if the transport is still alive",
},
cli.DurationFlag{
EnvVar: "DRONE_KEEPALIVE_TIMEOUT,WOODPECKER_KEEPALIVE_TIMEOUT",
EnvVar: "WOODPECKER_KEEPALIVE_TIMEOUT",
Name: "keepalive-timeout",
Usage: "after pinging for a keepalive check, the agent waits for a duration of this time before closing the connection if no activity",
Value: time.Second * 20,
},
cli.BoolFlag{
EnvVar: "WOODPECKER_GRPC_SECURE",
Name: "secure-grpc",
Usage: "should the connection to DRONE_SERVER be made using a secure transport",
EnvVar: "DRONE_GRPC_SECURE,WOODPECKER_GRPC_SECURE",
Usage: "should the connection to WOODPECKER_SERVER be made using a secure transport",
},
cli.BoolTFlag{
EnvVar: "WOODPECKER_GRPC_VERIFY",
Name: "skip-insecure-grpc",
Usage: "should the grpc server certificate be verified, only valid when DRONE_GRPC_SECURE is true",
EnvVar: "DRONE_GRPC_VERIFY,WOODPECKER_GRPC_VERIFY",
Usage: "should the grpc server certificate be verified, only valid when WOODPECKER_GRPC_SECURE is true",
},
}

View file

@ -28,18 +28,20 @@ func main() {
app.EnableBashCompletion = true
app.Flags = []cli.Flag{
cli.StringFlag{
EnvVar: "DRONE_TOKEN,WOODPECKER_TOKEN",
Name: "t, token",
Usage: "server auth token",
EnvVar: "WOODPECKER_TOKEN",
// TODO: rename to `token`
Name: "t, token",
Usage: "server auth token",
},
cli.StringFlag{
EnvVar: "DRONE_SERVER,WOODPECKER_SERVER",
Name: "s, server",
Usage: "server address",
EnvVar: "WOODPECKER_SERVER",
// TODO: rename to `server`
Name: "s, server",
Usage: "server address",
},
cli.BoolFlag{
EnvVar: "DRONE_SKIP_VERIFY,WOODPECKER_SKIP_VERIFY",
EnvVar: "WOODPECKER_SKIP_VERIFY",
Name: "skip-verify",
Usage: "skip ssl verification",
Hidden: true,

View file

@ -22,28 +22,28 @@ import (
var flags = []cli.Flag{
cli.BoolFlag{
EnvVar: "DRONE_DEBUG,WOODPECKER_DEBUG",
EnvVar: "WOODPECKER_DEBUG",
Name: "debug",
Usage: "enable server debug mode",
},
cli.StringFlag{
EnvVar: "DRONE_SERVER_HOST,DRONE_HOST,WOODPECKER_SERVER_HOST,WOODPECKER_HOST",
EnvVar: "WOODPECKER_HOST",
Name: "server-host",
Usage: "server fully qualified url (<scheme>://<host>)",
},
cli.StringFlag{
EnvVar: "DRONE_SERVER_ADDR,WOODPECKER_SERVER_ADDR",
EnvVar: "WOODPECKER_SERVER_ADDR",
Name: "server-addr",
Usage: "server address",
Value: ":8000",
},
cli.StringFlag{
EnvVar: "DRONE_SERVER_CERT,WOODPECKER_SERVER_CERT",
EnvVar: "WOODPECKER_SERVER_CERT",
Name: "server-cert",
Usage: "server ssl cert path",
},
cli.StringFlag{
EnvVar: "DRONE_SERVER_KEY,WOODPECKER_SERVER_KEY",
EnvVar: "WOODPECKER_SERVER_KEY",
Name: "server-key",
Usage: "server ssl key path",
},
@ -54,12 +54,12 @@ var flags = []cli.Flag{
Value: ":9000",
},
cli.BoolFlag{
EnvVar: "DRONE_LETS_ENCRYPT,WOODPECKER_LETS_ENCRYPT",
EnvVar: "WOODPECKER_LETS_ENCRYPT",
Name: "lets-encrypt",
Usage: "enable let's encrypt",
},
cli.BoolFlag{
EnvVar: "DRONE_QUIC,WOODPECKER_QUIC",
EnvVar: "WOODPECKER_QUIC",
Name: "quic",
Usage: "enable quic",
},
@ -70,39 +70,39 @@ var flags = []cli.Flag{
Hidden: true,
},
cli.StringSliceFlag{
EnvVar: "DRONE_ADMIN,WOODPECKER_ADMIN",
EnvVar: "WOODPECKER_ADMIN",
Name: "admin",
Usage: "list of admin users",
},
cli.StringSliceFlag{
EnvVar: "DRONE_ORGS,WOODPECKER_ORGS",
EnvVar: "WOODPECKER_ORGS",
Name: "orgs",
Usage: "list of approved organizations",
},
cli.StringSliceFlag{
EnvVar: "DRONE_REPO_OWNERS,WOODPECKER_REPO_OWNERS",
EnvVar: "WOODPECKER_REPO_OWNERS",
Name: "repo-owners",
Usage: "List of syncable repo owners",
},
cli.BoolFlag{
EnvVar: "DRONE_OPEN,WOODPECKER_OPEN",
EnvVar: "WOODPECKER_OPEN",
Name: "open",
Usage: "enable open user registration",
},
cli.StringFlag{
EnvVar: "DRONE_DOCS,WOODPECKER_DOCS",
EnvVar: "WOODPECKER_DOCS",
Name: "docs",
Usage: "link to user documentation",
Value: "https://woodpecker-ci.github.io/",
},
cli.DurationFlag{
EnvVar: "DRONE_SESSION_EXPIRES,WOODPECKER_SESSION_EXPIRES",
EnvVar: "WOODPECKER_SESSION_EXPIRES",
Name: "session-expires",
Usage: "session expiration time",
Value: time.Hour * 72,
},
cli.StringSliceFlag{
EnvVar: "DRONE_ESCALATE,WOODPECKER_ESCALATE",
EnvVar: "WOODPECKER_ESCALATE",
Name: "escalate",
Usage: "images to run in privileged mode",
Value: &cli.StringSlice{
@ -112,55 +112,55 @@ var flags = []cli.Flag{
},
},
cli.StringSliceFlag{
EnvVar: "DRONE_VOLUME,WOODPECKER_VOLUME",
EnvVar: "WOODPECKER_VOLUME",
Name: "volume",
},
cli.StringFlag{
EnvVar: "DRONE_DOCKER_CONFIG,WOODPECKER_DOCKER_CONFIG",
EnvVar: "WOODPECKER_DOCKER_CONFIG",
Name: "docker-config",
},
cli.StringSliceFlag{
EnvVar: "DRONE_ENVIRONMENT,WOODPECKER_ENVIRONMENT",
EnvVar: "WOODPECKER_ENVIRONMENT",
Name: "environment",
},
cli.StringSliceFlag{
EnvVar: "DRONE_NETWORK,WOODPECKER_NETWORK",
EnvVar: "WOODPECKER_NETWORK",
Name: "network",
},
cli.StringFlag{
EnvVar: "DRONE_AGENT_SECRET,DRONE_SECRET,WOODPECKER_AGENT_SECRET,WOODPECKER_SECRET",
EnvVar: "WOODPECKER_AGENT_SECRET",
Name: "agent-secret",
Usage: "server-agent shared password",
},
cli.StringFlag{
EnvVar: "DRONE_SECRET_ENDPOINT,WOODPECKER_SECRET_ENDPOINT",
EnvVar: "WOODPECKER_SECRET_ENDPOINT",
Name: "secret-service",
Usage: "secret plugin endpoint",
},
cli.StringFlag{
EnvVar: "DRONE_REGISTRY_ENDPOINT,WOODPECKER_REGISTRY_ENDPOINT",
EnvVar: "WOODPECKER_REGISTRY_ENDPOINT",
Name: "registry-service",
Usage: "registry plugin endpoint",
},
cli.StringFlag{
EnvVar: "DRONE_GATEKEEPER_ENDPOINT,WOODPECKER_GATEKEEPER_ENDPOINT",
EnvVar: "WOODPECKER_GATEKEEPER_ENDPOINT",
Name: "gating-service",
Usage: "gated build endpoint",
},
cli.StringFlag{
EnvVar: "DRONE_DATABASE_DRIVER,DATABASE_DRIVER,WOODPECKER_DATABASE_DRIVER,DATABASE_DRIVER",
EnvVar: "WOODPECKER_DATABASE_DRIVER",
Name: "driver",
Usage: "database driver",
Value: "sqlite3",
},
cli.StringFlag{
EnvVar: "DRONE_DATABASE_DATASOURCE,DATABASE_CONFIG,WOODPECKER_DATABASE_DATASOURCE,DATABASE_CONFIG",
EnvVar: "WOODPECKER_DATABASE_DATASOURCE",
Name: "datasource",
Usage: "database driver configuration string",
Value: "drone.sqlite",
},
cli.StringFlag{
EnvVar: "DRONE_PROMETHEUS_AUTH_TOKEN,WOODPECKER_PROMETHEUS_AUTH_TOKEN",
EnvVar: "WOODPECKER_PROMETHEUS_AUTH_TOKEN",
Name: "prometheus-auth-token",
Usage: "token to secure prometheus metrics endpoint",
Value: "",
@ -169,32 +169,32 @@ var flags = []cli.Flag{
// resource limit parameters
//
cli.Int64Flag{
EnvVar: "DRONE_LIMIT_MEM_SWAP,WOODPECKER_LIMIT_MEM_SWAP",
EnvVar: "WOODPECKER_LIMIT_MEM_SWAP",
Name: "limit-mem-swap",
Usage: "maximum swappable memory allowed in bytes",
},
cli.Int64Flag{
EnvVar: "DRONE_LIMIT_MEM,WOODPECKER_LIMIT_MEM",
EnvVar: "WOODPECKER_LIMIT_MEM",
Name: "limit-mem",
Usage: "maximum memory allowed in bytes",
},
cli.Int64Flag{
EnvVar: "DRONE_LIMIT_SHM_SIZE,WOODPECKER_LIMIT_SHM_SIZE",
EnvVar: "WOODPECKER_LIMIT_SHM_SIZE",
Name: "limit-shm-size",
Usage: "docker compose /dev/shm allowed in bytes",
},
cli.Int64Flag{
EnvVar: "DRONE_LIMIT_CPU_QUOTA,WOODPECKER_LIMIT_CPU_QUOTA",
EnvVar: "WOODPECKER_LIMIT_CPU_QUOTA",
Name: "limit-cpu-quota",
Usage: "impose a cpu quota",
},
cli.Int64Flag{
EnvVar: "DRONE_LIMIT_CPU_SHARES,WOODPECKER_LIMIT_CPU_SHARES",
EnvVar: "WOODPECKER_LIMIT_CPU_SHARES",
Name: "limit-cpu-shares",
Usage: "change the cpu shares",
},
cli.StringFlag{
EnvVar: "DRONE_LIMIT_CPU_SET,WOODPECKER_LIMIT_CPU_SET",
EnvVar: "WOODPECKER_LIMIT_CPU_SET",
Name: "limit-cpu-set",
Usage: "set the cpus allowed to execute containers",
},
@ -202,34 +202,34 @@ var flags = []cli.Flag{
// remote parameters
//
cli.BoolFlag{
EnvVar: "DRONE_GITHUB,WOODPECKER_GITHUB",
EnvVar: "WOODPECKER_GITHUB",
Name: "github",
Usage: "github driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_URL,WOODPECKER_GITHUB_URL",
EnvVar: "WOODPECKER_GITHUB_URL",
Name: "github-server",
Usage: "github server address",
Value: "https://github.com",
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_CONTEXT,WOODPECKER_GITHUB_CONTEXT",
EnvVar: "WOODPECKER_GITHUB_CONTEXT",
Name: "github-context",
Usage: "github status context",
Value: "continuous-integration/drone",
Value: "continuous-integration/woodpecker",
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_CLIENT,WOODPECKER_GITHUB_CLIENT",
EnvVar: "WOODPECKER_GITHUB_CLIENT",
Name: "github-client",
Usage: "github oauth2 client id",
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_SECRET,WOODPECKER_GITHUB_SECRET",
EnvVar: "WOODPECKER_GITHUB_SECRET",
Name: "github-secret",
Usage: "github oauth2 client secret",
},
cli.StringSliceFlag{
EnvVar: "DRONE_GITHUB_SCOPE,WOODPECKER_GITHUB_SCOPE",
EnvVar: "WOODPECKER_GITHUB_SCOPE",
Name: "github-scope",
Usage: "github oauth scope",
Value: &cli.StringSlice{
@ -240,232 +240,232 @@ var flags = []cli.Flag{
},
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_GIT_USERNAME,WOODPECKER_GITHUB_GIT_USERNAME",
EnvVar: "WOODPECKER_GITHUB_GIT_USERNAME",
Name: "github-git-username",
Usage: "github machine user username",
},
cli.StringFlag{
EnvVar: "DRONE_GITHUB_GIT_PASSWORD,WOODPECKER_GITHUB_GIT_PASSWORD",
EnvVar: "WOODPECKER_GITHUB_GIT_PASSWORD",
Name: "github-git-password",
Usage: "github machine user password",
},
cli.BoolTFlag{
EnvVar: "DRONE_GITHUB_MERGE_REF,WOODPECKER_GITHUB_MERGE_REF",
EnvVar: "WOODPECKER_GITHUB_MERGE_REF",
Name: "github-merge-ref",
Usage: "github pull requests use merge ref",
},
cli.BoolFlag{
EnvVar: "DRONE_GITHUB_PRIVATE_MODE,WOODPECKER_GITHUB_PRIVATE_MODE",
EnvVar: "WOODPECKER_GITHUB_PRIVATE_MODE",
Name: "github-private-mode",
Usage: "github is running in private mode",
},
cli.BoolFlag{
EnvVar: "DRONE_GITHUB_SKIP_VERIFY,WOODPECKER_GITHUB_SKIP_VERIFY",
EnvVar: "WOODPECKER_GITHUB_SKIP_VERIFY",
Name: "github-skip-verify",
Usage: "github skip ssl verification",
},
cli.BoolFlag{
EnvVar: "DRONE_GOGS,WOODPECKER_GOGS",
EnvVar: "WOODPECKER_GOGS",
Name: "gogs",
Usage: "gogs driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_GOGS_URL,WOODPECKER_GOGS_URL",
EnvVar: "WOODPECKER_GOGS_URL",
Name: "gogs-server",
Usage: "gogs server address",
Value: "https://github.com",
},
cli.StringFlag{
EnvVar: "DRONE_GOGS_GIT_USERNAME,WOODPECKER_GOGS_GIT_USERNAME",
EnvVar: "WOODPECKER_GOGS_GIT_USERNAME",
Name: "gogs-git-username",
Usage: "gogs service account username",
},
cli.StringFlag{
EnvVar: "DRONE_GOGS_GIT_PASSWORD,WOODPECKER_GOGS_GIT_PASSWORD",
EnvVar: "WOODPECKER_GOGS_GIT_PASSWORD",
Name: "gogs-git-password",
Usage: "gogs service account password",
},
cli.BoolFlag{
EnvVar: "DRONE_GOGS_PRIVATE_MODE,WOODPECKER_GOGS_PRIVATE_MODE",
EnvVar: "WOODPECKER_GOGS_PRIVATE_MODE",
Name: "gogs-private-mode",
Usage: "gogs private mode enabled",
},
cli.BoolFlag{
EnvVar: "DRONE_GOGS_SKIP_VERIFY,WOODPECKER_GOGS_SKIP_VERIFY",
EnvVar: "WOODPECKER_GOGS_SKIP_VERIFY",
Name: "gogs-skip-verify",
Usage: "gogs skip ssl verification",
},
cli.BoolFlag{
EnvVar: "DRONE_GITEA,WOODPECKER_GITEA",
EnvVar: "WOODPECKER_GITEA",
Name: "gitea",
Usage: "gitea driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_URL,WOODPECKER_GITEA_URL",
EnvVar: "WOODPECKER_GITEA_URL",
Name: "gitea-server",
Usage: "gitea server address",
Value: "https://try.gitea.io",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_CLIENT,WOODPECKER_GITEA_CLIENT",
EnvVar: "WOODPECKER_GITEA_CLIENT",
Name: "gitea-client",
Usage: "gitea oauth2 client id",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_SECRET,WOODPECKER_GITEA_SECRET",
EnvVar: "WOODPECKER_GITEA_SECRET",
Name: "gitea-secret",
Usage: "gitea oauth2 client secret",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_CONTEXT,WOODPECKER_GITEA_CONTEXT",
EnvVar: "WOODPECKER_GITEA_CONTEXT",
Name: "gitea-context",
Usage: "gitea status context",
Value: "continuous-integration/drone",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_GIT_USERNAME,WOODPECKER_GITEA_GIT_USERNAME",
EnvVar: "WOODPECKER_GITEA_GIT_USERNAME",
Name: "gitea-git-username",
Usage: "gitea service account username",
},
cli.StringFlag{
EnvVar: "DRONE_GITEA_GIT_PASSWORD,WOODPECKER_GITEA_GIT_PASSWORD",
EnvVar: "WOODPECKER_GITEA_GIT_PASSWORD",
Name: "gitea-git-password",
Usage: "gitea service account password",
},
cli.BoolFlag{
EnvVar: "DRONE_GITEA_PRIVATE_MODE,WOODPECKER_GITEA_PRIVATE_MODE",
EnvVar: "WOODPECKER_GITEA_PRIVATE_MODE",
Name: "gitea-private-mode",
Usage: "gitea private mode enabled",
},
cli.BoolFlag{
EnvVar: "DRONE_GITEA_SKIP_VERIFY,WOODPECKER_GITEA_SKIP_VERIFY",
EnvVar: "WOODPECKER_GITEA_SKIP_VERIFY",
Name: "gitea-skip-verify",
Usage: "gitea skip ssl verification",
},
cli.BoolFlag{
EnvVar: "DRONE_BITBUCKET,WOODPECKER_BITBUCKET",
EnvVar: "WOODPECKER_BITBUCKET",
Name: "bitbucket",
Usage: "bitbucket driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_BITBUCKET_CLIENT,WOODPECKER_BITBUCKET_CLIENT",
EnvVar: "WOODPECKER_BITBUCKET_CLIENT",
Name: "bitbucket-client",
Usage: "bitbucket oauth2 client id",
},
cli.StringFlag{
EnvVar: "DRONE_BITBUCKET_SECRET,WOODPECKER_BITBUCKET_SECRET",
EnvVar: "WOODPECKER_BITBUCKET_SECRET",
Name: "bitbucket-secret",
Usage: "bitbucket oauth2 client secret",
},
cli.BoolFlag{
EnvVar: "DRONE_GITLAB,WOODPECKER_GITLAB",
EnvVar: "WOODPECKER_GITLAB",
Name: "gitlab",
Usage: "gitlab driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_GITLAB_URL,WOODPECKER_GITLAB_URL",
EnvVar: "WOODPECKER_GITLAB_URL",
Name: "gitlab-server",
Usage: "gitlab server address",
Value: "https://gitlab.com",
},
cli.StringFlag{
EnvVar: "DRONE_GITLAB_CLIENT,WOODPECKER_GITLAB_CLIENT",
EnvVar: "WOODPECKER_GITLAB_CLIENT",
Name: "gitlab-client",
Usage: "gitlab oauth2 client id",
},
cli.StringFlag{
EnvVar: "DRONE_GITLAB_SECRET,WOODPECKER_GITLAB_SECRET",
EnvVar: "WOODPECKER_GITLAB_SECRET",
Name: "gitlab-secret",
Usage: "gitlab oauth2 client secret",
},
cli.StringFlag{
EnvVar: "DRONE_GITLAB_GIT_USERNAME,WOODPECKER_GITLAB_GIT_USERNAME",
EnvVar: "WOODPECKER_GITLAB_GIT_USERNAME",
Name: "gitlab-git-username",
Usage: "gitlab service account username",
},
cli.StringFlag{
EnvVar: "DRONE_GITLAB_GIT_PASSWORD,WOODPECKER_GITLAB_GIT_PASSWORD",
EnvVar: "WOODPECKER_GITLAB_GIT_PASSWORD",
Name: "gitlab-git-password",
Usage: "gitlab service account password",
},
cli.BoolFlag{
EnvVar: "DRONE_GITLAB_SKIP_VERIFY,WOODPECKER_GITLAB_SKIP_VERIFY",
EnvVar: "WOODPECKER_GITLAB_SKIP_VERIFY",
Name: "gitlab-skip-verify",
Usage: "gitlab skip ssl verification",
},
cli.BoolFlag{
EnvVar: "DRONE_GITLAB_PRIVATE_MODE,WOODPECKER_GITLAB_PRIVATE_MODE",
EnvVar: "WOODPECKER_GITLAB_PRIVATE_MODE",
Name: "gitlab-private-mode",
Usage: "gitlab is running in private mode",
},
cli.BoolFlag{
EnvVar: "DRONE_GITLAB_V3_API,WOODPECKER_GITLAB_V3_API",
EnvVar: "WOODPECKER_GITLAB_V3_API",
Name: "gitlab-v3-api",
Usage: "gitlab is running the v3 api",
},
cli.BoolFlag{
EnvVar: "DRONE_STASH,WOODPECKER_STASH",
EnvVar: "WOODPECKER_STASH",
Name: "stash",
Usage: "stash driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_URL,WOODPECKER_STASH_URL",
EnvVar: "WOODPECKER_STASH_URL",
Name: "stash-server",
Usage: "stash server address",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_CONSUMER_KEY,WOODPECKER_STASH_CONSUMER_KEY",
EnvVar: "WOODPECKER_STASH_CONSUMER_KEY",
Name: "stash-consumer-key",
Usage: "stash oauth1 consumer key",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_CONSUMER_RSA,WOODPECKER_STASH_CONSUMER_RSA",
EnvVar: "WOODPECKER_STASH_CONSUMER_RSA",
Name: "stash-consumer-rsa",
Usage: "stash oauth1 private key file",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_CONSUMER_RSA_STRING,WOODPECKER_STASH_CONSUMER_RSA_STRING",
EnvVar: "WOODPECKER_STASH_CONSUMER_RSA_STRING",
Name: "stash-consumer-rsa-string",
Usage: "stash oauth1 private key string",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_GIT_USERNAME,WOODPECKER_STASH_GIT_USERNAME",
EnvVar: "WOODPECKER_STASH_GIT_USERNAME",
Name: "stash-git-username",
Usage: "stash service account username",
},
cli.StringFlag{
EnvVar: "DRONE_STASH_GIT_PASSWORD,WOODPECKER_STASH_GIT_PASSWORD",
EnvVar: "WOODPECKER_STASH_GIT_PASSWORD",
Name: "stash-git-password",
Usage: "stash service account password",
},
cli.BoolFlag{
EnvVar: "DRONE_STASH_SKIP_VERIFY,WOODPECKER_STASH_SKIP_VERIFY",
EnvVar: "WOODPECKER_STASH_SKIP_VERIFY",
Name: "stash-skip-verify",
Usage: "stash skip ssl verification",
},
cli.BoolFlag{
EnvVar: "DRONE_CODING,WOODPECKER_CODING",
EnvVar: "WOODPECKER_CODING",
Name: "coding",
Usage: "coding driver is enabled",
},
cli.StringFlag{
EnvVar: "DRONE_CODING_URL,WOODPECKER_CODING_URL",
EnvVar: "WOODPECKER_CODING_URL",
Name: "coding-server",
Usage: "coding server address",
Value: "https://coding.net",
},
cli.StringFlag{
EnvVar: "DRONE_CODING_CLIENT,WOODPECKER_CODING_CLIENT",
EnvVar: "WOODPECKER_CODING_CLIENT",
Name: "coding-client",
Usage: "coding oauth2 client id",
},
cli.StringFlag{
EnvVar: "DRONE_CODING_SECRET,WOODPECKER_CODING_SECRET",
EnvVar: "WOODPECKER_CODING_SECRET",
Name: "coding-secret",
Usage: "coding oauth2 client secret",
},
cli.StringSliceFlag{
EnvVar: "DRONE_CODING_SCOPE,WOODPECKER_CODING_SCOPE",
EnvVar: "WOODPECKER_CODING_SCOPE",
Name: "coding-scope",
Usage: "coding oauth scope",
Value: &cli.StringSlice{
@ -475,28 +475,28 @@ var flags = []cli.Flag{
},
},
cli.StringFlag{
EnvVar: "DRONE_CODING_GIT_MACHINE,WOODPECKER_CODING_GIT_MACHINE",
EnvVar: "WOODPECKER_CODING_GIT_MACHINE",
Name: "coding-git-machine",
Usage: "coding machine name",
Value: "git.coding.net",
},
cli.StringFlag{
EnvVar: "DRONE_CODING_GIT_USERNAME,WOODPECKER_CODING_GIT_USERNAME",
EnvVar: "WOODPECKER_CODING_GIT_USERNAME",
Name: "coding-git-username",
Usage: "coding machine user username",
},
cli.StringFlag{
EnvVar: "DRONE_CODING_GIT_PASSWORD,WOODPECKER_CODING_GIT_PASSWORD",
EnvVar: "WOODPECKER_CODING_GIT_PASSWORD",
Name: "coding-git-password",
Usage: "coding machine user password",
},
cli.BoolFlag{
EnvVar: "DRONE_CODING_SKIP_VERIFY,WOODPECKER_CODING_SKIP_VERIFY",
EnvVar: "WOODPECKER_CODING_SKIP_VERIFY",
Name: "coding-skip-verify",
Usage: "coding skip ssl verification",
},
cli.DurationFlag{
EnvVar: "DRONE_KEEPALIVE_MIN_TIME,WOODPECKER_KEEPALIVE_MIN_TIME",
EnvVar: "WOODPECKER_KEEPALIVE_MIN_TIME",
Name: "keepalive-min-time",
Usage: "server-side enforcement policy on the minimum amount of time a client should wait before sending a keepalive ping.",
},

View file

@ -62,26 +62,25 @@ func loop(c *cli.Context) error {
logrus.SetLevel(logrus.WarnLevel)
}
// must configure the drone_host variable
if c.String("server-host") == "" {
logrus.Fatalln("DRONE_HOST/DRONE_SERVER_HOST/WOODPECKER_HOST/WOODPECKER_SERVER_HOST is not properly configured")
logrus.Fatalln("WOODPECKER_HOST is not properly configured")
}
if !strings.Contains(c.String("server-host"), "://") {
logrus.Fatalln(
"DRONE_HOST/DRONE_SERVER_HOST/WOODPECKER_HOST/WOODPECKER_SERVER_HOST must be <scheme>://<hostname> format",
"WOODPECKER_HOST must be <scheme>://<hostname> format",
)
}
if strings.Contains(c.String("server-host"), "://localhost") {
logrus.Warningln(
"DRONE_HOST/DRONE_SERVER_HOST/WOODPECKER_HOST/WOODPECKER_SERVER_HOST should probably be publicly accessible (not localhost)",
"WOODPECKER_HOST should probably be publicly accessible (not localhost)",
)
}
if strings.HasSuffix(c.String("server-host"), "/") {
logrus.Fatalln(
"DRONE_HOST/DRONE_SERVER_HOST/WOODPECKER_HOST/WOODPECKER_SERVER_HOST must not have trailing slash",
"WOODPECKER_HOST must not have trailing slash",
)
}

View file

@ -18,9 +18,6 @@ import (
"fmt"
"time"
"github.com/dimfeld/httptreemux"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/woodpecker-ci/woodpecker/server"
"github.com/woodpecker-ci/woodpecker/server/model"
"github.com/woodpecker-ci/woodpecker/server/plugins/environments"
@ -39,9 +36,13 @@ import (
"github.com/woodpecker-ci/woodpecker/server/store"
"github.com/woodpecker-ci/woodpecker/server/store/datastore"
"github.com/woodpecker-ci/woodpecker/server/web"
"golang.org/x/sync/errgroup"
"github.com/dimfeld/httptreemux"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"golang.org/x/sync/errgroup"
)
func setupStore(c *cli.Context) store.Store {
@ -117,7 +118,7 @@ func setupGogs(c *cli.Context) (remote.Remote, error) {
// helper function to setup the Gitea remote from the CLI arguments.
func setupGitea(c *cli.Context) (remote.Remote, error) {
return gitea.New(gitea.Opts{
opts := gitea.Opts{
URL: c.String("gitea-server"),
Context: c.String("gitea-context"),
Username: c.String("gitea-git-username"),
@ -126,7 +127,11 @@ func setupGitea(c *cli.Context) (remote.Remote, error) {
Secret: c.String("gitea-secret"),
PrivateMode: c.Bool("gitea-private-mode"),
SkipVerify: c.Bool("gitea-skip-verify"),
})
}
if len(opts.URL) == 0 {
logrus.Fatalln("WOODPECKER_GITEA_URL must be set")
}
return gitea.New(opts)
}
// helper function to setup the Stash remote from the CLI arguments.

View file

@ -13,11 +13,11 @@ services:
environment:
- WOODPECKER_OPEN=true
- WOODPECKER_ADMIN=laszlocph
- WOODPECKER_HOST=${HOST}
- WOODPECKER_HOST=${WOODPECKER_HOST}
- WOODPECKER_GITHUB=true
- WOODPECKER_GITHUB_CLIENT=${GITHUB_CLIENT}
- WOODPECKER_GITHUB_SECRET=${GITHUB_SECRET}
- WOODPECKER_SECRET=${WOODPECKER_SECRET}
- WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT}
- WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET}
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
woodpecker-agent:
build:
context: .
@ -27,5 +27,5 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_SECRET=${WOODPECKER_SECRET}
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
- WOODPECKER_MAX_PROCS=2

View file

@ -40,7 +40,7 @@ services:
- WOODPECKER_GITHUB=true
- WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT}
- WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET}
- WOODPECKER_SECRET=${WOODPECKER_SECRET}
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:latest
@ -52,7 +52,7 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_SECRET=${WOODPECKER_SECRET}
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
volumes:
woodpecker-server-data:
@ -110,12 +110,12 @@ services:
[...]
environment:
- [...]
+ - WOODPECKER_SECRET=${WOODPECKER_SECRET}
+ - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
woodpecker-agent:
[...]
environment:
- [...]
+ - WOODPECKER_SECRET=${WOODPECKER_SECRET}
+ - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
```
## Authentication

View file

@ -10,7 +10,7 @@ Woodpecker does not support Kubernetes natively, but being a container first CI
# create secrets
kubectl create secret generic woodpecker-secret \
--namespace <namespace> \
--from-literal=WOODPECKER_SECRET=$(openssl rand -hex 32)
--from-literal=WOODPECKER_AGENT_SECRET=$(openssl rand -hex 32)
kubectl create secret generic woodpecker-github-client \
--namespace <namespace> \
@ -91,7 +91,7 @@ spec:
value: "xxx"
- name: "WOODPECKER_GITHUB_SECRET"
value: "xxx"
- name: "WOODPECKER_SECRET"
- name: "WOODPECKER_AGENT_SECRET"
value: "xxx"
volumeMounts:
- name: sqlite-volume
@ -183,7 +183,7 @@ spec:
env:
- name: WOODPECKER_SERVER
value: woodpecker.tools.svc.cluster.local:9000
- name: WOODPECKER_SECRET
- name: WOODPECKER_AGENT_SECRET
value: "xxx"
resources:
limits:

View file

@ -12,6 +12,13 @@ Some versions need some changes to the server configuration or the pipeline conf
Read more about it at the [Project Settings](/docs/usage/project-settings#pipeline-path)
- Dropped support for `DRONE_*` environment variables. The according `WOODPECKER_*` variables must be used instead.
Additionally some alternative namings have been removed to simplify maintenance:
- `WOODPECKER_AGENT_SECRET` replaces `WOODPECKER_SECRET`, `DRONE_SECRET`, `WOODPECKER_PASSWORD`, `DRONE_PASSWORD` and `DRONE_AGENT_SECRET`.
- `WOODPECKER_HOST` replaces `DRONE_HOST` and `DRONE_SERVER_HOST`.
- `WOODPECKER_DATABASE_DRIVER` replaces `DRONE_DATABASE_DRIVER` and `DATABASE_DRIVER`.
- `WOODPECKER_DATABASE_DATASOURCE` replaces `DRONE_DATABASE_DATASOURCE` and `DATABASE_CONFIG`.
- ...
## 0.14.0

View file

@ -63,7 +63,7 @@ type User struct {
// Admin indicates the user is a system administrator.
//
// NOTE: This is sourced from the DRONE_ADMINS environment variable and is no
// NOTE: This is sourced from the WOODPECKER_ADMINS environment variable and is no
// longer persisted in the database.
Admin bool `json:"admin,omitempty" meddler:"-"`

View file

@ -85,9 +85,9 @@ func openTest() *sql.DB {
driver = "sqlite3"
config = ":memory:"
)
if os.Getenv("DATABASE_DRIVER") != "" {
driver = os.Getenv("DATABASE_DRIVER")
config = os.Getenv("DATABASE_CONFIG")
if os.Getenv("WOODPECKER_DATABASE_DRIVER") != "" {
driver = os.Getenv("WOODPECKER_DATABASE_DRIVER")
config = os.Getenv("WOODPECKER_DATABASE_CONFIG")
}
return open(driver, config)
}
@ -100,9 +100,9 @@ func newTest() *datastore {
driver = "sqlite3"
config = ":memory:"
)
if os.Getenv("DATABASE_DRIVER") != "" {
driver = os.Getenv("DATABASE_DRIVER")
config = os.Getenv("DATABASE_CONFIG")
if os.Getenv("WOODPECKER_DATABASE_DRIVER") != "" {
driver = os.Getenv("WOODPECKER_DATABASE_DRIVER")
config = os.Getenv("WOODPECKER_DATABASE_CONFIG")
}
return &datastore{
DB: open(driver, config),