1 个不稳定版本

0.0.1 2020年6月25日

#82#任务

MIT 许可证

22KB
388

Thresh

🛳 小巧部署代理

Rust

安装和设置

下载最新的发布版本并添加可执行权限

$ wget -O thresh "https://github.com/Huemul/thresh/releases/download/v0.0.1/thresh-x86-64-linux"
$ chmod +x thresh

现在,由于Thresh可用,可以运行help子命令来显示CLI信息

$ ./thresh --help
thresh 0.0.1
Tiny deployment agent

USAGE:
    thresh [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config <config>    Path to Threshfile [default: .threshfile]
    -s, --secret <secret>    Secret to generate and authenticate the token. Can also be provided in the Threshfile

SUBCOMMANDS:
    help     Prints this message or the help of the given subcommand(s)
    serve    Start thresh agent server
    token    Create a token based on the secret to authorize agent connections

接下来创建一个包含部署项目所需配置的.threshfile。可选地,此文件可以包含全局Thresh配置。一个threshfile的示例可以在这里找到。

Systemd配置(可选)

创建一个systemd服务文件(/etc/systemd/system/thresh.service),具有以下属性

[Unit]
Description=Thresh

[Service]
ExecStart=/path/to/thresh -c /path/to/.threshfile -s super-secret-secret serve -l /path/to/thresh-logs -p 8080

然后启用并启动Thresh服务

# Might require sudo
$ systemctl enable /etc/systemd/system/thresh.service
$ systemctl start thresh

要读取日志和检查状态,可以使用以下命令

$ systemctl status thresh
$ journalctl -u thresh -b

触发任务

一旦Thresh运行并暴露在互联网上,可以通过向/webhook端点POST项目名称来触发部署任务。

curl -X POST 'https://thresh.yourdomain.com/webhook' \
  -H 'Authorization: Bearer ********' \
  -d '{ "name": "foo-project" }'

开发

运行

cargo run

# Watch mode
cargo watch -x run

# Setting CLI options
cargo run -- --port 9090 --logs-dir ./logs

测试

cargo test

# Watch mode
cargo watch -x test

依赖项

~36–52MB
~1M SLoC