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.
|