#jenkins #terminal #ci #cli

app jenq

查询匹配过滤条件的 Jenkins 任务

2 个版本

使用旧的 Rust 2015

0.1.2 2018 年 11 月 30 日
0.1.1 2018 年 11 月 29 日

#12 in #jenkins

自定义许可证

17KB
293

jenq

CircleCI Crates.io

查询 Jenkins 参数化任务的 history

身份验证

设置 evars 以通过 Jenkins 进行身份验证

export JENKINS_URL=https://jenkins.domain.invalid
export JENKINS_API_TOKEN=API_TOKEN_FROM_USER_PAGE
export JENKINS_API_USER=user.name

用户只需要查询所需任务的读取权限。

用法

为名为 jenq 的任务请求 historylatestconsole,可选地指定过滤条件

jenq history myjobname -f APP:myapp -f VERSION=0.1.2
jenq console myjobname -f APP:myapp
jenq latest myjobname

过滤条件可以在所有子命令中使用,并匹配 Jenkins 字符串参数。这里假设 myjobname 有两个字符串参数: APPVERSION

上面的 history 示例获取两个参数值都匹配的历史记录。

上面的 console 示例获取匹配 APP 参数的最新控制台输出。

上面的 latest 示例获取 Jenkins 中不匹配任何内容的最新任务编号。

jenq history

创建最后匹配任务的表格(由过滤条件引起的数字间隔)

BUILD  UPDATED              RESULT
189    2018-11-27 20:09:44  Some(Success)
182    2018-11-26 17:22:24  Some(Success)
160    2018-11-23 15:33:33  Some(Success)
130    2018-11-22 12:08:15  Some(Success)

注意:构建号已加下划线,在终端中可点击链接 (如果您的终端模拟器支持)

jenq latest

生成匹配您参数的最后构建的链接和信息

myjobnames#189 (478354) at 2018-11-27 20:09:44 UTC on https://jenkins.domain.invalid/job/myjobname/189/

jenq console

获取最新匹配任务或编号任务的原始控制台输出

jenq console myjobname
jenq console myjobname 32

生成原始控制台输出,以及预期的 Jenkins 垃圾信息(此处已截断)

Started by upstream project "myjobname" build number 32
originally caused by:
 Started by remote host 1.1.1.1
[EnvInject] - Loading node environment variables.
....🐘.....
shipcat::kube: Waiting 65s for deployment webapp to rollout (not ready yet)
shipcat::helm::direct: successfully rolled out webapp
Finished: SUCCESS

安装

安装最新稳定版(已安装 rust)

cargo install jenq # latest stable

安装最新稳定版(未安装 rust,仅限 Linux)

JENQ_VERSION=0.1.1
curl -sSL https://github.com/clux/jenq/releases/download/${JENQ_VERSION}/jenq.x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local

JENQ_VERSION 变量替换为您想要的 版本

自动完成

将此添加到您的 ~/.bash_completion 文件

if hash jenq 2> /dev/null; then
    source <(jenq completions bash)
fi

开发

克隆和构建

git clone [email protected]:clux/jenq.git && cd jenq
cargo build
ln -sf $PWD/target/debug/jenq /usr/local/bin/jenq

许可证

Apache 2.0 许可证。有关详细信息,请参阅 LICENSE。

衍生自 shipcat 0.74.0,许可证为 Apache 2.0。

依赖项

~26MB
~518K SLoC