aboutsummaryrefslogtreecommitdiff
path: root/acid.adoc
blob: 6775d52f0f8a76aba7ad66d963d4cd838bfcaec6 (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
85
86
87
acid(1)
=======
:doctype: manpage
:manmanual: acid Manual
:mansource: acid {release-version}

Name
----
acid - A Continuous Integration Daemon

Synopsis
--------
*acid* [_OPTION_]... acid.yaml [_COMMAND_...]

Description
-----------
*acid* run without command arguments will start an HTTP server that creates
and executes tasks upon receiving push notifications from a Gitea instance,
according to the passed configuration file.

When a command is passed, *acid* will relay it to that running instance
as an RPC call.

Options
-------
*-version*::
	Output version information and exit.

Commands
--------
*enqueue* _OWNER_ _REPO_ _REF_ [_RUNNER_]...::
	Create new or restart existing tasks for the given reference,
	which will be resolved to a full commit hash.
*restart* [_ID_]...::
	Schedule tasks with the given IDs to be rerun.
	Run this command without arguments to pick up external database changes.

Configuration
-------------
For help with creating the configuration file, consult the _acid.yaml.example_
file present in the distribution.

All paths are currently relative to the directory you launch *acid* from.

The *notify*, *setup*, and *build* scripts are processed using Go's
_text/template_ package, and take an object describing the task,
which has the following fields:

*ID*::
	Unique integer ID for each task.

*Owner*::
	Gitea user owning the repository.
*Repo*::
	Name of the repository.
*FullName*::
	Full name of the repository, including the owner.
*Hash*::
	Commit hash pertaining to the task.
*Runner*::
	Runner ID.
*RunnerName*::
	Descriptive name of the runner.

*URL*::
	*acid* link to the task, where its log output can be seen.
*RepoURL*::
	Gitea link to the repository.
*CommitURL*::
	Gitea link to the commit.
*CloneURL*::
	Gitea link for cloning the repository over HTTP.

The special *quote* template function quotes fields for safe usage
in *sh*(1) command arguments.

Runners
-------
Runners receive the following additional environment variables:

*ACID_ROOT*::   The same as the base directory for configuration.
*ACID_RUNNER*:: The same as *Runner* in script templates.

Reporting bugs
--------------
Use https://git.janouch.name/p/acid to report bugs, request features,
or submit pull requests.