Releases: kimdre/doco-cd
v0.51.0
What's Changed
This release adds a new app setting/env var valled DEPLOY_CONFIG_BASE_DIR, which lets you set the relative path to the directory that contains the doco-cd deploy configs (globally for all repositories). By default this is still the root directory (/) of the repository.
Note
This does not affect/alter the working_dir path in the deploy configs. It must still be relative to the repository root.
See the wiki: https://github.com/kimdre/doco-cd/wiki/App-Settings
Also doco-cd now follows symlinks during the SOPS decryption.
✨ Features
🌟 Improvements
- fix: improve Dockerfile by @kimdre in #792
- fix(decrypt): add support for following symlinks during decryption by @kimdre in #801
📦 Dependencies
- chore(deps): update github/codeql-action digest to e12f017 by @renovate[bot] in #784
- chore(deps): update actions/checkout digest to 93cb6ef by @renovate[bot] in #783
- chore(deps): update actions/checkout action to v5.0.1 by @renovate[bot] in #787
- chore(deps): update golang:1.25.4 docker digest to f60eaa8 by @renovate[bot] in #786
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #789
- fix(deps): update module github.com/infisical/go-sdk to v0.6.0 by @renovate[bot] in #790
- fix(deps): update module github.com/infisical/go-sdk to v0.6.1 by @renovate[bot] in #791
- chore(deps): update actions/setup-go action to v6.1.0 by @renovate[bot] in #795
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #796
📚 Miscellaneous
New Contributors
Full Changelog: v0.50.0...v0.51.0
v0.50.0
What's Changed
This release adds two new features/improvements:
Deployment Auto Discovery
You can use the new auto-discovery feature to automatically deploy your stacks/projects from a directory structure.
Enable it with auto_discover: true, you can specify the directory to be scanned with the working_dir setting.
Doco-CD will then scan the directory for sub-directories that contain docker-compose.y(a)ml or compose.y(a)ml files and use the name of the sub-directory as the stack name (similiar to the name deploy setting).
See the wiki for more information: https://github.com/kimdre/doco-cd/wiki/Deploy-Settings#auto-discover-settings
For example with a file structure like this
.doco-cd.yml
apps/
├── wordpress/
│ ├── docker-compose.yml
│ └── .env
├── nginx/
│ ├── docker-compose.yaml
│ └── configs/
│ └── nginx.conf
└── misc/
└── image.png
and a .doco-cd.yml with the following content:
working_dir: apps/
auto_discover: truedoco-cd would deploy 2 stacks to the docker host:
- wordpress
- nginx
Remote env files when deploying from a remote repository
A new syntax has been added to the env_files deploy setting.
If repository_url is set to deploy from a different repo, you can use the remote:<filepath> syntax to specify, that the dotenv file is located in the remote repository and should be loaded from there. Entries/Keys, that appear in multiple files, get overwritten by the next occurrence and remote dotenv files have higher priority than local ones.
See the wiki for more information: https://github.com/kimdre/doco-cd/wiki/Deploy-Settings#from-remote-repository
For example:
# base.env
TEST=base
HELLO=world# test.env in remote repository
TEST=changedrepository_url: <url to repo>
env_files:
- base.env
- remote:test.envWould result in
TEST=changed
HELLO=world✨ Features
🌟 Improvements
- fix(secret-provider): improve 1Password client handling by @kimdre in #773
- feat(config): allow propagation of local env files when using a remote repository by @kimdre in #777
📦 Dependencies
- chore(deps): update golang:1.25.4 docker digest to e68f6a0 by @renovate[bot] in #763
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #764
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #768
- fix(deps): update module golang.org/x/net to v0.47.0 by @renovate[bot] in #769
- chore(deps): pin codespell-project/actions-codespell action to 406322e by @renovate[bot] in #771
- chore(deps): update github/codeql-action digest to 014f16e by @renovate[bot] in #774
- chore(deps): update module golang.org/x/tools to v0.39.0 by @renovate[bot] in #775
📚 Miscellaneous
- ci: move spelling errors check job to test.yaml by @kimdre in #765
- ci: improve spelling errors job by @kimdre in #767
Full Changelog: v0.49.0...v0.50.0
v0.50.0-rc.2
What's Changed
What's Changed
This adds a new auto_discover boolean option to the deploy config. If set to true, doco-cd will try to autodiscover projects/stacks to deploy by searching for docker-compose.y(a)ml or compose.y(a)ml files in subdirectories in the working directory (working_dir). Doco-cd will internally generate new deploy configs based on the directory name and inherits all other settings from the base deploy config inside the .doco-cd.yml file or inline deployment config in poll configs.
When a app is no longer available in the working_dir (e.g. deleted or moved to another directory outside the working dir), doco-cd will automatically remove the deployed project/stack from the docker host.
Available settings:
auto_discover: (bool) true # enables autodiscovery of services to deploy in the working directory by checking for subdirectories with docker-compose files
auto_discover_opts: # options for the autodiscovery feature
depth: (int) 0 # maximum depth of subdirectories to scan for docker-compose files, set to 0 for no limit
delete: (bool) true # auto-remove obsolete auto-discovered deployments that are no longer present in the repository For example with a structure like this
.doco-cd.yml
apps/
wordpress/
docker-compose.yml
.env
nginx/
docker-compose.yaml
configs/
nginx.conf
misc/
image.png
and a .doco-cd.yml with the following content:
working_dir: apps/
auto_discover: truedoco-cd would deploy 2 stacks to the docker host:
- wordpress
- nginx
✨ Features
🌟 Improvements
📦 Dependencies
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #768
- fix(deps): update module golang.org/x/net to v0.47.0 by @renovate[bot] in #769
- chore(deps): pin codespell-project/actions-codespell action to 406322e by @renovate[bot] in #771
- chore(deps): update github/codeql-action digest to 014f16e by @renovate[bot] in #774
- chore(deps): update module golang.org/x/tools to v0.39.0 by @renovate[bot] in #775
📚 Miscellaneous
Full Changelog: v0.50.0-rc.1...v0.50.0-rc.2
v0.50.0-rc.1
What's Changed
This adds a new auto_discover boolean option to the deploy config. If set to true, doco-cd will try to autodiscover projects/stacks to deploy by searching for docker-compose.y(a)ml or compose.y(a)ml files in subdirectories in the working directory (working_dir). Doco-cd will internally generate new deploy configs based on the directory name and inherits all other settings from the base deploy config inside the .doco-cd.yml file (or inline deployment config).
When a app is no longer available in the working_dir (e.g. deleted or moved to another directory outside the working dir), doco-cd will automatically remove the deployed project/stack from the docker host.
For example with a structure like this
.doco-cd.yml
apps/
wordpress/
docker-compose.yml
.env
nginx/
docker-compose.yaml
configs/
nginx.conf
misc/
image.png
and a .doco-cd.yml with the following content:
working_dir: apps/
auto_discover: truedoco-cd would deploy 2 stacks to the docker host:
- wordpress
- nginx
✨ Features
📦 Dependencies
- chore(deps): update golang:1.25.4 docker digest to e68f6a0 by @renovate[bot] in #763
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #764
📚 Miscellaneous
Full Changelog: v0.49.0...v0.50.0-rc.1
v0.49.0
What's Changed
Added OpenBao as a new external secret provider.
See the wiki for more info: https://github.com/kimdre/doco-cd/wiki/External-Secrets#openbao
✨ Features
📦 Dependencies
- fix(deps): update module github.com/docker/docker to v28.5.2+incompatible by @renovate[bot] in #755
- fix(deps): update module github.com/docker/cli to v28.5.2+incompatible by @renovate[bot] in #754
- fix(deps): update testcontainers-go monorepo to v0.40.0 by @renovate[bot] in #756
- chore(deps): update golangci/golangci-lint-action action to v9 by @renovate[bot] in #757
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #760
Full Changelog: v0.48.0...v0.49.0
v0.48.0
What's Changed
Inline Poll Deployments
Polling configurations (POLL_CONFIG or POLL_CONFIG_FILE) now support defining deployments in-line without requiring a .doco-cd.yml file inside the target repository. Add a deployments list to each poll job to describe the stacks doco-CD should manage:
- url: https://github.com/example/app.git
reference: refs/heads/main
interval: 300
deployments:
- name: example-app
working_dir: services/app
compose_files:
- compose.yaml
env_files:
- .env.productionInline deployments reuse the same fields as .doco-cd.yml files, including support for external secrets and destroy workflows. The poll job url is always used as the deployment source.
If the poll config has an inline deploy config and the target repository also contains a .doco-cd.yml file, the file will be ignored in favor of the inline deploy config.
See also the wiki about this feature: https://github.com/kimdre/doco-cd/wiki/Poll-Settings#inline-deploy-configs
✨ Features
📦 Dependencies
- chore(deps): update golang:1.25.3 docker digest to 6d4e5e7 by @renovate[bot] in #745
- chore(deps): update dependency golang to v1.25.4 by @renovate[bot] in #746
- chore(deps): update golang:1.25.4 docker digest to 6ca9eb0 by @renovate[bot] in #748
- chore(deps): update softprops/action-gh-release digest to 5be0e66 by @renovate[bot] in #749
- chore(deps): update module github.com/catenacyber/perfsprint to v0.10.1 by @renovate[bot] in #750
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #751
New Contributors
Full Changelog: v0.47.0...v0.48.0
v0.47.0
What's Changed
Adds a new env_files deploy setting to doco-cd that allows you to specify dotenv files for variable interpolation.
Subsequent .env files overwrite each other.
If env_files is unset, the default value env_files: [".env"] will be used; If the default .env file does not exist, it will be ignored. This reflects the defaults of the docker compose specification.
For example
# base.env
NAME=test
STAGE=dev# prod.env
STAGE=prod# .doco-cd.yml
name: test
env_files:
- base.env
- prod.env# docker-compose.yml
services:
test:
labels:
- stage=$STAGE
- name=$NAMEWill result in
# docker-compose.yml
services:
test:
labels:
- stage="prod"
- name="test"✨ Features
🌟 Improvements
- fix(poll): run_once if interval is set to 0 by @p0lycarpio in #737
📦 Dependencies
- chore(deps): update docker/setup-qemu-action digest to c7c5346 by @renovate[bot] in #739
- chore(deps): update docker/metadata-action digest to 318604b by @renovate[bot] in #738
- chore(deps): bump github.com/containerd/containerd/v2 from 2.1.4 to 2.1.5 by @dependabot[bot] in #734
Full Changelog: v0.46.0...v0.47.0
v0.47.0-rc.1
What's Changed
Adds a new env_files deploy setting to doco-cd that allows you to specify specify dotenv files for variable interpolation.
Subsequent .env files overwrite each other.
If env_files is unset, the default value env_files: [".env"] will be used; If the default .env file does not exist, it will be ignored. This reflects the defaults of the docker compose specification.
For example
# base.env
NAME=test
STAGE=dev# prod.env
STAGE=prod# .doco-cd.yml
name: test
env_files:
- base.env
- prod.env# docker-compose.yml
services:
test:
labels:
- stage=$STAGE
- name=$NAMEWill result in
# docker-compose.yml
services:
test:
labels:
- stage="prod"
- name="test"✨ Features
🌟 Improvements
- fix(poll): run_once if interval is set to 0 by @p0lycarpio in #737
Full Changelog: v0.46.0...v0.47.0-rc.1
v0.46.0
What's Changed
This release features a new run_once setting for poll configs that allows you to run a poll job only once to initialize a deployment. See the wiki for more info: https://github.com/kimdre/doco-cd/wiki/Poll-Settings
Also doco-cd now supports bind mounts also in Docker Swarm mode!
✨ Features
- feat(poll): add run_once flag to deploy only once via poll job by @p0lycarpio in #729
🌟 Improvements
📦 Dependencies
- chore(deps): update busybox:1.37-uclibc docker digest to 7b5ade1 by @renovate[bot] in #723
- chore(deps): update github/codeql-action digest to 0499de3 by @renovate[bot] in #724
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #725
- fix(deps): update module github.com/compose-spec/compose-go/v2 to v2.9.1 by @renovate[bot] in #727
- fix(deps): update module github.com/docker/compose/v2 to v2.40.3 by @renovate[bot] in #706
New Contributors
- @p0lycarpio made their first contribution in #729
Full Changelog: v0.45.0...v0.46.0
v0.46.0-rc.1
What's Changed
🌟 Improvements
📦 Dependencies
- chore(deps): update busybox:1.37-uclibc docker digest to 7b5ade1 by @renovate[bot] in #723
- chore(deps): update github/codeql-action digest to 0499de3 by @renovate[bot] in #724
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #725
- fix(deps): update module github.com/compose-spec/compose-go/v2 to v2.9.1 by @renovate[bot] in #727
- fix(deps): update module github.com/docker/compose/v2 to v2.40.3 by @renovate[bot] in #706
📚 Miscellaneous
- feat(poll): add run_once flag to deploy only once via poll job by @p0lycarpio in #729
New Contributors
- @p0lycarpio made their first contribution in #729
Full Changelog: v0.45.0...v0.46.0-rc.1