gitlab-ci-launchpad-mini-co.../README.md
Louis Vallat 5ad765fcae
Added launchpad mini in project limitations
Signed-off-by: Louis Vallat <louis@louis-vallat.xyz>
2022-06-03 09:47:07 +02:00

60 lines
2.0 KiB
Markdown

# Gitlab CI Launchpad Mini Controller
> And it's in Rust 🦀!
![Launchpad Mini](https://imgur.com/sdLy3XK.png)
## Aim
I wanted to use my Launchpad Mini in a way that was original and useful to me,
as I don't produce music. The Launchpad is a glorified MIDI pad with some LEDs,
and as a MIDI device, it can be interfaced with to do pretty much anything with
it.
I used mainly two libraries for this project:
- [gitlab](https://crates.io/crates/gitlab) to interact with the Gitlab API
- [launchy](https://crates.io/crates/launchy) to interact with the Launchpad
These two libraries are maintained at the moment this README is being written.
## Building
As any other `cargo` project, it can be built with a simple command:
```bash
cargo build --release
```
## Logging
This project uses the [env\_logger](https://crates.io/crates/env_logger) crate
for logging. You can take a look at its documentation to see how to adjust the
log level instead of using the default error log level.
## Configuring
The configuration is done through a JSON file, named `config.json` and located
in the current working directory. An example configuration file is provided,
`config.json.example`.
The abs\_x and abs\_y coordinate are defined using the top-left grid tile as
the origin.
Clicking on a tile opens the corresponding web page for the project linked to
this tile. Clicking on the `A` button will light it up, it is the restart button.
If you click on a tile with the `A` button lit up, it will retry or create a
new pipeline for this project and for this ref. You can disengage the restart
mode by pressing again the `A` button.
## Limitations
This project has some limitations right now, and some of them will be fixed:
- the program is able to talk to one and only one gitlab API right now
- the configuration file has to be in the current working directory
- only one page is allowed, but 8 could be leveraged later using the 8 selectors
- the refresh delay is fixed for all threads and is at 2 seconds
- the launchpad mini is the only launchpad that can be used with this project