Skip to content

Repository files navigation

CI Coverage PyPI License

deploy_tools

A set of tools used for deploying applications to a shared filesystem.

This is used for deploying containerised desktop applications to many users who have access to a shared filesystem. We use the Environment Modules package to make these applications available to the end user.

What Where
Source https://github.com/DiamondLightSource/deploy-tools
PyPI pip install dls-deploy-tools
Docker docker run ghcr.io/diamondlightsource/deploy-tools:latest
Documentation https://diamondlightsource.github.io/deploy-tools
Releases https://github.com/DiamondLightSource/deploy-tools/releases

The demo_configuration folder in this repository can be passed as the config_folder to the deploy-tools commands. The deployment_root needs to be a writeable location for all files to get deployed under.

In normal use these commands are not run by hand: they act on a shared deployment area and belong in a CI pipeline, gated by change review. Running them manually against the demo configuration, as below, is just the quickest way to see what each does — the documentation has a hands-on tutorial and a guide to driving them from CI.

The examples below use the deploy-tools console script; python -m deploy_tools is equivalent if you prefer to invoke the module directly.

deployment_root = /path/to/deployment/root
config_folder = /path/to/config/folder

# Validate the deployment configuration files, also ensuring that the required updates
# are compatible with the previous deployments.
deploy-tools validate $deployment_root $config_folder

# Synchronise the deployment area with the configuration files. This will first run
# validation as part of determining the required changes
deploy-tools sync $deployment_root $config_folder

# Compare the current deployment snapshot against what is actually deployed in the
# deployment area. CI/CD should run this before a deploy to confirm a healthy state.
deploy-tools compare $deployment_root

Generating the JSON schema files with deploy-tools schema <folder> is a separate, occasional task: it produces the schemas that editors use to validate configuration files, and is not part of a deployment. See the schema reference in the documentation.

See https://diamondlightsource.github.io/deploy-tools for more detailed documentation.

About

A set of tools used for deploying applications to a shared filesystem.

Resources

Contributing

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages