Migrations
Some versions need some changes to the server configuration or the pipeline configuration files.
next
- Deprecated
gatedrepo settings option, userequire-approval - Deprecated
steps.[name].groupin favor ofsteps.[name].depends_on(see workflow syntax to learn how to set dependencies) - Removed
WOODPECKER_ROOT_PATHandWOODPECKER_ROOT_URLconfig variables. UseWOODPECKER_HOSTwith a path instead - Pipelines without a config file will now be skipped instead of failing
- Deprecated
includesandexcludessupport from event filter - Deprecated uppercasing all secret env vars, instead, the value of the
secretsproperty is used. Read more - Deprecated alternative names for secrets, use
environmentwithfrom_secret - Deprecated slice definition for env vars
- Deprecated
environmentfilter, usewhen.evaluate - Use
WOODPECKER_EXPERT_FORGE_OAUTH_HOSTinstead ofWOODPECKER_DEV_GITEA_OAUTH_URLorWOODPECKER_DEV_OAUTH_HOST - Deprecated
WOODPECKER_WEBHOOK_HOSTin favor ofWOODPECKER_EXPERT_WEBHOOK_HOST
2.0.0
- Dropped deprecated
CI_BUILD_*,CI_PREV_BUILD_*,CI_JOB_*,*_LINK,CI_SYSTEM_ARCH,CI_REPO_REMOTEbuilt-in environment variables - Deprecated
platform:filter in favor oflabels:, read more - Secrets
eventproperty was renamed toeventsandimagetoimagesas both are lists. The new propertyevents/imageshas to be used in the api. The old propertieseventandimagewere removed. - The secrets
plugin_onlyoption was removed. Secrets with images are now always only available for plugins using listed by theimagesproperty. Existing secrets with a list ofimageswill now only be available to the listed images if they are used as a plugin. - Removed
buildalias forpipelinecommand in CLI - Removed
sshbackend. Use an agent directly on the SSH machine using thelocalbackend. - Removed
/hookand/streamAPI paths in favor of/api/(hook|stream). You may need to use the "Repair repository" button in the repo settings or "Repair all" in the admin settings to recreate the forge hook. - Removed
WOODPECKER_DOCSconfig variable - Renamed
linktourl(including all API fields) - Deprecated
CI_COMMIT_URLenv var, useCI_PIPELINE_FORGE_URL
1.0.0
- The signature used to verify extension calls (like those used for the config-extension) done by the Woodpecker server switched from using a shared-secret HMac to an ed25519 key-pair. Read more about it at the config-extensions documentation.
- Refactored support for old agent filter labels and expressions. Learn how to use the new filter
- Renamed step environment variable
CI_SYSTEM_ARCHtoCI_SYSTEM_PLATFORM. Same applies for the cli exec variable. - Renamed environment variables
CI_BUILD_*andCI_PREV_BUILD_*toCI_PIPELINE_*andCI_PREV_PIPELINE_*, old ones are still available but deprecated - Renamed environment variables
CI_JOB_*toCI_STEP_*, old ones are still available but deprecated - Renamed environment variable
CI_REPO_REMOTEtoCI_REPO_CLONE_URL, old is still available but deprecated - Renamed environment variable
*_LINKto*_URL, old ones are still available but deprecated - Renamed API endpoints for pipelines (
<owner>/<repo>/builds/<buildId>-><owner>/<repo>/pipelines/<pipelineId>), old ones are still available but deprecated - Updated Prometheus gauge
build_*topipeline_* - Updated Prometheus gauge
*_job_*to*_step_* - Renamed config env
WOODPECKER_MAX_PROCStoWOODPECKER_MAX_WORKFLOWS(still available as fallback) - The pipelines are now also read from
.yamlfiles, the new default order is.woodpecker/*.ymland.woodpecker/*.yaml(without any prioritization) ->.woodpecker.yml->.woodpecker.yaml - Dropped support for Coding, Gogs and Bitbucket Server (Stash).
/api/queue/resume&/api/queue/pauseendpoint methods were changed fromGETtoPOST- rename
pipeline:key in your workflow config tosteps: - If you want to migrate old logs to the new format, watch the error messages on start. If there are none we are good to go, else you have to plan a migration that can take hours. Set
WOODPECKER_MIGRATIONS_ALLOW_LONGto true and let it run. - Using
repo-idin favor ofowner/repocombination- ⚠️ The api endpoints
/api/repos/{owner}/{repo}/...were replaced by new endpoints using the repos id/api/repos/{repo-id} - To find the id of a repo use the
/api/repos/lookup/{repo-full-name-with-slashes}endpoint. - The existing badge endpoint
/api/badges/{owner}/{repo}will still work, but whenever possible try to use the new endpoint using therepo-id:/api/badges/{repo-id}. - The UI urls for a repository changed from
/repos/{owner}/{repo}/...to/repos/{repo-id}/.... You will be redirected automatically when using the old url. - The woodpecker-go api-client is now using the
repo-idinstead ofowner/repofor all functions
- ⚠️ The api endpoints
- Using
org-idin favour ofownername- ⚠️ The api endpoints
/api/orgs/{owner}/...were replaced by new endpoints using the orgs id/api/repos/{org-id} - To find the id of orgs use the
/api/orgs/lookup/{org_full_name}endpoint. - The UI urls for a organization changed from
/org/{owner}/...to/orgs/{org-id}/.... You will be redirected automatically when using the old url. - The woodpecker-go api-client is now using the
org-idinstead oforg namefor all functions
- ⚠️ The api endpoints
- The
command:field has been removed from steps. If you were using it, please check if the entrypoint of the image you used is a shell.- If it is a shell, simply rename
command:tocommands:. - If it's not, you need to prepend the entrypoint before and also rename it (e.g.,
commands: <entrypoint> <cmd>).
- If it is a shell, simply rename
0.15.0
-
Default value for custom pipeline path is now empty / un-set which results in following resolution:
.woodpecker/*.yml->.woodpecker.yml->.drone.ymlOnly projects created after updating will have an empty value by default. Existing projects will stick to the current pipeline path which is
.drone.ymlin most cases.Read more about it at the Project Settings
-
From version
0.15.0ongoing there will be three types of docker images:latest,nextandx.x.xwith an alpine variant for each type likelatest-alpine. If you usedlatestbefore to try pre-release features you should switch tonextafter this release. -
Dropped support for
DRONE_*environment variables. The accordingWOODPECKER_*variables must be used instead. Additionally some alternative namings have been removed to simplify maintenance:WOODPECKER_AGENT_SECRETreplacesWOODPECKER_SECRET,DRONE_SECRET,WOODPECKER_PASSWORD,DRONE_PASSWORDandDRONE_AGENT_SECRET.WOODPECKER_HOSTreplacesDRONE_HOSTandDRONE_SERVER_HOST.WOODPECKER_DATABASE_DRIVERreplacesDRONE_DATABASE_DRIVERandDATABASE_DRIVER.WOODPECKER_DATABASE_DATASOURCEreplacesDRONE_DATABASE_DATASOURCEandDATABASE_CONFIG.
-
Dropped support for
DRONE_*environment variables in pipeline steps. Pipeline meta-data can be accessed withCI_*variables.CI_*prefix replacesDRONE_*CIvalue is nowwoodpeckerDRONE=truehas been removed- Some variables got deprecated and will be removed in future versions. Please migrate to the new names. Same applies for
DRONE_of them.- CI_ARCH => use CI_SYSTEM_ARCH
- CI_COMMIT => CI_COMMIT_SHA
- CI_TAG => CI_COMMIT_TAG
- CI_PULL_REQUEST => CI_COMMIT_PULL_REQUEST
- CI_REMOTE_URL => use CI_REPO_REMOTE
- CI_REPO_BRANCH => use CI_REPO_DEFAULT_BRANCH
- CI_PARENT_BUILD_NUMBER => use CI_BUILD_PARENT
- CI_BUILD_TARGET => use CI_BUILD_DEPLOY_TARGET
- CI_DEPLOY_TO => use CI_BUILD_DEPLOY_TARGET
- CI_COMMIT_AUTHOR_NAME => use CI_COMMIT_AUTHOR
- CI_PREV_COMMIT_AUTHOR_NAME => use CI_PREV_COMMIT_AUTHOR
- CI_SYSTEM => use CI_SYSTEM_NAME
- CI_BRANCH => use CI_COMMIT_BRANCH
- CI_SOURCE_BRANCH => use CI_COMMIT_SOURCE_BRANCH
- CI_TARGET_BRANCH => use CI_COMMIT_TARGET_BRANCH
For all available variables and their descriptions have a look at built-in-environment-variables.
-
Prometheus metrics have been changed from
drone_*towoodpecker_* -
Base path has moved from
/var/lib/droneto/var/lib/woodpecker -
Default workspace base path has moved from
/droneto/woodpecker -
Default SQLite database location has changed:
/var/lib/drone/drone.sqlite->/var/lib/woodpecker/woodpecker.sqlitedrone.sqlite->woodpecker.sqlite
-
Plugin Settings moved into
settingssection:steps:
something:
image: my/plugin
- setting1: foo
- setting2: bar
+ settings:
+ setting1: foo
+ setting2: bar -
WOODPECKER_DEBUGoption for server and agent got removed in favor ofWOODPECKER_LOG_LEVEL=debug -
Remove unused server flags which can safely be removed from your server config:
WOODPECKER_QUIC,WOODPECKER_GITHUB_SCOPE,WOODPECKER_GITHUB_GIT_USERNAME,WOODPECKER_GITHUB_GIT_PASSWORD,WOODPECKER_GITHUB_PRIVATE_MODE,WOODPECKER_GITEA_GIT_USERNAME,WOODPECKER_GITEA_GIT_PASSWORD,WOODPECKER_GITEA_PRIVATE_MODE,WOODPECKER_GITLAB_GIT_USERNAME,WOODPECKER_GITLAB_GIT_PASSWORD,WOODPECKER_GITLAB_PRIVATE_MODE -
Dropped support for manually setting the agents platform with
WOODPECKER_PLATFORM. The platform is now automatically detected. -
Use
WOODPECKER_STATUS_CONTEXTinstead of the deprecated optionsWOODPECKER_GITHUB_CONTEXTandWOODPECKER_GITEA_CONTEXT.
0.14.0
No breaking changes
From Drone
Migration from Drone is only possible if you were running Drone <= v0.8.
- Make sure you are already running Drone v0.8
- Upgrade to Woodpecker v0.14.4, migration will be done during startup
- Upgrade to the latest Woodpecker version. Pay attention to the breaking changes listed above.