Skip to content

Minimalist cli tool for building similar components in a monorepo. Calculates a hash of the file content of a component and checks for existing artifacts with that hash to determine whether to execute action for the component.

License

Notifications You must be signed in to change notification settings

kristofferlind/knega

Repository files navigation

Knega

Minimalist cli tool for building many similar components in a monorepo. Calculates a hash of the file content of a component and checks for existing artifacts with that hash to determine whether to build the component.

Example configurations

Example configurations can be found in examples/, .knega.root.yml should be at project root and .component.yml should exist for every component you want to include in an action.

Installation

Download fom releases, unpack and execute. Linux example:

KNEGA_VERSION=0.1.0
curl -LO https://github.com/kristofferlind/knega/releases/download/v${KNEGA_VERSION}/knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
tar -zxvf knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
rm knega_${KNEGA_VERSION}_Linux_x86_64.tar.gz
# use as ./knega or mv ./knega some-bin-dir according to taste

Usage

knega changed/all <action> where action is a set of commands defined in configuration. It will execute those commands for all or changed components with that action defined.

Development

If you have direnv and nix package manager installed. You should be able to just start using commands found in Makefile. If you don't want those you can look at shell.nix to see what's needed.

About

Minimalist cli tool for building similar components in a monorepo. Calculates a hash of the file content of a component and checks for existing artifacts with that hash to determine whether to execute action for the component.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published