diff man/sci.7.in @ 13:67348ec46425

man: add manual pages
author David Demelier <markand@malikania.fr>
date Wed, 30 Jun 2021 11:33:54 +0200
parents
children 081e1c258e64
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/man/sci.7.in	Wed Jun 30 11:33:54 2021 +0200
@@ -0,0 +1,113 @@
+.\"
+.\" Copyright (c) 2021 David Demelier <markand@malikania.fr>
+.\"
+.\" Permission to use, copy, modify, and/or distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd June 30, 2021
+.Dt SCI 7
+.Os
+.\" NAME
+.Sh NAME
+.Nm sci
+.Nd simple continuous integration framework
+.\" DESCRIPTION
+.Sh DESCRIPTION
+The
+.Nm
+framework is a set of utilities to run automated tasks similarly to alternatives
+such as jenkins or buildbot.
+.Pp
+In contrast to those,
+.Nm sci
+does not know how to build project nor how to retrieve information when to build
+them. It only works by user user project script to be executed upon addition of
+jobs.
+.Pp
+It is designed in mind to be as simple as possible to improve flexibility and
+simple documentation.
+.\" OVERVIEW
+.Sh OVERVIEW
+The
+.Nm
+framework is split into four individual programs that are used independently.
+The communication workflow is:
+.Bd -literal
+scid <-- (UNIX socket) --> scictl
+     ^-- (UNIX socket) --> sciwebd <-- (HTTP with JSON) --> sciworkerd
+.Ed
+.Pp
+The
+.Nm scid
+daemon is the unique access to the SQLite database and simply take requests over
+a UNIX socket to retrieve and set results into it.
+.Pp
+The
+.Nm scictl
+is the administrative utility to update the database using a command line
+interface. It can also be used to create jobs and their result manually if
+wanted.
+.Pp
+The
+.Nm sciwebd
+is a CGI/FastCGI utility daemon that parse HTTP requests and dispatch them to
+.Nm scid
+using a JSON API. As it is written using CGI it does not involve SSL nor
+authentication and must be done using a HTTP web server proxy if needed.
+.Pp
+The
+.Nm sciworkerd
+is a daemon executing jobs on a host machine. It access the jobs listing by
+querying
+.Nm sciwebd
+and output their result. By this way, it can run on remotes machine while both
+.Nm scid
+and
+.Nm sciwebd
+can run on a different machine.
+.\" ENTITIES
+.Sh ENTITIES
+The process handle different kind of entities in the database.
+.\" PROJECTS
+.Ss PROJECTS
+A project is an user description of what to be automated and tested. It has a
+name, description, project URL and a script to execute. They can be created
+using the
+.Cm project-add
+command from
+.Nm scictl .
+.\" JOBS
+.Ss JOBS
+Jobs are tasks to be performed by any worker for a given project. It has an user
+arbitrary tag that will be passed to the project script as sole argument. In
+contrats to many CI system, the sci framework has no information about how to
+build and access a project and as such the job tag can be anything up to the
+user (a SCM repo revision, date, simple id, etc).
+.\" WORKERS
+.Ss WORKERS
+A worker is a host system that connects to
+.Nm sciwebd
+using HTTP protocol to get acces to jobs to perform, execute them and finally
+send the result back. They have been designed to use HTTP to allow remote usage.
+.\" JOB RESULTS
+.Ss JOB RESULTS
+A job result is the detail about a job ran by a worker for a specific project.
+If a job exists for one project and there are four workers on the user
+installation, there will be four job results. It has an exit code (got from the
+user script), a log console (capture from standard output and error) and a
+timestamp when it was started.
+.\" SEE ALSO
+.Sh SEE ALSO
+.Xr scid 8 ,
+.Xr scictl 8 ,
+.Xr sciwebd 8 ,
+.Xr sciworkerd 8