github kimdre/doco-cd v0.111.0

49 minutes ago

What's Changed

Polling local Repositories

Some stacks cannot be deployed without a running SCM available (e.g. a self-hosted Gitea/Forgejo instance that should be deployed via doco-cd (hence a chicken-and-egg problem), or a stack that is deployed from a local Git repository that is not hosted on any remote SCM). This release adds support for polling local Git repositories to solve this problem.

Mount the directory containing your local Git repo into the doco-cd container, then use a poll config with the url: value being the absolute path to the Git repo inside the container.

More info in the wiki at Polling Local Filesystem Repositories.

Watcher for local Repositories

In addition to interval-based polling, doco-cd watches the local repository's git directory for changes and triggers a deployment check immediately when new commits land, without waiting for the next interval. This is enabled by default; set watch: false to disable it and rely on interval only. Set interval: 0 (with watch left enabled) to rely on the watcher exclusively, with no periodic fallback polling at all.

See the watch poll option in the wiki.

⚠️ Dotenv parsing changed

.env files (env_files) are now parsed with compose-go's dotenv engine (the same one Docker Compose uses) instead of godotenv. Variables set in one env_files entry are now correctly available for ${VAR} substitution in later entries.

Reference docs:

Warning

No longer supported / behavior changes:

  • Lowercase/mixed-case ${var} references are no longer left as literal text. Previously, godotenv only expanded UPPERCASE variable names and silently ignored ${lowercase_var}/${MixedCase}, keeping the literal string in the value. These are now interpolated like any other variable — if unset, they resolve to an empty string instead of the original literal text.

If any of your .env files intentionally relied on lowercase ${...} placeholders being left untouched, rename them to avoid the $/${} pattern (e.g. escape with \$) or ensure the referenced variable is actually defined.

Note

New/added support:

  • Bash-style default and required-value operators now work inside .env files: ${VAR:-default}, ${VAR-default}, ${VAR:+alt}, ${VAR+alt}, ${VAR:?error}, ${VAR?error}.
  • Bare keys (e.g. a line with just SOME_VAR) now inherit the value from the process environment or an earlier env_files entry.

✨ Features

  • feat(git): add support for local filesystem Git repositories by @kimdre in #1717

🌟 Improvements

  • feat(git): implement local filesystem watcher for repository changes by @kimdre in #1723
  • fix(compose): switch to compose-go dotenv parser for improved variable resolution by @kimdre in #1724

📦 Dependencies

  • chore(deps): update gcr.io/distroless/base-debian13 docker digest to 20dc7ed by @renovate[bot] in #1719
  • chore(deps): update docker/github-builder digest to 58cb9f5 by @renovate[bot] in #1718
  • chore(deps): update github/codeql-action digest to db488dd by @renovate[bot] in #1720
  • chore(deps): update dependency zensical to v0.0.57 by @renovate[bot] in #1721

Full Changelog: v0.110.1...v0.111.0

Don't miss a new doco-cd release

NewReleases is sending notifications on new releases.