From 17b8867b96c6b72739cf2a1e252fd6574a930972 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 28 Sep 2021 15:43:44 +0200 Subject: [PATCH] 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`. --- .woodpecker/main.yml | 8 +- Dockerfile | 6 +- Dockerfile.alpine | 6 +- cli/exec/exec.go | 106 +++++------ cmd/agent/flags.go | 38 ++-- cmd/cli/main.go | 16 +- cmd/server/flags.go | 176 +++++++++---------- cmd/server/server.go | 9 +- cmd/server/setup.go | 17 +- docker-compose.example.yml | 10 +- docs/docs/30-administration/00-setup.md | 8 +- docs/docs/30-administration/80-kubernetes.md | 6 +- docs/docs/91-migrations.md | 7 + server/model/user.go | 2 +- server/store/datastore/store.go | 12 +- 15 files changed, 220 insertions(+), 207 deletions(-) diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index 420c52613..90f975d5b 100644 --- a/.woodpecker/main.yml +++ b/.woodpecker/main.yml @@ -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 diff --git a/Dockerfile b/Dockerfile index fb41046e8..ff0404698 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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/ diff --git a/Dockerfile.alpine b/Dockerfile.alpine index bf71fc37e..0b7d7677f 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -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/ diff --git a/cli/exec/exec.go b/cli/exec/exec.go index 91df8181f..f1551e8e0 100644 --- a/cli/exec/exec.go +++ b/cli/exec/exec.go @@ -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) diff --git a/cmd/agent/flags.go b/cmd/agent/flags.go index b1bca7feb..254b8d17d 100644 --- a/cmd/agent/flags.go +++ b/cmd/agent/flags.go @@ -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", }, } diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 077116e9a..b54a29a6e 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -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, diff --git a/cmd/server/flags.go b/cmd/server/flags.go index c97056a57..86b05590f 100644 --- a/cmd/server/flags.go +++ b/cmd/server/flags.go @@ -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 (://)", }, 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.", }, diff --git a/cmd/server/server.go b/cmd/server/server.go index 93e6e8edb..5c8056c07 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -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 :// format", + "WOODPECKER_HOST must be :// 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", ) } diff --git a/cmd/server/setup.go b/cmd/server/setup.go index fec1e22d1..0439c2e4c 100644 --- a/cmd/server/setup.go +++ b/cmd/server/setup.go @@ -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. diff --git a/docker-compose.example.yml b/docker-compose.example.yml index ac4720a53..5bc78969a 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -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 diff --git a/docs/docs/30-administration/00-setup.md b/docs/docs/30-administration/00-setup.md index e770548cc..d68b6781c 100644 --- a/docs/docs/30-administration/00-setup.md +++ b/docs/docs/30-administration/00-setup.md @@ -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 diff --git a/docs/docs/30-administration/80-kubernetes.md b/docs/docs/30-administration/80-kubernetes.md index 70b53de0d..4357efdc4 100644 --- a/docs/docs/30-administration/80-kubernetes.md +++ b/docs/docs/30-administration/80-kubernetes.md @@ -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 \ - --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 \ @@ -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: diff --git a/docs/docs/91-migrations.md b/docs/docs/91-migrations.md index 8e93a7114..b482373d1 100644 --- a/docs/docs/91-migrations.md +++ b/docs/docs/91-migrations.md @@ -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 diff --git a/server/model/user.go b/server/model/user.go index 8936ceb15..c56296850 100644 --- a/server/model/user.go +++ b/server/model/user.go @@ -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:"-"` diff --git a/server/store/datastore/store.go b/server/store/datastore/store.go index 57db87ccd..ec9e9f6ec 100644 --- a/server/store/datastore/store.go +++ b/server/store/datastore/store.go @@ -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),