~erin b7251620cc | ||
---|---|---|
forge-client | ||
forge-server | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE.md | ||
README.md |
README.md
forge
A simple remote build system. Consists of a client (forge-client
) and server (forge-server
).
Server
On first run, forge-server
will create a configuration file for you in the default location (e.g. ~/.config/forge/config.toml
).
Use this to configure options, such as the IP & port to bind on, and whether to use authentication (along with a password).
Authentication will use Argon2id to hash and verify passwords.
Actually building stuff is a WIP.
Client
Fully WIP. Right now it just sends test data.
Eventually, everything will be specified via command arguments, using clap for parsing.
Usage: forge-client [OPTIONS] [COMMAND]
Options:
-V, --version Print version info and exit
-H, --host Host IP to connect to (default 127.0.0.1)
-p, --port Host port to connect to (default 9134)
--json <FILE> Recieve information in JSON format (or read build command from JSON file)
--auth <PASSWD> Password for authentication
--profile Whether to profile the build
--prexec <CMD> Command(s) to run before building
--repo <URL> Remote git repository to clone from
--base <NAME> Basename of the git repo (used to cd into)
--build [cargo|make] Build system to use
--subcommand [run|build|install] Cargo/Make subcommand to use
--features <FEATURES> Comma-separated cargo features
--tag [release|debug] Optional cargo flag (default debug)
Command:
send Send a new build request
status Get status of a build request
fetch Fetch the binary result of a build request