Introduction
Description
Updatecli is a command line tool that applies update strategies described in a manifest. It runs the same way on a local machine and from a CI environment, and it needs no server and no database: the manifest and the files it updates are the only state.
A manifest is a YAML file declaring what to update, where, and under which conditions. Updatecli reads it and executes each pipeline in three stages, always in this order:
- Source
Retrieves the value an update is based on, such as the latest release of a dependency. A source never modifies anything.
- Condition
Checks that everything required to apply the update holds true. If a condition is not met, the targets of that pipeline are skipped.
- Target
Writes the source value where it belongs, such as a key in a YAML file or a line in a
Dockerfile.
Two more building blocks turn that into a complete workflow:
- SCM
Describes the repository the files live in, so Updatecli can clone it, create a working branch, and commit what it changed. See "SCM" page.
- Action
Describes how the change is proposed once it is committed, typically a pull request or a merge request. See "Action" page.
Tip | Stages run per pipeline, and pipelines can be ordered relative to each other. The "Execution order" page explains exactly what runs when. |
Why?
Deciding how, when, and where to update information is hard.
Many tools apply continuous delivery or continuous deployment. We configure our infrastructure with Ansible playbooks, Puppet manifests, Helm charts, and others, and we rely on configuration files to specify the version we want to install. Unfortunately, too often those files are updated by hand, because it is hard to detect automatically what needs updating, and when.
The logic that manipulates a value in a configuration file lives outside that configuration file. The value itself comes from somewhere else again: a Maven repository, a Docker registry, a Git repository, an API. And before changing anything, we should validate our assumptions.
Updatecli combines blocks, called plugins, to express what needs to be updated, when, and where, so the workflow that suits your project can be written down and replayed.
Beyond a single manifest
Writing manifests by hand is only the entry point.
Autodiscovery
Updatecli can scan a repository and generate the manifests itself, for Helm charts, Dockerfiles,
go.mod, GitHub Actions workflows, Terraform providers, and around twenty other ecosystems.
See the "Autodiscovery" page.
Policies
A manifest can be packaged as an OCI artifact, pushed to a registry, and reused across repositories, so a team maintains one update strategy instead of one per project. See the "Updatecli Policy" page.
Compose
updatecli compose runs several policies together from a single updatecli-compose.yaml file.
See the "Compose" page.
Get started
Tip | New to Updatecli? Install it, then follow the Quick Start. |
Go Further
Core - the concepts behind a manifest, stage by stage.
Plugins - every source, condition, target, scm, action, and crawler available.
Automate - run Updatecli continuously from your CI environment.
Commands - the full command line reference.
Contributing - how to contribute to Updatecli.
Help - FAQ, deprecations, and where to ask questions.