Originally, a utility script to keep configuration files in sync for Puppet modules, ModuleSync allows you to keep files in sync across your many repositories on your Git servers. Pulls your repositories, applies and commits changes based on the file templates you prepare, and pushes the changes back to each repo. Support for creating GitHub PRs and GitLab MRs (since v2.0.0) in an automated fashion is included.
This Docker image runs ModuleSync with an unprivileged msync
user in /app
.
See Concierge if you want to sync multiple configurations from a single configuration repository.
In a GitLab CI configuration file:
image: ghcr.io/vshn/modulesync
script:
- msync update
With Docker on the command line:
$ docker run --rm -v "$PWD":/app ghcr.io/vshn/modulesync msync update
- Issue tracker (GitHub)
To add a new ModuleSync version tag:
- Renovate should automatically create a Pull Request.
- After merging it, make sure you pulled the latest commits, and run
./tag.sh
to create an appropriate Git Tag. git push --follow-tags
to push the tag. A new docker image is built automatically.