summaryrefslogtreecommitdiff
path: root/README.md
blob: abd0500f2df9f6ab733f844e08ad85936bfe2fe5 (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
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
```