From 06b95473442f81074bb3bf1db4f5fd9ae5c3b3fd Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:27:30 +0200 Subject: [PATCH 01/26] Remove deprecated env var variants --- cmd/drone-server/flags.go | 174 +++++++++++++++++++------------------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/cmd/drone-server/flags.go b/cmd/drone-server/flags.go index 127586e2f0..0d9df811d1 100644 --- a/cmd/drone-server/flags.go +++ b/cmd/drone-server/flags.go @@ -22,87 +22,87 @@ 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_SERVER_HOST,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", }, 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", }, cli.StringFlag{ - EnvVar: "DRONE_WWW,WOODPECKER_WWW", + EnvVar: "WOODPECKER_WWW", Name: "www", Usage: "serve the website from disk", 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_REPO_CONFIG,WOODPECKER_REPO_CONFIG", + EnvVar: "WOODPECKER_REPO_CONFIG", Name: "repo-config", Usage: "file path for the drone config", Value: ".drone.yml", }, cli.StringFlag{ - EnvVar: "DRONE_DOCS,WOODPECKER_DOCS", + EnvVar: "WOODPECKER_DOCS", Name: "docs", Usage: "link to user documentation", Value: "https://woodpecker.laszlo.cloud", }, 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,WOODPECKER_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", }, 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,222 +240,222 @@ 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_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{ @@ -465,28 +465,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.", }, From 968793e789af6f5c1e11714622d5a780ecb64781 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:27:41 +0200 Subject: [PATCH 02/26] Update log messages --- cmd/drone-server/server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index 8c909e0594..4587708628 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -60,18 +60,18 @@ func server(c *cli.Context) error { // 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_SERVER_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_SERVER_HOST must be :// format", ) } 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_SERVER_HOST must not have trailing slash", ) } From 92ad089a46ec1796bc12187da7f7c4e3febdc537 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:31:27 +0200 Subject: [PATCH 03/26] Remove deprecated env variants from agent --- cmd/drone-agent/flags.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/cmd/drone-agent/flags.go b/cmd/drone-agent/flags.go index b1bca7febc..a9c5fa8bb3 100644 --- a/cmd/drone-agent/flags.go +++ b/cmd/drone-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", Value: "localhost:9000", }, cli.StringFlag{ - EnvVar: "DRONE_USERNAME,WOODPECKER_USERNAME", + EnvVar: "WOODPECKER_USERNAME", Name: "username", Usage: "drone auth username", Value: "x-oauth-basic", }, cli.StringFlag{ - EnvVar: "DRONE_PASSWORD,DRONE_SECRET,WOODPECKER_PASSWORD,WOODPECKER_SECRET", + EnvVar: "WOODPECKER_PASSWORD,WOODPECKER_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: "HOSTNAME,WOODPECKER_HOSTNAME,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{ 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", + EnvVar: "WOODPECKER_GRPC_SECURE", }, cli.BoolTFlag{ 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", + EnvVar: "WOODPECKER_GRPC_VERIFY", }, } From cb51b03af480105c70d26a1f721f2f1d2232dafc Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:57:31 +0200 Subject: [PATCH 04/26] Remove WOODPECKER_PASSWORD, WOODPECKER_SECRET for WOODPECKER_AGENT_SECRET --- cmd/drone-agent/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-agent/flags.go b/cmd/drone-agent/flags.go index a9c5fa8bb3..0fb3aac84a 100644 --- a/cmd/drone-agent/flags.go +++ b/cmd/drone-agent/flags.go @@ -34,7 +34,7 @@ var flags = []cli.Flag{ Value: "x-oauth-basic", }, cli.StringFlag{ - EnvVar: "WOODPECKER_PASSWORD,WOODPECKER_SECRET", + EnvVar: "WOODPECKER_AGENT_SECRET", Name: "password", Usage: "server-agent shared password", }, From 6524976a7a746803b5c278409854324776a9ba75 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:58:12 +0200 Subject: [PATCH 05/26] Remove redundant HOSTNAME --- cmd/drone-agent/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-agent/flags.go b/cmd/drone-agent/flags.go index 0fb3aac84a..956b1c2300 100644 --- a/cmd/drone-agent/flags.go +++ b/cmd/drone-agent/flags.go @@ -54,7 +54,7 @@ var flags = []cli.Flag{ Usage: "disable colored debug output", }, cli.StringFlag{ - EnvVar: "HOSTNAME,WOODPECKER_HOSTNAME,HOSTNAME", + EnvVar: "WOODPECKER_HOSTNAME,HOSTNAME", Name: "hostname", Usage: "agent hostname", }, From e068ab6cfe23e17413f78ec1d72456bc1319b353 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:58:27 +0200 Subject: [PATCH 06/26] Re-order fields for consistency --- cmd/drone-agent/flags.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/drone-agent/flags.go b/cmd/drone-agent/flags.go index 956b1c2300..e86e1a8e4b 100644 --- a/cmd/drone-agent/flags.go +++ b/cmd/drone-agent/flags.go @@ -92,13 +92,13 @@ var flags = []cli.Flag{ Value: time.Second * 20, }, cli.BoolFlag{ + EnvVar: "WOODPECKER_GRPC_SECURE", Name: "secure-grpc", Usage: "should the connection to WOODPECKER_SERVER be made using a secure transport", - EnvVar: "WOODPECKER_GRPC_SECURE", }, cli.BoolTFlag{ + EnvVar: "WOODPECKER_GRPC_VERIFY", Name: "skip-insecure-grpc", Usage: "should the grpc server certificate be verified, only valid when WOODPECKER_GRPC_SECURE is true", - EnvVar: "WOODPECKER_GRPC_VERIFY", }, } From 1eddb3aa70e4b03cb752c29ffabfbfefc16ec8ac Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:59:05 +0200 Subject: [PATCH 07/26] Add flag "lets-encrypt-path" --- cmd/drone-server/flags.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmd/drone-server/flags.go b/cmd/drone-server/flags.go index 0d9df811d1..68572ec549 100644 --- a/cmd/drone-server/flags.go +++ b/cmd/drone-server/flags.go @@ -52,6 +52,11 @@ var flags = []cli.Flag{ Name: "lets-encrypt", Usage: "enable let's encrypt", }, + cli.StringFlag{ + EnvVar: "WOODPECKER_LETS_ENCRYPT_PATH", + Name: "lets-encrypt-path", + Usage: "base path for Let's Encrypt certificates", + }, cli.BoolFlag{ EnvVar: "WOODPECKER_QUIC", Name: "quic", From 54dc324d73a4458a7b8da54bbe328134d8d9f87e Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 20:59:17 +0200 Subject: [PATCH 08/26] Remove WOODPECKER_SECRET --- cmd/drone-server/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-server/flags.go b/cmd/drone-server/flags.go index 68572ec549..392191a131 100644 --- a/cmd/drone-server/flags.go +++ b/cmd/drone-server/flags.go @@ -133,7 +133,7 @@ var flags = []cli.Flag{ Name: "network", }, cli.StringFlag{ - EnvVar: "WOODPECKER_AGENT_SECRET,WOODPECKER_SECRET", + EnvVar: "WOODPECKER_AGENT_SECRET", Name: "agent-secret", Usage: "server-agent shared password", }, From db63d2d8c7e7a95a36d79b3916ff15e50e1a6ce1 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 21:01:31 +0200 Subject: [PATCH 09/26] Replace XDG_CACHE_HOME with WOODPECKER_LETS_ENCRYPT_PATH --- cmd/drone-server/server.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index 4587708628..3d0a57b716 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -166,7 +166,7 @@ func server(c *cli.Context) error { return err } - dir := cacheDir() + dir := cacheDir(c.String("lets-encrypt-path")) os.MkdirAll(dir, 0700) manager := &autocert.Manager{ @@ -276,10 +276,10 @@ func redirect(w http.ResponseWriter, req *http.Request) { http.Redirect(w, req, req.URL.String(), http.StatusMovedPermanently) } -func cacheDir() string { +func cacheDir(path string) string { const base = "golang-autocert" - if xdg := os.Getenv("XDG_CACHE_HOME"); xdg != "" { - return filepath.Join(xdg, base) + if path != "" { + return filepath.Join(path, base) } return filepath.Join(os.Getenv("HOME"), ".cache", base) } From 9602a82db068f011ae06d6acd77e78d86949034e Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 21:01:44 +0200 Subject: [PATCH 10/26] Update env vars in docker files --- Dockerfile | 6 +++--- Dockerfile.alpine | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index c101067d93..9c46441087 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 WOODPECKER_LETS_ENCRYPT_PATH=/var/lib/drone ADD release/drone-server /bin/ diff --git a/Dockerfile.alpine b/Dockerfile.alpine index a87da8f16c..6c9ae3648a 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 WOODPECKER_LETS_ENCRYPT_PATH=/var/lib/drone ADD release/drone-server /bin/ From 0b5851094bda0ce127921e922f4d2ce8e9203a16 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 31 May 2021 21:03:00 +0200 Subject: [PATCH 11/26] Remove WOODPECKER_HOST --- cmd/drone-server/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-server/flags.go b/cmd/drone-server/flags.go index 392191a131..e77ab37fe4 100644 --- a/cmd/drone-server/flags.go +++ b/cmd/drone-server/flags.go @@ -27,7 +27,7 @@ var flags = []cli.Flag{ Usage: "enable server debug mode", }, cli.StringFlag{ - EnvVar: "WOODPECKER_SERVER_HOST,WOODPECKER_HOST", + EnvVar: "WOODPECKER_SERVER_HOST", Name: "server-host", Usage: "server fully qualified url (://)", }, From 86c33fad743e74fbf066f1bdb512f7936ab2cd73 Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Mon, 7 Jun 2021 20:53:02 +0200 Subject: [PATCH 12/26] Revert removal of XDG_CACHE_HOME --- Dockerfile | 2 +- Dockerfile.alpine | 2 +- cmd/drone-server/server.go | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9c46441087..29fe5e9db8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ EXPOSE 8000 9000 80 443 ENV GODEBUG=netdns=go ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite ENV WOODPECKER_DATABASE_DRIVER=sqlite3 -ENV WOODPECKER_LETS_ENCRYPT_PATH=/var/lib/drone +ENV XDG_CACHE_HOME=/var/lib/drone ADD release/drone-server /bin/ diff --git a/Dockerfile.alpine b/Dockerfile.alpine index 6c9ae3648a..9ebc82a70d 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -6,7 +6,7 @@ RUN apk add -U --no-cache ca-certificates ENV GODEBUG=netdns=go ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite ENV WOODPECKER_DATABASE_DRIVER=sqlite3 -ENV WOODPECKER_LETS_ENCRYPT_PATH=/var/lib/drone +ENV XDG_CACHE_HOME=/var/lib/drone ADD release/drone-server /bin/ diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index 3d0a57b716..4587708628 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -166,7 +166,7 @@ func server(c *cli.Context) error { return err } - dir := cacheDir(c.String("lets-encrypt-path")) + dir := cacheDir() os.MkdirAll(dir, 0700) manager := &autocert.Manager{ @@ -276,10 +276,10 @@ func redirect(w http.ResponseWriter, req *http.Request) { http.Redirect(w, req, req.URL.String(), http.StatusMovedPermanently) } -func cacheDir(path string) string { +func cacheDir() string { const base = "golang-autocert" - if path != "" { - return filepath.Join(path, base) + if xdg := os.Getenv("XDG_CACHE_HOME"); xdg != "" { + return filepath.Join(xdg, base) } return filepath.Join(os.Getenv("HOME"), ".cache", base) } From ae448281332b7b4bdd7f2f9793aaef86ef46c8ad Mon Sep 17 00:00:00 2001 From: Marian Steinbach Date: Tue, 8 Jun 2021 09:39:57 +0200 Subject: [PATCH 13/26] Remove flag definition --- cmd/drone-server/flags.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cmd/drone-server/flags.go b/cmd/drone-server/flags.go index e77ab37fe4..9f6dcf2093 100644 --- a/cmd/drone-server/flags.go +++ b/cmd/drone-server/flags.go @@ -52,11 +52,6 @@ var flags = []cli.Flag{ Name: "lets-encrypt", Usage: "enable let's encrypt", }, - cli.StringFlag{ - EnvVar: "WOODPECKER_LETS_ENCRYPT_PATH", - Name: "lets-encrypt-path", - Usage: "base path for Let's Encrypt certificates", - }, cli.BoolFlag{ EnvVar: "WOODPECKER_QUIC", Name: "quic", From 869fee7946fd93dd149f8a037293ef6f149c7e0e Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 21 Sep 2021 08:42:26 +0200 Subject: [PATCH 14/26] cleanup cli env vars --- cli/drone/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/drone/main.go b/cli/drone/main.go index bf1233ad51..195bb602db 100644 --- a/cli/drone/main.go +++ b/cli/drone/main.go @@ -31,18 +31,18 @@ func main() { cli.StringFlag{ Name: "t, token", Usage: "server auth token", - EnvVar: "DRONE_TOKEN,WOODPECKER_TOKEN", + EnvVar: "WOODPECKER_TOKEN", }, cli.StringFlag{ Name: "s, server", Usage: "server address", - EnvVar: "DRONE_SERVER,WOODPECKER_SERVER", + EnvVar: "WOODPECKER_SERVER", }, cli.BoolFlag{ Name: "skip-verify", Usage: "skip ssl verfification", - EnvVar: "DRONE_SKIP_VERIFY,WOODPECKER_SKIP_VERIFY", + EnvVar: "WOODPECKER_SKIP_VERIFY", Hidden: true, }, cli.StringFlag{ From b17bde72e950ee3a2a50702aa228102094751674 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 21 Sep 2021 08:42:40 +0200 Subject: [PATCH 15/26] cleanup info text --- cmd/drone-server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/drone-server/server.go b/cmd/drone-server/server.go index e7ea2459f8..bb31a2c060 100644 --- a/cmd/drone-server/server.go +++ b/cmd/drone-server/server.go @@ -71,7 +71,7 @@ func server(c *cli.Context) error { 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_SERVER_HOST should probably be publicly accessible (not localhost)", ) } From 2a4af6bb59e8949ebe85a57876de6b8f82f4b30d Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Tue, 21 Sep 2021 08:42:49 +0200 Subject: [PATCH 16/26] add migrations --- docs/docs/91-migrations.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/docs/91-migrations.md b/docs/docs/91-migrations.md index 8e93a7114d..7b4906e0c4 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_SERVER_HOST` replaces `WOODPECKER_HOST`, `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 From 8d7286d855d4c1824c6a86e883b50afcf9f140e6 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 24 Sep 2021 20:02:47 +0200 Subject: [PATCH 17/26] replace DRONE_ prefix with WOODPECKER_ --- .woodpecker/main.yml | 8 +- charts/woodpecker-server/values.yaml | 2 +- cli/exec/exec.go | 106 +++++++++++++-------------- cmd/server/flags.go | 4 +- cmd/server/server.go | 1 - docker-compose.example.yml | 10 +-- model/user.go | 2 +- server/store/datastore/store.go | 12 +-- 8 files changed, 72 insertions(+), 73 deletions(-) diff --git a/.woodpecker/main.yml b/.woodpecker/main.yml index 420c526139..90f975d5b5 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/charts/woodpecker-server/values.yaml b/charts/woodpecker-server/values.yaml index b9019613ab..48c01eea41 100644 --- a/charts/woodpecker-server/values.yaml +++ b/charts/woodpecker-server/values.yaml @@ -9,7 +9,7 @@ image: env: WOODPECKER_ADMIN: "xxxx" - WOODPECKER_HOST: https://"xxxxxxx" + WOODPECKER_SERVER_HOST: https://"xxxxxxx" WOODPECKER_GITHUB: true extraSecretNamesForEnvFrom: diff --git a/cli/exec/exec.go b/cli/exec/exec.go index 91df8181f5..f1551e8e06 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/server/flags.go b/cmd/server/flags.go index d65915fde7..0101a43be2 100644 --- a/cmd/server/flags.go +++ b/cmd/server/flags.go @@ -307,12 +307,12 @@ var flags = []cli.Flag{ 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", }, diff --git a/cmd/server/server.go b/cmd/server/server.go index 2f47a03a26..fb935acc54 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -59,7 +59,6 @@ func loop(c *cli.Context) error { logrus.SetLevel(logrus.WarnLevel) } - // must configure the drone_host variable if c.String("server-host") == "" { logrus.Fatalln("WOODPECKER_SERVER_HOST is not properly configured") } diff --git a/docker-compose.example.yml b/docker-compose.example.yml index ac4720a53e..3c2a068d2c 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_SERVER_HOST=${WOODPECKER_SERVER_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/model/user.go b/model/user.go index 8936ceb154..c562968507 100644 --- a/model/user.go +++ b/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 57db87ccd0..ec9e9f6ec4 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), From f0d934e0ccced6c1dc7944bf992d46df7c054ee0 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 24 Sep 2021 20:37:11 +0200 Subject: [PATCH 18/26] simplify docker-compose samples --- docs/docs/20-usage/50-environment.md | 15 +--- docs/docs/30-administration/00-setup.md | 53 +++++++------- .../30-administration/10-server-config.md | 53 +++++--------- .../30-administration/20-vcs/20-github.md | 60 +++++----------- .../docs/30-administration/20-vcs/30-gitea.md | 52 ++++---------- .../30-administration/20-vcs/40-gitlab.md | 58 +++++----------- .../30-administration/20-vcs/50-bitbucket.md | 48 +++++-------- .../20-vcs/60-bitbucket_server.md | 69 +++++++------------ docs/docs/30-administration/30-database.md | 15 ++-- docs/docs/30-administration/60-ssl.md | 41 ++++++----- 10 files changed, 168 insertions(+), 296 deletions(-) diff --git a/docs/docs/20-usage/50-environment.md b/docs/docs/20-usage/50-environment.md index d26b11238c..b17bfaed98 100644 --- a/docs/docs/20-usage/50-environment.md +++ b/docs/docs/20-usage/50-environment.md @@ -95,23 +95,12 @@ This is the reference list of all environment variables available to your build If you want specific environment variables to be available in all of your builds use the `WOODPECKER_ENVIRONMENT` setting on the Woodpecker server. -```.env -WOODPECKER_ENVIRONMENT=first_var:value1,second_var:value2 -``` - ```.diff services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_ORGS=dolores,dogpatch - - WOODPECKER_ADMIN=johnsmith,janedoe - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + - [...] + - WOODPECKER_ENVIRONMENT=first_var:value1,second_var:value2 ``` diff --git a/docs/docs/30-administration/00-setup.md b/docs/docs/30-administration/00-setup.md index 2229b735e7..e770548cc2 100644 --- a/docs/docs/30-administration/00-setup.md +++ b/docs/docs/30-administration/00-setup.md @@ -12,9 +12,9 @@ A Woodpecker deployment consists of two parts: ## Installation -You can install Woodpecker [images](/docs/downloads#docker-images) on multiple ways: -- Using [docker-compose](https://docs.docker.com/compose/) -- By deploying to a [Kubernetes](/docs/administration/kubernetes) with manifests or a Helm charts +You can install Woodpecker on multiple ways: +- Using [docker-compose](/docs/administration/setup#docker-compose) with the official [docker images](/docs/downloads#docker-images) +- By deploying to a [Kubernetes](/docs/administration/kubernetes) with manifests or Woodpeckers official Helm charts - Using [binaries](/docs/downloads) ### docker-compose @@ -61,27 +61,27 @@ volumes: Woodpecker needs to know its own address. You must therefore provide the public address of it in `://` format. Please omit trailing slashes: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true + - [...] + - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} ``` As agents run pipeline steps as docker containers they require access to the host machine's Docker daemon: ```diff +# docker-compose.yml +version: '3' + services: + [...] woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - command: agent - restart: always - depends_on: [ woodpecker-server ] + [...] + volumes: + - /var/run/docker.sock:/var/run/docker.sock ``` @@ -89,37 +89,32 @@ services: Agents require the server address for agent-to-server communication: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - command: agent - restart: always - depends_on: [ woodpecker-server ] - volumes: - - /var/run/docker.sock:/var/run/docker.sock + [...] environment: + - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} ``` The server and agents use a shared secret to authenticate communication. This should be a random string of your choosing and should be kept private. You can generate such string with `openssl rand -hex 32`: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} + - [...] + - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest + [...] environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_DEBUG=true + - [...] + - WOODPECKER_SECRET=${WOODPECKER_SECRET} ``` diff --git a/docs/docs/30-administration/10-server-config.md b/docs/docs/30-administration/10-server-config.md index bcbccba56f..9cbbb39f2d 100644 --- a/docs/docs/30-administration/10-server-config.md +++ b/docs/docs/30-administration/10-server-config.md @@ -7,17 +7,17 @@ Registration is closed by default. This example enables open registration for users that are members of approved GitHub organizations. ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: + - [...] + - WOODPECKER_OPEN=true + - WOODPECKER_ORGS=dolores,dogpatch - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + ``` ## Administrators @@ -25,18 +25,15 @@ services: Administrators should also be enumerated in your configuration. ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_ORGS=dolores,dogpatch + - [...] + - WOODPECKER_ADMIN=johnsmith,janedoe - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} ``` @@ -47,18 +44,15 @@ Woodpecker operates with the user's OAuth permission. Due to the coarse permissi Use the `WOODPECKER_REPO_OWNERS` variable to filter which GitHub user's repos should be synced only. You typically want to put here your company's GitHub name. ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_ORGS=dolores,dogpatch + - [...] + - WOODPECKER_REPO_OWNERS=mycompany,mycompanyossgithubuser - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} ``` ## Global registry setting @@ -72,19 +66,8 @@ version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - woodpecker-server-data:/var/lib/drone/ - restart: always + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + - [...] + - WOODPECKER_DOCKER_CONFIG=/home/user/.docker/config.json ``` diff --git a/docs/docs/30-administration/20-vcs/20-github.md b/docs/docs/30-administration/20-vcs/20-github.md index 96f1a46935..efb38c37a8 100644 --- a/docs/docs/30-administration/20-vcs/20-github.md +++ b/docs/docs/30-administration/20-vcs/20-github.md @@ -1,37 +1,22 @@ # GitHub -Woodpecker comes with built-in support for GitHub and GitHub Enterprise. To enable GitHub you should configure the Woodpecker container using the following environment variables: +Woodpecker comes with built-in support for GitHub and GitHub Enterprise. To enable GitHub you should configure the Woodpecker server using the following environment variables: ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] + - WOODPECKER_GITHUB=true + - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} + - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + [...] ``` ## Registration @@ -46,35 +31,26 @@ Please use this screenshot for reference: This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. -`WOODPECKER_GITHUB=true` -: Set to true to enable the GitHub driver. +```shell +WOODPECKER_GITHUB=true # Set to true to enable the GitHub driver -`WOODPECKER_GITHUB_URL=https://github.com` -: GitHub server address. +WOODPECKER_GITHUB_URL=https://github.com # GitHub server address -`WOODPECKER_GITHUB_CLIENT` -: GitHub oauth2 client id. +WOODPECKER_GITHUB_CLIENT=... # GitHub oauth2 client id -`WOODPECKER_GITHUB_SECRET` -: GitHub oauth2 client secret. +WOODPECKER_GITHUB_SECRET=... # GitHub oauth2 client secret. -`WOODPECKER_GITHUB_SCOPE=repo,repo:status,user:email,read:org` -: Comma-separated GitHub oauth scope. +WOODPECKER_GITHUB_SCOPE=repo,repo:status,user:email,read:org # Comma-separated GitHub oauth scope. -`WOODPECKER_GITHUB_GIT_USERNAME` -: Optional. Use a single machine account username to clone all repositories. +WOODPECKER_GITHUB_GIT_USERNAME=... # Optional. Use a single machine account username to clone all repositories. -`WOODPECKER_GITHUB_GIT_PASSWORD` -: Optional. Use a single machine account password to clone all repositories. +WOODPECKER_GITHUB_GIT_PASSWORD=... # Optional. Use a single machine account password to clone all repositories. -`WOODPECKER_GITHUB_PRIVATE_MODE=false` -: Set to true if GitHub is running in private mode. +WOODPECKER_GITHUB_PRIVATE_MODE=false # Set to true if GitHub is running in private mode. -`WOODPECKER_GITHUB_MERGE_REF=true` -: Set to true to use the `refs/pulls/%d/merge` vs `refs/pulls/%d/head` +WOODPECKER_GITHUB_MERGE_REF=true # Set to true to use the `refs/pulls/%d/merge` vs `refs/pulls/%d/head` -`WOODPECKER_GITHUB_CONTEXT=continuous-integration/woodpecker` -: Customize the GitHub status message context +WOODPECKER_GITHUB_CONTEXT=continuous-integration/woodpecker # Customize the GitHub status message context -`WOODPECKER_GITHUB_SKIP_VERIFY=false` -: Set to true to disable SSL verification. +WOODPECKER_GITHUB_SKIP_VERIFY=false # Set to true to disable SSL verification +``` diff --git a/docs/docs/30-administration/20-vcs/30-gitea.md b/docs/docs/30-administration/20-vcs/30-gitea.md index 20083b3175..7904614dfb 100644 --- a/docs/docs/30-administration/20-vcs/30-gitea.md +++ b/docs/docs/30-administration/20-vcs/30-gitea.md @@ -3,36 +3,21 @@ Woodpecker comes with built-in support for Gitea. To enable Gitea you should configure the Woodpecker container using the following environment variables: ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] + - WOODPECKER_GITEA=true + - WOODPECKER_GITEA_URL=${WOODPECKER_GITEA_URL} + - WOODPECKER_GITEA_CLIENT=${WOODPECKER_GITEA_CLIENT} + - WOODPECKER_GITEA_SECRET=${WOODPECKER_GITEA_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + [...] ``` ## Registration @@ -46,29 +31,22 @@ Register your application with Gitea to create your client id and secret. You ca This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. -`WOODPECKER_GITEA=true` -: Set to true to enable the Gitea driver. +```shell +WOODPECKER_GITEA=true # Set to true to enable the Gitea driver -`WOODPECKER_GITEA_URL=https://try.gitea.io` -: Gitea server address. +WOODPECKER_GITEA_URL=https://try.gitea.io # Gitea server address -`WOODPECKER_GITEA_CLIENT` -: Gitea oauth2 client id. +WOODPECKER_GITEA_CLIENT=... # Gitea oauth2 client id -`WOODPECKER_GITEA_SECRET` -: Gitea oauth2 client secret. +WOODPECKER_GITEA_SECRET=... # Gitea oauth2 client secret -`WOODPECKER_GITEA_CONTEXT=continuous-integration/woodpecker` -: Customize the Gitea status message context +WOODPECKER_GITEA_CONTEXT=continuous-integration/woodpecker # Customize the Gitea status message context -`WOODPECKER_GITEA_GIT_USERNAME` -: Optional. Use a single machine account username to clone all repositories. +WOODPECKER_GITEA_GIT_USERNAME=... # Optional. Use a single machine account username to clone all repositories. -`WOODPECKER_GITEA_GIT_PASSWORD` -: Optional. Use a single machine account password to clone all repositories. +WOODPECKER_GITEA_GIT_PASSWORD=... # Optional. Use a single machine account password to clone all repositories. -`WOODPECKER_GITEA_PRIVATE_MODE=true` -: Set to true if Gitea is running in private mode. +WOODPECKER_GITEA_PRIVATE_MODE=true # Set to true if Gitea is running in private mode. -`WOODPECKER_GITEA_SKIP_VERIFY=false` -: Set to true to disable SSL verification. +WOODPECKER_GITEA_SKIP_VERIFY=false # Set to true to disable SSL verification. +``` diff --git a/docs/docs/30-administration/20-vcs/40-gitlab.md b/docs/docs/30-administration/20-vcs/40-gitlab.md index b1136ea19d..733b08b2ec 100644 --- a/docs/docs/30-administration/20-vcs/40-gitlab.md +++ b/docs/docs/30-administration/20-vcs/40-gitlab.md @@ -3,66 +3,46 @@ Woodpecker comes with built-in support for the GitLab version 8.2 and higher. To enable GitLab you should configure the Woodpecker container using the following environment variables: ```diff -version: '2' +# docker-compose.yml +version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always + [...] environment: + - WOODPECKER_GITLAB=true + - WOODPECKER_GITLAB_CLIENT=95c0282573633eb25e82 + - WOODPECKER_GITLAB_SECRET=30f5064039e6b359e075 + - WOODPECKER_GITLAB_URL=http://gitlab.mycompany.com - - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + [...] ``` -## Configuration +## Registration -This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. +You must register your application with GitLab in order to generate a Client and Secret. Navigate to your account settings and choose Applications from the menu, and click New Application. -`WOODPECKER_GITLAB=true` -: Set to true to enable the GitLab driver. +Please use `http://woodpecker.mycompany.com/authorize` as the Authorization callback URL. Grant `api` scope to the application. -`WOODPECKER_GITLAB_URL=https://gitlab.com` -: GitLab Server address. +## Configuration -`WOODPECKER_GITLAB_CLIENT` -: GitLab oauth2 client id. +This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. -`WOODPECKER_GITLAB_SECRET` -: GitLab oauth2 client secret. +```shell +WOODPECKER_GITLAB=true # Set to true to enable the GitLab driver -`WOODPECKER_GITLAB_GIT_USERNAME` -: Optional. Use a single machine account username to clone all repositories. +WOODPECKER_GITLAB_URL=https://gitlab.com # GitLab Server address -`WOODPECKER_GITLAB_GIT_PASSWORD` -: Optional. Use a single machine account password to clone all repositories. +WOODPECKER_GITLAB_CLIENT=... # GitLab oauth2 client id -`WOODPECKER_GITLAB_SKIP_VERIFY=false` -: Set to true to disable SSL verification. +WOODPECKER_GITLAB_SECRET=... # GitLab oauth2 client secret. -`WOODPECKER_GITLAB_PRIVATE_MODE=false` -: Set to true if GitLab is running in private mode. +WOODPECKER_GITLAB_GIT_USERNAME=... # Optional. Use a single machine account username to clone all repositories -## Registration +WOODPECKER_GITLAB_GIT_PASSWORD=... # Optional. Use a single machine account password to clone all repositories -You must register your application with GitLab in order to generate a Client and Secret. Navigate to your account settings and choose Applications from the menu, and click New Application. +WOODPECKER_GITLAB_SKIP_VERIFY=false # Set to true to disable SSL verification -Please use `http://woodpecker.mycompany.com/authorize` as the Authorization callback URL. Grant `api` scope to the application. +WOODPECKER_GITLAB_PRIVATE_MODE=false # Set to true if GitLab is running in private mode +``` diff --git a/docs/docs/30-administration/20-vcs/50-bitbucket.md b/docs/docs/30-administration/20-vcs/50-bitbucket.md index 1dfd2036f7..1f073a8579 100644 --- a/docs/docs/30-administration/20-vcs/50-bitbucket.md +++ b/docs/docs/30-administration/20-vcs/50-bitbucket.md @@ -3,50 +3,22 @@ Woodpecker comes with built-in support for Bitbucket Cloud. To enable Bitbucket Cloud you should configure the Woodpecker container using the following environment variables: ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] + - WOODPECKER_BITBUCKET=true + - WOODPECKER_BITBUCKET_CLIENT=95c0282573633eb25e82 + - WOODPECKER_BITBUCKET_SECRET=30f5064039e6b359e075 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + [...] ``` -## Configuration - -This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. - -`WOODPECKER_BITBUCKET=true` -: Set to true to enable the Bitbucket driver. - -`WOODPECKER_BITBUCKET_CLIENT` -: Bitbucket oauth2 client id - -`WOODPECKER_BITBUCKET_SECRET` -: Bitbucket oauth2 client secret - ## Registration You must register your application with Bitbucket in order to generate a client and secret. Navigate to your account settings and choose OAuth from the menu, and click Add Consumer. @@ -67,6 +39,18 @@ Repositories:Read Webhooks:Read and Write ``` +## Configuration + +This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. + +```shell +WOODPECKER_BITBUCKET=true # Set to true to enable the Bitbucket driver + +WOODPECKER_BITBUCKET_CLIENT=... # Bitbucket oauth2 client id + +WOODPECKER_BITBUCKET_SECRET=... # Bitbucket oauth2 client secret +``` + ## Missing Features Merge requests are not currently supported. We are interested in patches to include this functionality. If you are interested in contributing to Woodpecker and submitting a patch please [contact us](https://discord.gg/fcMQqSMXJy). diff --git a/docs/docs/30-administration/20-vcs/60-bitbucket_server.md b/docs/docs/30-administration/20-vcs/60-bitbucket_server.md index 35a763a0a0..84db219339 100644 --- a/docs/docs/30-administration/20-vcs/60-bitbucket_server.md +++ b/docs/docs/30-administration/20-vcs/60-bitbucket_server.md @@ -3,40 +3,25 @@ Woodpecker comes with experimental support for Bitbucket Server, formerly known as Atlassian Stash. To enable Bitbucket Server you should configure the Woodpecker container using the following environment variables: ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] + - WOODPECKER_STASH=true + - WOODPECKER_STASH_GIT_USERNAME=foo + - WOODPECKER_STASH_GIT_PASSWORD=bar + - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82 + - WOODPECKER_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem + - WOODPECKER_STASH_URL=http://stash.mycompany.com - - WOODPECKER_SECRET=${WOODPECKER_SECRET} volumes: + - /path/to/key.pem:/path/to/key.pem woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + [...] ``` ## Private Key File @@ -58,43 +43,47 @@ Please note that the private key file can be mounted into your Woodpecker conati Private key file mounted into your Woodpecker container at runtime as a volume. ```diff -version: '2' +# docker-compose.yml +version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] - WOODPECKER_STASH=true - WOODPECKER_STASH_GIT_USERNAME=foo - WOODPECKER_STASH_GIT_PASSWORD=bar - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82 + - WOODPECKER_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem - WOODPECKER_STASH_URL=http://stash.mycompany.com - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + volumes: + - /etc/bitbucket/key.pem:/etc/bitbucket/key.pem + + woodpecker-agent: + [...] ``` Private key as environment variable ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - [...] - WOODPECKER_STASH=true - WOODPECKER_STASH_GIT_USERNAME=foo - WOODPECKER_STASH_GIT_PASSWORD=bar - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82 + - WOODPECKER_STASH_CONSUMER_RSA_STRING=contentOfPemKeyAsString - WOODPECKER_STASH_URL=http://stash.mycompany.com - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + + woodpecker-agent: + [...] ``` ## Service Account @@ -112,24 +101,18 @@ Please use http://woodpecker.mycompany.com/authorize as the Authorization callba This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations. +```shell +WOODPECKER_STASH=true # Set to true to enable the Bitbucket Server (Stash) driver -`WOODPECKER_STASH=true` -: Set to true to enable the Bitbucket Server (Stash) driver. +WOODPECKER_STASH_URL # Bitbucket Server address. -`WOODPECKER_STASH_URL` -: Bitbucket Server address. +WOODPECKER_STASH_CONSUMER_KEY=... # Bitbucket Server oauth1 consumer key -`WOODPECKER_STASH_CONSUMER_KEY` -: Bitbucket Server oauth1 consumer key +WOODPECKER_STASH_CONSUMER_RSA=... # Bitbucket Server oauth1 private key file -`WOODPECKER_STASH_CONSUMER_RSA` -: Bitbucket Server oauth1 private key file +WOODPECKER_STASH_CONSUMER_RSA_STRING=... # Bibucket Server oauth1 private key as a string -`WOODPECKER_STASH_CONSUMER_RSA_STRING` -: Bibucket Server oauth1 private key as a string +WOODPECKER_STASH_GIT_USERNAME=... # Machine account username used to clone repositories -`WOODPECKER_STASH_GIT_USERNAME` -: Machine account username used to clone repositories. - -`WOODPECKER_STASH_GIT_PASSWORD` -: Machine account password used to clone repositories. +WOODPECKER_STASH_GIT_PASSWORD=... # Machine account password used to clone repositories +``` diff --git a/docs/docs/30-administration/30-database.md b/docs/docs/30-administration/30-database.md index b761fe8f82..75abf93432 100644 --- a/docs/docs/30-administration/30-database.md +++ b/docs/docs/30-administration/30-database.md @@ -7,15 +7,14 @@ The default database engine of Woodpecker is an embedded SQLite database which r By default Woodpecker uses a sqlite database stored under `/var/lib/drone/`. You can mount a [data volume](https://docs.docker.com/storage/volumes/#create-and-manage-volumes) to persist the sqlite database. ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - ports: - - 80:8000 - - 9000 + [...] + volumes: + - woodpecker-server-data:/var/lib/drone/ - restart: always ``` ## Configure MySQL @@ -23,11 +22,12 @@ services: The below example demonstrates mysql database configuration. See the official driver [documentation](https://github.com/go-sql-driver/mysql#dsn-data-source-name) for configuration options and examples. ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: + WOODPECKER_DATABASE_DRIVER: mysql + WOODPECKER_DATABASE_DATASOURCE: root:password@tcp(1.2.3.4:3306)/woodpecker?parseTime=true @@ -38,11 +38,12 @@ services: The below example demonstrates postgres database configuration. See the official driver [documentation](https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING) for configuration options and examples. ```diff +# docker-compose.yml version: '3' services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] environment: + WOODPECKER_DATABASE_DRIVER: postgres + WOODPECKER_DATABASE_DATASOURCE: postgres://root:password@1.2.3.4:5432/postgres?sslmode=disable diff --git a/docs/docs/30-administration/60-ssl.md b/docs/docs/30-administration/60-ssl.md index ee88cd5020..c9a9afe556 100644 --- a/docs/docs/30-administration/60-ssl.md +++ b/docs/docs/30-administration/60-ssl.md @@ -11,23 +11,18 @@ Woodpecker supports automated SSL configuration and updates using Let's Encrypt. You can enable Let's Encrypt by making the following modifications to your server configuration: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] ports: + - 80:80 + - 443:443 - 9000:9000 - volumes: - - /var/lib/drone:/var/lib/drone/ - restart: always environment: - - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} - - WOODPECKER_GITHUB=true - - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} - - WOODPECKER_SECRET=${WOODPECKER_SECRET} + - [...] + - WOODPECKER_LETS_ENCRYPT=true ``` @@ -52,19 +47,21 @@ Woodpecker uses the official Go acme library which will handle certificate upgra Woodpecker supports ssl configuration by mounting certificates into your container. ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] ports: + - 80:80 + - 443:443 - 9000:9000 volumes: - - /var/lib/drone:/var/lib/drone/ + - /etc/certs/woodpecker.foo.com/server.crt:/etc/certs/woodpecker.foo.com/server.crt + - /etc/certs/woodpecker.foo.com/server.key:/etc/certs/woodpecker.foo.com/server.key - restart: always environment: + - [...] + - WOODPECKER_SERVER_CERT=/etc/certs/woodpecker.foo.com/server.crt + - WOODPECKER_SERVER_KEY=/etc/certs/woodpecker.foo.com/server.key ``` @@ -72,9 +69,12 @@ services: Update your configuration to expose the following ports: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] ports: + - 80:80 + - 443:443 @@ -84,15 +84,17 @@ services: Update your configuration to mount your certificate and key: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] ports: - 80:80 - 443:443 - 9000:9000 volumes: - - /var/lib/drone:/var/lib/drone/ + - /etc/certs/woodpecker.foo.com/server.crt:/etc/certs/woodpecker.foo.com/server.crt + - /etc/certs/woodpecker.foo.com/server.key:/etc/certs/woodpecker.foo.com/server.key ``` @@ -100,18 +102,19 @@ services: Update your configuration to provide the paths of your certificate and key: ```diff +# docker-compose.yml +version: '3' + services: woodpecker-server: - image: woodpeckerci/woodpecker-server:latest + [...] ports: - 80:80 - 443:443 - 9000:9000 volumes: - - /var/lib/drone:/var/lib/drone/ - /etc/certs/woodpecker.foo.com/server.crt:/etc/certs/woodpecker.foo.com/server.crt - /etc/certs/woodpecker.foo.com/server.key:/etc/certs/woodpecker.foo.com/server.key - restart: always environment: + - WOODPECKER_SERVER_CERT=/etc/certs/woodpecker.foo.com/server.crt + - WOODPECKER_SERVER_KEY=/etc/certs/woodpecker.foo.com/server.key From 00abb24622703d4cbfe92903432f2f03c2b58e39 Mon Sep 17 00:00:00 2001 From: Anton Bracke Date: Fri, 24 Sep 2021 20:44:48 +0200 Subject: [PATCH 19/26] update docs --- docs/docs/30-administration/00-setup.md | 12 ++++++------ docs/docs/30-administration/60-ssl.md | 2 +- docs/docs/30-administration/70-proxy.md | 2 +- docs/docs/30-administration/80-kubernetes.md | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/docs/30-administration/00-setup.md b/docs/docs/30-administration/00-setup.md index e770548cc2..bc112b67d3 100644 --- a/docs/docs/30-administration/00-setup.md +++ b/docs/docs/30-administration/00-setup.md @@ -36,11 +36,11 @@ services: - woodpecker-server-data:/var/lib/drone/ environment: - WOODPECKER_OPEN=true - - WOODPECKER_HOST=${WOODPECKER_HOST} + - WOODPECKER_SERVER_HOST=${WOODPECKER_SERVER_HOST} - 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: @@ -69,7 +69,7 @@ services: [...] environment: - [...] -+ - WOODPECKER_HOST=${WOODPECKER_HOST} ++ - WOODPECKER_SERVER_HOST=${WOODPECKER_SERVER_HOST} ``` As agents run pipeline steps as docker containers they require access to the host machine's Docker daemon: @@ -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/60-ssl.md b/docs/docs/30-administration/60-ssl.md index c9a9afe556..36ee4aba67 100644 --- a/docs/docs/30-administration/60-ssl.md +++ b/docs/docs/30-administration/60-ssl.md @@ -26,7 +26,7 @@ services: + - WOODPECKER_LETS_ENCRYPT=true ``` -Note that Woodpecker uses the hostname from the `WOODPECKER_HOST` environment variable when requesting certificates. For example, if `WOODPECKER_HOST=https://foo.com` the certificate is requested for `foo.com`. +Note that Woodpecker uses the hostname from the `WOODPECKER_SERVER_HOST` environment variable when requesting certificates. For example, if `WOODPECKER_SERVER_HOST=https://foo.com` the certificate is requested for `foo.com`. >Once enabled you can visit your website at both the http and the https address diff --git a/docs/docs/30-administration/70-proxy.md b/docs/docs/30-administration/70-proxy.md index 445427bdc2..3afbdc6fa8 100644 --- a/docs/docs/30-administration/70-proxy.md +++ b/docs/docs/30-administration/70-proxy.md @@ -141,4 +141,4 @@ After installing [ngrok](https://ngrok.com/), open a new console and run: ngrok http 80 ``` -Set `WOODPECKER_HOST` (for example in `docker-compose.yml`) to the ngrok url (usually xxx.ngrok.io) and start the server. +Set `WOODPECKER_SERVER_HOST` (for example in `docker-compose.yml`) to the ngrok url (usually xxx.ngrok.io) and start the server. diff --git a/docs/docs/30-administration/80-kubernetes.md b/docs/docs/30-administration/80-kubernetes.md index 70b53de0d0..926109e950 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 \ @@ -83,7 +83,7 @@ spec: env: - name: "WOODPECKER_ADMIN" value: "xxx" - - name: "WOODPECKER_HOST" + - name: "WOODPECKER_SERVER_HOST" value: "https://xxx" - name: "WOODPECKER_GITHUB" value: "true" @@ -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: From 84c06615ce65305f8d5e8f7245e4bd6102a66716 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 28 Sep 2021 14:08:29 +0200 Subject: [PATCH 20/26] dont break if no need for --- charts/woodpecker-server/values.yaml | 2 +- cmd/server/flags.go | 2 +- cmd/server/server.go | 8 ++++---- docker-compose.example.yml | 2 +- docs/docs/30-administration/00-setup.md | 4 ++-- docs/docs/30-administration/60-ssl.md | 2 +- docs/docs/30-administration/70-proxy.md | 2 +- docs/docs/30-administration/80-kubernetes.md | 2 +- docs/docs/91-migrations.md | 2 +- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/charts/woodpecker-server/values.yaml b/charts/woodpecker-server/values.yaml index 48c01eea41..b9019613ab 100644 --- a/charts/woodpecker-server/values.yaml +++ b/charts/woodpecker-server/values.yaml @@ -9,7 +9,7 @@ image: env: WOODPECKER_ADMIN: "xxxx" - WOODPECKER_SERVER_HOST: https://"xxxxxxx" + WOODPECKER_HOST: https://"xxxxxxx" WOODPECKER_GITHUB: true extraSecretNamesForEnvFrom: diff --git a/cmd/server/flags.go b/cmd/server/flags.go index 06e82a0467..ef77cfce6a 100644 --- a/cmd/server/flags.go +++ b/cmd/server/flags.go @@ -27,7 +27,7 @@ var flags = []cli.Flag{ Usage: "enable server debug mode", }, cli.StringFlag{ - EnvVar: "WOODPECKER_SERVER_HOST", + EnvVar: "WOODPECKER_HOST", Name: "server-host", Usage: "server fully qualified url (://)", }, diff --git a/cmd/server/server.go b/cmd/server/server.go index 799f668699..5c8056c079 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -63,24 +63,24 @@ func loop(c *cli.Context) error { } if c.String("server-host") == "" { - logrus.Fatalln("WOODPECKER_SERVER_HOST is not properly configured") + logrus.Fatalln("WOODPECKER_HOST is not properly configured") } if !strings.Contains(c.String("server-host"), "://") { logrus.Fatalln( - "WOODPECKER_SERVER_HOST must be :// format", + "WOODPECKER_HOST must be :// format", ) } if strings.Contains(c.String("server-host"), "://localhost") { logrus.Warningln( - "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( - "WOODPECKER_SERVER_HOST must not have trailing slash", + "WOODPECKER_HOST must not have trailing slash", ) } diff --git a/docker-compose.example.yml b/docker-compose.example.yml index 3c2a068d2c..5bc78969a4 100644 --- a/docker-compose.example.yml +++ b/docker-compose.example.yml @@ -13,7 +13,7 @@ services: environment: - WOODPECKER_OPEN=true - WOODPECKER_ADMIN=laszlocph - - WOODPECKER_SERVER_HOST=${WOODPECKER_SERVER_HOST} + - WOODPECKER_HOST=${WOODPECKER_HOST} - WOODPECKER_GITHUB=true - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} diff --git a/docs/docs/30-administration/00-setup.md b/docs/docs/30-administration/00-setup.md index bc112b67d3..d68b6781ce 100644 --- a/docs/docs/30-administration/00-setup.md +++ b/docs/docs/30-administration/00-setup.md @@ -36,7 +36,7 @@ services: - woodpecker-server-data:/var/lib/drone/ environment: - WOODPECKER_OPEN=true - - WOODPECKER_SERVER_HOST=${WOODPECKER_SERVER_HOST} + - WOODPECKER_HOST=${WOODPECKER_HOST} - WOODPECKER_GITHUB=true - WOODPECKER_GITHUB_CLIENT=${WOODPECKER_GITHUB_CLIENT} - WOODPECKER_GITHUB_SECRET=${WOODPECKER_GITHUB_SECRET} @@ -69,7 +69,7 @@ services: [...] environment: - [...] -+ - WOODPECKER_SERVER_HOST=${WOODPECKER_SERVER_HOST} ++ - WOODPECKER_HOST=${WOODPECKER_HOST} ``` As agents run pipeline steps as docker containers they require access to the host machine's Docker daemon: diff --git a/docs/docs/30-administration/60-ssl.md b/docs/docs/30-administration/60-ssl.md index 36ee4aba67..c9a9afe556 100644 --- a/docs/docs/30-administration/60-ssl.md +++ b/docs/docs/30-administration/60-ssl.md @@ -26,7 +26,7 @@ services: + - WOODPECKER_LETS_ENCRYPT=true ``` -Note that Woodpecker uses the hostname from the `WOODPECKER_SERVER_HOST` environment variable when requesting certificates. For example, if `WOODPECKER_SERVER_HOST=https://foo.com` the certificate is requested for `foo.com`. +Note that Woodpecker uses the hostname from the `WOODPECKER_HOST` environment variable when requesting certificates. For example, if `WOODPECKER_HOST=https://foo.com` the certificate is requested for `foo.com`. >Once enabled you can visit your website at both the http and the https address diff --git a/docs/docs/30-administration/70-proxy.md b/docs/docs/30-administration/70-proxy.md index 3afbdc6fa8..445427bdc2 100644 --- a/docs/docs/30-administration/70-proxy.md +++ b/docs/docs/30-administration/70-proxy.md @@ -141,4 +141,4 @@ After installing [ngrok](https://ngrok.com/), open a new console and run: ngrok http 80 ``` -Set `WOODPECKER_SERVER_HOST` (for example in `docker-compose.yml`) to the ngrok url (usually xxx.ngrok.io) and start the server. +Set `WOODPECKER_HOST` (for example in `docker-compose.yml`) to the ngrok url (usually xxx.ngrok.io) and start the server. diff --git a/docs/docs/30-administration/80-kubernetes.md b/docs/docs/30-administration/80-kubernetes.md index 926109e950..4357efdc42 100644 --- a/docs/docs/30-administration/80-kubernetes.md +++ b/docs/docs/30-administration/80-kubernetes.md @@ -83,7 +83,7 @@ spec: env: - name: "WOODPECKER_ADMIN" value: "xxx" - - name: "WOODPECKER_SERVER_HOST" + - name: "WOODPECKER_HOST" value: "https://xxx" - name: "WOODPECKER_GITHUB" value: "true" diff --git a/docs/docs/91-migrations.md b/docs/docs/91-migrations.md index 7b4906e0c4..b482373d16 100644 --- a/docs/docs/91-migrations.md +++ b/docs/docs/91-migrations.md @@ -15,7 +15,7 @@ Some versions need some changes to the server configuration or the pipeline conf - 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_SERVER_HOST` replaces `WOODPECKER_HOST`, `DRONE_HOST` and `DRONE_SERVER_HOST`. + - `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`. From 18d20e059be61196d1b81a45b9967b08f783323e Mon Sep 17 00:00:00 2001 From: Anbraten Date: Tue, 28 Sep 2021 14:43:28 +0200 Subject: [PATCH 21/26] Update cmd/agent/flags.go --- cmd/agent/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/agent/flags.go b/cmd/agent/flags.go index e86e1a8e4b..17f700d8ab 100644 --- a/cmd/agent/flags.go +++ b/cmd/agent/flags.go @@ -24,7 +24,7 @@ var flags = []cli.Flag{ cli.StringFlag{ EnvVar: "WOODPECKER_SERVER", Name: "server", - Usage: "drone server address", + Usage: "server address", Value: "localhost:9000", }, cli.StringFlag{ From 685a490905227ffba945ce90e452ebaac7b7516a Mon Sep 17 00:00:00 2001 From: Anbraten Date: Tue, 28 Sep 2021 14:43:37 +0200 Subject: [PATCH 22/26] Update cmd/agent/flags.go --- cmd/agent/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/agent/flags.go b/cmd/agent/flags.go index 17f700d8ab..d46554cae9 100644 --- a/cmd/agent/flags.go +++ b/cmd/agent/flags.go @@ -30,7 +30,7 @@ var flags = []cli.Flag{ cli.StringFlag{ EnvVar: "WOODPECKER_USERNAME", Name: "username", - Usage: "drone auth username", + Usage: "auth username", Value: "x-oauth-basic", }, cli.StringFlag{ From 31887ae40feb88cb396c1f7e704a22d18ac27644 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Tue, 28 Sep 2021 14:45:52 +0200 Subject: [PATCH 23/26] Update cmd/cli/main.go --- cmd/cli/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 9d3c9de307..1ab7996ddf 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -35,6 +35,7 @@ func main() { cli.StringFlag{ EnvVar: "WOODPECKER_SERVER", + // TODO: rename to `server` Name: "s, server", Usage: "server address", }, From c97488588f81f8f2c0ac96bc17b650df3d8f6ff1 Mon Sep 17 00:00:00 2001 From: Anbraten Date: Tue, 28 Sep 2021 14:46:01 +0200 Subject: [PATCH 24/26] Update cmd/cli/main.go --- cmd/cli/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 1ab7996ddf..1610fb79e0 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -29,6 +29,7 @@ func main() { app.Flags = []cli.Flag{ cli.StringFlag{ EnvVar: "WOODPECKER_TOKEN", + // TODO: rename to `token` Name: "t, token", Usage: "server auth token", }, From 71c77ac6c0e0b63c08807d97d5e4eadf3a2930bf Mon Sep 17 00:00:00 2001 From: Anbraten Date: Tue, 28 Sep 2021 14:46:20 +0200 Subject: [PATCH 25/26] Update cmd/server/flags.go --- cmd/server/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/server/flags.go b/cmd/server/flags.go index ef77cfce6a..86b05590f0 100644 --- a/cmd/server/flags.go +++ b/cmd/server/flags.go @@ -216,7 +216,7 @@ var flags = []cli.Flag{ EnvVar: "WOODPECKER_GITHUB_CONTEXT", Name: "github-context", Usage: "github status context", - Value: "continuous-integration/drone", + Value: "continuous-integration/woodpecker", }, cli.StringFlag{ EnvVar: "WOODPECKER_GITHUB_CLIENT", From a19ec2ae7443375b113a6d764aea5e6769ffedbf Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 28 Sep 2021 15:22:20 +0200 Subject: [PATCH 26/26] next --- cmd/agent/flags.go | 2 +- cmd/cli/main.go | 8 ++++---- cmd/server/setup.go | 17 +++++++++++------ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/cmd/agent/flags.go b/cmd/agent/flags.go index d46554cae9..254b8d17d3 100644 --- a/cmd/agent/flags.go +++ b/cmd/agent/flags.go @@ -54,7 +54,7 @@ var flags = []cli.Flag{ Usage: "disable colored debug output", }, cli.StringFlag{ - EnvVar: "WOODPECKER_HOSTNAME,HOSTNAME", + EnvVar: "WOODPECKER_HOSTNAME", Name: "hostname", Usage: "agent hostname", }, diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 1610fb79e0..b54a29a6ea 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -30,15 +30,15 @@ func main() { cli.StringFlag{ EnvVar: "WOODPECKER_TOKEN", // TODO: rename to `token` - Name: "t, token", - Usage: "server auth token", + Name: "t, token", + Usage: "server auth token", }, cli.StringFlag{ EnvVar: "WOODPECKER_SERVER", // TODO: rename to `server` - Name: "s, server", - Usage: "server address", + Name: "s, server", + Usage: "server address", }, cli.BoolFlag{ EnvVar: "WOODPECKER_SKIP_VERIFY", diff --git a/cmd/server/setup.go b/cmd/server/setup.go index fec1e22d17..0439c2e4c7 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.