Launchr is a versatile CLI action runner that executes tasks defined in local or embeded yaml files across multiple runtimes:
- Short-lived container (docker)
- Shell (host)
- Golang (as plugin)
It supports:
- Arguments and options
- Automatic action discovery
- Automatic path-based naming of local actions
- Seamless extensibility via a plugin system
Actions are defined in action.yaml
files:
- either on local filesystem: Useful for project-specific actions
- or embeded as plugin: Useful for common and shared actions
You can find action examples here, here and in the documentation.
Launchr has a plugin system that allows to extend its functionality. See core plugins, official plugins and documentation.
Build launchr
from source locally. Build dependencies:
go >=1.20
, see installation guidemake
Build the launchr
tool:
make
bin/launchr --help
The documentation for launchr
usage can be found in docs.
If you face any issues with launchr
:
- Open an issue in the repo.
- Share the app version with
launchr --version
Build dependencies:
go >=1.20
, see installation guidemake
Global installation
Install launchr
globally:
make install
launchr --version
The tool will be installed in $GOPATH/bin
which is usually ~/go/bin
.
If GOPATH
env variable is not available, make sure you have it in ~/.bashrc
or ~/.zhrc
:
export GOPATH=`go env GOPATH`
export PATH=$PATH:$GOPATH/bin
Local installation
The tool can be built and run locally:
make
bin/launchr --version
The launchr
can be built with a make
to bin
directory:
make
It is also supported to make a build to use with dlv
for debug:
make DEBUG=1
Useful make commands:
- Fetch dependencies -
make deps
- Test the code -
make test
- Lint the code -
make lint
- Create a new Github release from UI
- Github Action will compile new binaries using goreleaser and attach them to release