Go to file
2022-06-03 08:53:29 +02:00
src Renamed key to token in config file and added config.json.example 2022-06-03 08:53:29 +02:00
.gitignore Initial commit 2022-06-02 17:54:58 +02:00
.gitlab-ci.yml It was the dev version that was needed 2022-06-02 18:29:25 +02:00
Cargo.toml Initial commit 2022-06-02 17:54:58 +02:00
config.json.example Renamed key to token in config file and added config.json.example 2022-06-03 08:53:29 +02:00
LICENSE Added LICENCE 2022-06-02 18:35:45 +02:00
README.md Added a logging explanation in README 2022-06-03 08:49:25 +02:00

Gitlab CI Launchpad Mini Controller

And it's in Rust 🦀!

Launchpad Mini

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 to interact with the Gitlab API
  • 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:

cargo build --release

Logging

This project uses the 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