summaryrefslogtreecommitdiff
path: root/README.md
blob: d82cb47b8f62df9960f4d4ef9426be19671e1c62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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 artifacts 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>
```

or:
```
minici run --range=<commit>..<commit>
```

To run jobs for commits that are in local `<branch>`, but not yet in its upstream:
```
minici run <branch>
```
or:
```
minici run --since-upstream=<branch>
```

For current branch, the name can be omitted:
```
minici run
```

To watch changes on given `<branch>` and run jobs for each new commit:
```
minici run --new-commits-on=<branch>
```

To watch new tags and run jobs for each tag matching given pattern:
```
minici run --new-tags=<pattern>
```

The above options `--range`, `--since-upstream`, etc can be arbitrarily combined.