Simple monorepo build tool
Project description
drkns is a simple build tool aimed at easing the continuous integration of monorepos through the use of caching.
Build is driven through YAML files, that can have dependencies over other YAML files.
- Steps are built after the dependencies.
- A failure at a step prevents the execution of the next one.
- The result of each execution step is cached, if a directory is left unchanged no execution will be triggered again.
- State can be persisted in Amazon S3 to have a shared memory between volatile build instances
Sample master drkns.yml
drkns.yml
dependencies:
sub1: subProject1/drkns.yml
Sample dependency drkns.yml
subProject1/drkns.yml
checkSteps:
buildImages: |
docker build -q -t ...
startContainers: "docker run --network host --name test -d backServer-test"
YAML reference
directory
: Current directory by default, only used to compute the hash associated with this build filedependencies
: named external drkns yml to load, their steps becomes callables throughdrkns dependencyName.stepName
checkSteps
: ordered and named commands. Commands are either a string, or have two keys:command
(string) andbackground
(bool default false)buildSteps
: same ascheckSteps
, but those are executed only ifcheckSteps
and dependencies'checkSteps
got processed without errors.cleanUpSteps
: same ascheckSteps
, but those are executed no matter the execution of the previous ones.
CLI interface
The command line interface offers the following commands:
# Checks that the configuration makes sense (no output is a good sign
drkns check
# List all steps
drkns list
# Print debug information
drkns debug
# Restore previous execution information from S3
# Assuming an environment variable DRKNS_S3_PATH exists under the form
# "s3://buck3t/d1r"
drkns sync in
# also available for something like
# drkns sync in s3://buck3t/d1r
# Runs all steps
drkns run
# Runs identified task
drkns run sub1.buildImages
# Runs all steps but returns 0 no matter what happens
drkns run --force-success
# Return the last `drkns run` to get the execution status
drkns run
# Limit output to failed and non restored or ignored entities
drkns run --limit-output
# Willing to have only the step statuses and not the failed output
drkns run --summary
# Clean persisted data older than a week old when there is more than a few
# (to not overload the cache after too many builds)
drkns clean
# Persist previous execution information from S3, see assumptions for sync in
# Beware this erase extra files
drkns sync out
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
drkns-1.4.1.tar.gz
(13.8 kB
view details)
Built Distribution
drkns-1.4.1-py3-none-any.whl
(19.4 kB
view details)
File details
Details for the file drkns-1.4.1.tar.gz
.
File metadata
- Download URL: drkns-1.4.1.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c016d3aa25982b2777f591a4d5a82b8e2513fec2ab47d604a9040306a03abd44 |
|
MD5 | dfc00151e7c5c132e94e93fac2cec7cb |
|
BLAKE2b-256 | ec1b5533a16da8d03ca8f3a23da18ef1028a338094e3d80522fa978985476137 |
File details
Details for the file drkns-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: drkns-1.4.1-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3adf49e91e66e9f5a0c1d0b20f918a9456b082e9a535dbaa003f6246e41c2f17 |
|
MD5 | c29faa08e4b23a0ef59002d228b023fa |
|
BLAKE2b-256 | 0ce592fc8ffd2a8ec22fe6d5cbe748a5b5ec0c1048e136b8443a78e71661253a |