Compile `punyci` with `go build` or `make`.
-Setup `podman` for an unprivileged user. To receive mails `/usr/bin/sendmail`
+Setup `podman` for an unprivileged user. To send mails `/usr/bin/sendmail`
needs to be installed (provided by e.g. Postfix, nullmailer, etc.). Create a
bare Git repository and call `punyci post-receive` from the post-receive hook.
Alternatively, setup a regular Git repository and call `punyci post-commit`
from the post-commit hook.
-punyci can run on the same host or on a remote host via SSH.
-
== Usage
This will create an email reporting the failure of the job. It's send to the
current user the CI is running as (adapt with `~/.forward` or similar). The
-container continues to run for about an hour. To debug the issue simply run
-`podman exec -it $uuid-from-email bash` on the host where the CI is running.
+container continues to run for an hour. To debug the issue simply run `podman
+exec -it $uuid-from-email sh` on the host where the CI is running.
If a job succeeds then no mail is generated. The only exception is if the
-previous run of the job failed. Then a "fixed" mail is generated. Failing jobs
+previous run of the job failed. Then a "fixed" mail is generated. Failed jobs
are marked with an empty file `punyci-failed-$job` in the bare repository.
The build log of the last job is stored in `punyci-log-$job` in the bare
Cache = true
An unlimited number of jobs can be configured. They are run in sequence. A
-failed job doesn't stop the following jobs from starting.
+failing job doesn't stop the following jobs from starting.
`Script` can be an arbitrary script (multiple lines with TOML's `"""`
strings). If no shebang is present then `#!/bin/sh` is prepended. Otherwise
- If the script exits with a non-zero exit code wait for the container to
exit with a timeout of one hour
- Kill the container
+- Send email if running in the background and the job either failed or was
+ fixed
=== Container