Skip to content

Launchr is a versatile CLI action runner that executes tasks defined in local or embeded yaml files across multiple runtimes. It supports arguments, options, automatic action discovery, and seamless extensibility via a plugin system

License

Notifications You must be signed in to change notification settings

launchrctl/launchr

Repository files navigation

Launchr

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.

Table of contents

Usage

Build launchr from source locally. Build dependencies:

  1. go >=1.20, see installation guide
  2. make

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:

  1. Open an issue in the repo.
  2. Share the app version with launchr --version

Installation

Installation from source

Build dependencies:

  1. go >=1.20, see installation guide
  2. make

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

Development

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:

  1. Fetch dependencies - make deps
  2. Test the code - make test
  3. Lint the code - make lint

Publishing a new release

  • Create a new Github release from UI
  • Github Action will compile new binaries using goreleaser and attach them to release

About

Launchr is a versatile CLI action runner that executes tasks defined in local or embeded yaml files across multiple runtimes. It supports arguments, options, automatic action discovery, and seamless extensibility via a plugin system

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages