Skip to main content

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 Status

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 file
  • dependencies: named external drkns yml to load, their steps becomes callables through drkns dependencyName.stepName
  • checkSteps: ordered and named commands. Commands are either a string, or have two keys: command (string) and background (bool default false)
  • buildSteps: same as checkSteps, but those are executed only if checkSteps and dependencies' checkSteps got processed without errors.
  • cleanUpSteps: same as checkSteps, 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


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)

Uploaded Source

Built Distribution

drkns-1.4.1-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

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

Hashes for drkns-1.4.1.tar.gz
Algorithm Hash digest
SHA256 c016d3aa25982b2777f591a4d5a82b8e2513fec2ab47d604a9040306a03abd44
MD5 dfc00151e7c5c132e94e93fac2cec7cb
BLAKE2b-256 ec1b5533a16da8d03ca8f3a23da18ef1028a338094e3d80522fa978985476137

See more details on using hashes here.

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

Hashes for drkns-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3adf49e91e66e9f5a0c1d0b20f918a9456b082e9a535dbaa003f6246e41c2f17
MD5 c29faa08e4b23a0ef59002d228b023fa
BLAKE2b-256 0ce592fc8ffd2a8ec22fe6d5cbe748a5b5ec0c1048e136b8443a78e71661253a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page