minici: Minimalist CI framework to run checks on local machine

[ gpl, program, testing ] [ Propose Tags ]

Runs defined jobs, for example to build and test a project, for each git commit in a given set and reports results. The jobs are configured in a simple YAML file and can produce artifacts to be used in other steps.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
ci

Options for CI testing

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.2
Change log CHANGELOG.md
Dependencies base (>=4.15 && <4.21), bytestring (>=0.10 && <0.13), containers (>=0.6 && <0.8), directory (>=1.3 && <1.4), exceptions (>=0.10 && <0.11), filepath (>=1.4 && <1.6), HsYAML (>=0.2 && <0.3), mtl (>=2.2 && <2.4), parser-combinators (>=1.3 && <1.4), process (>=1.6 && <1.7), stm (>=2.5 && <2.6), template-haskell (>=2.17 && <2.23), text (>=1.2 && <1.3 || >=2.0 && <2.2), th-compat (>=0.1 && <0.2) [details]
License GPL-3.0-only
Author Roman Smrž
Maintainer roman.smrz@seznam.cz
Category Testing
Home page https://erebosprotocol.net/minici
Source repo head: git clone git://erebosprotocol.net/minici
Uploaded by RomanSmrz at 2024-07-30T18:53:28Z
Distributions NixOS:0.1.2
Executables minici
Downloads 23 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2024-07-30 [all 1 reports]

Readme for minici-0.1.2

[back to package description]

MiniCI

MiniCI runs jobs defined in the minici.yaml file in the root of the project (on the same level as the .git directory). With that, minici invocation can execute the jobs for local commits that are not yet in upstream (remote) branch or for any manually given commit range.

Job definition

The top-level elements of the YAML file are job <name> defining steps to perform the job and potentially listing artefacts produced or required.

Example:

job build:
  shell:
    - make
  artifact bin:
    path: build/example

job test:
  uses:
    - build.bin
  shell:
    - ./build/example test

Each job is a map with the following attributes:

shell : List of shell commands to perform the job

artifact <name> (optional) : Defines artifact <name> produced by this job. Is itself defined as a dictionary.

artifact <name>.path : Path to the produced artifact file, relative to the root of the project.

uses (optional) : List of artifact required for this job, in the form <job>.<artifact>.

Usage

To run jobs for a git commit range:

minici run <commit>..<commit>

To run jobs for commits that are in local <branch>, but not yet in its upstream:

minici run <branch>

For currently branch, the name can be omitted:

minici run