https://github.com/launchrctl/launchr
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 plugins
https://github.com/launchrctl/launchr
cli container docker golang runner shell shell-scripting yaml-configuration
Last synced: 3 months ago
JSON representation
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 plugins
- Host: GitHub
- URL: https://github.com/launchrctl/launchr
- Owner: launchrctl
- License: apache-2.0
- Created: 2023-05-16T09:54:07.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-10-01T23:01:08.000Z (4 months ago)
- Last Synced: 2025-10-13T08:19:41.464Z (3 months ago)
- Topics: cli, container, docker, golang, runner, shell, shell-scripting, yaml-configuration
- Language: Go
- Homepage:
- Size: 705 KB
- Stars: 13
- Watchers: 3
- Forks: 4
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 or kubernetes)
- 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](example) and in the [documentation](docs).
Launchr has a plugin system that allows to extend its functionality. See [core plugins](plugins), [official plugins](https://github.com/launchrctl#org-repositories) and [documentation](docs).
## Table of contents
* [Usage](#usage)
* [Installation](#installation)
* [Installation from source](#installation-from-source)
* [Development](#development)
## Usage
Build `launchr` from source locally. Build dependencies:
1. `go >=1.24`, see [installation guide](https://go.dev/doc/install)
2. `make`
Build the `launchr` tool:
```shell
make
bin/launchr --help
```
The documentation for `launchr` usage can be found in [docs](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.24`, see [installation guide](https://go.dev/doc/install)
2. `make`
**Global installation**
Install `launchr` globally:
```shell
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`:
```shell
export GOPATH=`go env GOPATH`
export PATH=$PATH:$GOPATH/bin
```
**Local installation**
The tool can be built and run locally:
```shell
make
bin/launchr --version
```
## Development
The `launchr` can be built with a `make` to `bin` directory:
```shell
make
```
It is also supported to make a build to use with `dlv` for debug:
```shell
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](https://github.com/launchrctl/launchr/releases/new)
- Github Action will compile new binaries using [goreleaser](https://goreleaser.com/) and attach them to release