thingy

Lightweight build server and thing-doer

Using thingy

Installation: cargo install --force thingy

Run: thingy <path/to/workspace/folder/containing thingy.yaml>

Thingy is a command line application and works inside a 'workspace' folder. A thingy workspace is a plain folder with a thingy.yaml file in it. This file's structure is based on this struct. This file lists build jobs and configurations.

An example of a workspace file: ```yaml jobs: - name: "test" repourl: "git@github.com:n-k/thingy.git" branch: "master" buildscript: "build.sh" # should be an executable file present in the repository pollintervalseconds: 300 auth: # optional PrivateKey: # currently only supported method, besides no auth path: "/path/to/your/ssh/private/key" passphrase: "optional - if key has passphrase"

`` In this example, it is assumed that the repository contains an executable filebuild.sh. When a new commit is being built, thingy will pull the code, set CWD to the checkout directory, and runbuild.sh` with a few special envronment variables. See next section for list of additional environment variables.

List of environment variables provided to build scripts

Roadmap

FAQ

  1. Why?
  2. This has the minimal set of features which I need for my personal projects, and home-lab automation things. Every other alternative seemed overkill for my needs. I also run this on Raspberry Pi's, and this project will always focus on low resource consumption.
  3. Is this going to be maintained? Will you add features?
  4. I use this myself, so I will maintain at least the current features and a few more (please see roadmap section). If you would like to see some additional features, please open a Github issue, or send a PR.
  5. Why only Git support?
  6. I only have Git repositories. PRs are very welcome for supporting others.