github woodpecker-ci/woodpecker v3.14.0-rc.0
3.14.0-rc.0

pre-release6 hours ago

3.14.0-rc.0 - 2026-04-01

❤️ Thanks to all contributors! ❤️

@6543, @CrimsonFez, @LUKIEYF, @MartinSchmidt, @Pnkcaht, @Sim-hu, @TumbleOwlee, @api2062, @brainbaking, @cliffmccarthy, @confusedsushi, @dccdis, @hhamalai, @hnb2, @mehrdadbn9, @mofr93, @myers, @myselfghost, @paulovitorbal, @qwerty287, @samoli, @savv, @stardothosting

🔒 Security

  • Send 404 if logs are not allowed to access [#6349]
  • Prevent registering as arbitrary agents with system token [#6283]
  • Update fast-xml-parser [#6258]
  • Update dompurify and svgo [#6198]
  • Update edwards25519 [#6143]
  • chore(deps): update dependency lodash to v4.17.23 [security] [#5997]

✨ Features

  • Support one-shot agent execution mode [#6150]
  • Add external secret extension implementation [#6252]
  • make it possible to disable the isolated home for local agents [#6251]
  • Add Container Registry credential extension [#5993]
  • Support exclusive config extensions [#5978]

📈 Enhancement

  • Add netrc option for config/registry extension [#6333]
  • Migrate to moby [#6357]
  • Deprecate commit avatar envs [#6356]
  • Refactor server/pubsub into interface [#6318]
  • Separate cron field [#6346]
  • Refactor pipeline runtime code [#6166]
  • Show Woodpecker version on pipeline details [#6316]
  • Unify import aliases [#6328]
  • Improve linter warning when step has no when block [#6314]
  • Improve error message when no workflows for manual were found [#6313]
  • Server return conflict status when stale repo causes duplicate insert [#6276]
  • Show global/org registries in org/repo registries tab [#6291]
  • Forward skipped step state once it's known [#6295]
  • Only add compatibility environment variables for drone-ci to plugins [#6271]
  • Creating new engine runtime now requires backend as argument [#6268]
  • Compare admins case-insensitively [#6261]
  • Allow to cancel on failure [#6158]
  • Refactor so storage detects if Insert fails because of unique constraint [#6259]
  • Add configure the max number of lines loaded in log webview [#6250]
  • Add "Load more" pagination to pipeline list [#6200]
  • refactor: pipeline runtime add description and prevent race [#6167]
  • refactor: use upstream slices.Concat and remove utils.MergeSlices [#6185]
  • Add enhanced function for error message handling in http request for configuration fetching [#5712]
  • Remove fixed badge width in UI [#6157]
  • Refactor pipeline engine [#6073]
  • Added cancel info so one can see why it was cancelled [#6072]
  • Document required forge methods [#6049]
  • Dynamic log following [#6036]
  • Per-Workflow and Per-Workflow-Step badge generation [#5977]
  • Render MD in pipeline titles [#5999]
  • Simplify and Fix server task queue [#6017]
  • fix(agent): workflow runner use shutdown context [#6021]
  • Update Architecture: move pipeline/rpc => rpc & server/{grpc => rpc} [#6012]
  • Implement retry logic in HTTP Send method [#5857]
  • CLI: Allow single output template [#5882]
  • Improve service syntax related docs and tests nits [#5991]
  • Remove deactivated secrets type from container defintion [#5983]

🐛 Bug Fixes

  • Fix workflow beeing skipped and marked as failed when agent starts before server [#6361]
  • Only redirect after login [#6348]
  • Set workflow services stuck in running state to finished [#6337]
  • Fix bitbucket api deprecations [#6324]
  • Fix workflow serialize to omit skip_clone if false [#6319]
  • Fix build deb rpm packages [#6309]
  • Enable crons if created via CLI [#6228]
  • Fix message on gitlab tag event [#6196]
  • fix(bbdc): resolve annotated tag object SHA to commit SHA before posting build status [#6203]
  • Prevent leaking goroutines on cancelled steps [#6186]
  • Independently evaluate status filter and support on workflows [#6183]
  • Fix status merging with skipped pipelines [#6176]
  • Update pipeline config schema [#6156]
  • Fix OAuth token refresh race condition with singleflight [#6153]
  • Fully merge statuses [#6119]
  • Only set tag env on tags [#6142]
  • Fix bitbucket email [#6102]
  • Detached or service steps report back too [#6039]
  • Don't propagate workflow error from agent back to agent [#6056]
  • Fix pipeline cancellation status handling and step state synchronization [#6011]
  • Add retry logic for CreatePipeline with backoff [#6067]
  • Fix OAuth token refresh in webhook handling for Bitbucket and GitHub [#6059]
  • Refresh token before forge calls [#6035]
  • Local backend: cleanup generated script for cmd.exe shell [#6029]
  • Local backend: setup clone step respects context [#6030]
  • Fix: Agent now gracefully handles running containers when killed [#6018]
  • Local backend: handle canceled steps case [#6008]

🧪 Tests

  • Extend workflow integration tests [#6272]
  • Add registry service tests [#6330]
  • Add workflow integration test [#6270]
  • Increase timeout for migration tests [#6206]
  • Ignore fixtures for coverage [#6197]
  • Use tabs for indentation in embedded JSON [#6103]
  • Add some tests [#6076]
  • Ignore mocks for coverage [#6074]

📚 Documentation

  • chore(deps): update dependency typescript to v6 [#6336]
  • chore(deps): update docs npm deps non-major [#6335]
  • Add CI check for docs on feature PRs [#6315]
  • chore(deps): update dependency isomorphic-dompurify to v3.6.0 [#6288]
  • chore(deps): update dependency yaml to v2.8.3 [#6287]
  • Add agentscan to plugin docs [#6285]
  • Adding opengrep plugin [#6282]
  • chore(deps): update docs npm deps non-major [#6281]
  • Sorted the glossary items [#6255]
  • chore(deps): update docs npm deps non-major [#6240]
  • plugin: ascii junit report: renamed gh username [#6232]
  • chore(deps): update dependency svgo to v4 [#6214]
  • chore(deps): update docs npm deps non-major [#6210]
  • Update serialize-javascript [#6182]
  • chore(deps): update docs npm deps non-major [#6173]
  • chore(deps): update dependency isomorphic-dompurify to v3 [#6147]
  • chore(deps): update docs npm deps non-major [#6137]
  • Add deprecation policy [#6068]
  • fix(deps): update dependency @easyops-cn/docusaurus-search-local to ^0.55.0 [#6125]
  • Improve selinux docs [#6066]
  • document how to ignore failure on services [#6106]
  • chore(deps): update docs npm deps non-major [#6109]
  • fix(deps): update dependency @easyops-cn/docusaurus-search-local to ^0.54.0 [#6091]
  • chore(deps): update dependency axios to v1.13.5 [#6090]
  • chore(deps): update docs npm deps non-major [#6088]
  • chore(deps): update dependency isomorphic-dompurify to v2.36.0 [#6086]
  • fix(deps): update docs npm deps non-major [#6052]
  • Update Module Interaction Diagram [#6019]
  • Add Buildah plugin link [#6050]
  • chore(deps): update docs npm deps non-major [#6045]
  • Add Homebrew package [#6037]
  • chore(deps): update dependency axios to v1.13.3 [#6010]
  • chore(deps): update docs npm deps non-major [#6000]
  • Fix docusaurus md link deprecation [#5979]
  • chore(deps): update docs npm deps non-major [#5982]

📦️ Dependency

  • fix(deps): update module google.golang.org/grpc to v1.80.0 [#6363]
  • fix(deps): update module github.com/lib/pq to v1.12.1 [#6354]
  • fix(deps): update golang-packages [#6343]
  • chore(deps): lock file maintenance [#6344]
  • chore(deps): update dependency simple-icons to v16.14.0 [#6341]
  • fix(deps): update golang-packages [#6340]
  • chore(deps): update web npm deps non-major [#6334]
  • fix(deps): update module gitlab.com/gitlab-org/api/client-go/v2 to v2.8.0 [#6332]
  • chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v4.1.0 [#6331]
  • fix(deps): update golang-packages [#6327]
  • fix(deps): update module code.gitea.io/sdk/gitea to v0.24.1 [#6321]
  • chore(deps): lock file maintenance [#6306]
  • fix(deps): update module github.com/charmbracelet/huh to v2 [#6243]
  • chore(deps): update dependency golangci/golangci-lint to v2.11.4 [#6301]
  • chore(deps): update pre-commit hook golangci/golangci-lint to v2.11.4 [#6302]
  • chore(deps): update dependency simple-icons to v16.13.0 [#6290]
  • chore(deps): update web npm deps non-major [#6279]
  • fix(deps): update module github.com/zalando/go-keyring to v0.2.7 [#6280]
  • fix(deps): update golang-packages to v0.35.3 [#6265]
  • fix(deps): update module github.com/lib/pq to v1.12.0 [#6260]
  • fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.37 [#6253]
  • fix(deps): update module gitlab.com/gitlab-org/api/client-go/v2 to v2.6.0 [#6248]
  • chore(deps): update dependency jsdom to v29 [#6246]
  • chore(deps): update dependency simple-icons to v16.12.0 [#6245]
  • chore(deps): update woodpeckerci/plugin-release docker tag to v0.3.0 [#6241]
  • chore(deps): update dependency vite to v8 [#6242]
  • fix(deps): update module golang.org/x/net to v0.52.0 [#6235]
  • chore(deps): update pre-commit non-major [#6212]
  • chore(deps): update dependency simple-icons to v16.11.0 [#6220]
  • chore(deps): update dependency vue-i18n to v11.3.0 [#6217]
  • chore(deps): update dependency golang to v1.26.1 [#6207]
  • fix(deps): update module github.com/docker/cli to v29.3.0+incompatible [#6201]
  • fix(deps): update module github.com/yaronf/httpsign to v0.4.2 [#6188]
  • chore(deps): update dependency eslint-plugin-vue-scoped-css to v3 [#6178]
  • chore(deps): update dependency @intlify/eslint-plugin-vue-i18n to v4.3.0 [#6177]
  • chore(deps): update dependency simple-icons to v16.10.0 [#6175]
  • fix(deps): update module github.com/google/go-github/v83 to v84 [#6172]
  • chore(deps): update docker.io/woodpeckerci/plugin-ready-release-go docker tag to v4 [#6171]
  • chore(deps): update postgres docker tag to v18.3 [#6169]
  • fix(deps): update golang-packages [#6160]
  • chore(deps): update golangci/golangci-lint docker tag to v2.10.1 [#6138]
  • chore(deps): update dependency vue-tsc to v3.2.5 [#6141]
  • fix(deps): update module github.com/google/go-github/v82 to v83 [#6140]
  • chore(deps): update postgres docker tag to v18.2 [#6124]
  • chore(deps): update docker.io/golang docker tag to v1.26 [#6121]
  • chore(deps): update docker.io/lycheeverse/lychee docker tag to v0.23.0 [#6122]
  • chore(deps): update dependency @types/node to v24.10.12 [#6087]
  • chore(deps): update eslint monorepo to v10 (major) [#6083]
  • chore(deps): update dependency @antfu/eslint-config to v7.3.0 [#6084]
  • chore(deps): update dependency @vueuse/core to v14.2.0 [#6048]
  • fix(deps): update dependency vue-router to v5 [#6046]
  • chore(deps): update woodpeckerci/plugin-git docker tag to v2.8.1 [#6006]
  • chore(deps): update docker.io/mysql docker tag to v9.6.0 [#6002]
  • fix(deps): update module github.com/urfave/cli/v3 to v3.6.2 [#5989]

Misc

  • Fix license headers [#6205]
  • Add agentscan plugin [#6284]
  • Improve Debian packages [#6085]

Don't miss a new woodpecker release

NewReleases is sending notifications on new releases.