未验证 提交 b55703d8 编写于 作者: JenkinsInChina's avatar JenkinsInChina 提交者: GitHub

Add gitbook support for jcli document (#426)

* Add gitbook support
上级 94454dbc
root: ./docs/book
structure:
readme: README.md
summary: SUMMARY.md
# 快速开始
[English](https://github.com/jenkins-zh/jenkins-cli/blob/master/README.md)
# Jenkins CLI
[![Go Report Card][go-report-card-badge]][go-report-card-url]
[![Quality Gate Status][sonar-badge]][sonar-link]
[![GoDoc][godoc-badge]][godoc-url]
![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io)
[![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli)
[![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors)
[![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest)
![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total)
[![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli)
[![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
## Jenkins CLI
[![](https://goreportcard.com/badge/jenkins-zh/jenkins-cli)](https://goreportcard.com/report/jenkins-zh/jenkins-cli) [![](https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status)](https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli) [![](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](https://godoc.org/github.com/jenkins-zh/jenkins-cli) ![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io) [![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli) [![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors) [![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest) ![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total) [![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli) [![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
Jenkins CLI 可以帮忙你轻松地管理 Jenkins。不管你是一名插件开发者、管理员或者只是一个普通的 Jenkins 用户,它都是为你而生的!
# 特性
## 特性
* 支持多 Jenkins 实例管理
* 插件管理(查看列表、搜索、安装、上传)
......@@ -27,74 +18,71 @@ Jenkins CLI 可以帮忙你轻松地管理 Jenkins。不管你是一名插件开
* 重启你的 Jenkins
* 支持通过代理连接
# 安装
## 安装
我们目前支持的操作系统包括:MacOS、Linux 以及 Windows。
## mac
### mac
你可以通过 `brew` 来安装 jcli。
```
```text
brew tap jenkins-zh/jcli
brew install jcli
```
## Linux
### Linux
要在 Linux 操作系统上安装 `jcli` 的话,非常简单。只需要执行下面的命令即可:
```
```text
curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv
sudo mv jcli /usr/local/bin/
```
## Windows
### Windows
你只要[点击这里](https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-amd64.zip)就可以下载到最新版本的压缩包。之后,把解压后的文件 `jcli` 拷贝到你的系统目录下即可。
## 其他包管理器
### 其他包管理器
这里还有一些其他的包管理器:
* [Scoop](https://scoop.sh/) 的用户可以使用命令 `scoop install jcli` 来安装
了解更多[如何下载 jcli](doc/download-zh.md).
你可以从[这里](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli)获取下载的统计信息。
了解更多[如何下载 jcli](https://github.com/jenkins-zh/jenkins-cli/tree/e83af606f648040665b8b2955c1c2414bb68c1db/docs/book/zh/download-zh.md). 你可以从[这里](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli)获取下载的统计信息。
# 入门
## 入门
查阅[官方文档](http://jcli.jenkins-zh.cn/)可以了解到更多有关如何使用 `jcli` 的信息。
或者,你可以选择 Jenkins CLI 的[一个在线的交互式教程](https://www.katacoda.com/jenkins-zh/scenarios/course-jcli)
# 插件
## 插件
通过安装插件可以增强 Jenkins CLI 的功能。按照下面的命令就可以安装一个插件:
```
```text
jcli config plugin fetch
jcli config plugin install account
```
所有官方的插件,都可以在[这里](https://github.com/jenkins-zh/jcli-plugins)找到。
# 贡献
## 贡献
如果你对该项目感兴趣,请首先仔细阅读我们的[贡献指南](CONTRIBUTING.md)。我们欢迎任何形式的贡献。
如果你对该项目感兴趣,请首先仔细阅读我们的[贡献指南](https://github.com/jenkins-zh/jenkins-cli/tree/e83af606f648040665b8b2955c1c2414bb68c1db/CONTRIBUTING.md)。我们欢迎任何形式的贡献。
感谢 JetBrains 为我们提供了开源许可证。
[![goland.svg](./goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
[![goland.svg](docs/book/.gitbook/assets/goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
## 相关的项目
# 相关的项目
有一些相关的项目你可能会比较感兴趣:
* [jenni](https://github.com/m-sureshraj/jenni) 是一个 Jenkins 个人助手
# 点赞数趋势图
## 点赞数趋势图
[![Stargazers over time](https://starchart.cc/jenkins-zh/jenkins-cli.svg)](https://starchart.cc/jenkins-zh/jenkins-cli)
[go-report-card-url]: https://goreportcard.com/report/jenkins-zh/jenkins-cli
[go-report-card-badge]: https://goreportcard.com/badge/jenkins-zh/jenkins-cli
[sonar-badge]: https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status
[sonar-link]: https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli
[godoc-url]: https://godoc.org/github.com/jenkins-zh/jenkins-cli
[godoc-badge]: http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square
# Quick start
[简体中文](https://github.com/jenkins-zh/jenkins-cli/blob/master/README-zh.md)
# Jenkins CLI
## Jenkins CLI
[![Go Report Card][go-report-card-badge]][go-report-card-url]
[![Quality Gate Status][sonar-badge]][sonar-link]
[![GoDoc][godoc-badge]][godoc-url]
![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io)
[![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli)
[![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors)
[![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest)
![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total)
[![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli)
[![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
[![](https://goreportcard.com/badge/jenkins-zh/jenkins-cli)](https://goreportcard.com/report/jenkins-zh/jenkins-cli) [![](https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status)](https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli) [![](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](https://godoc.org/github.com/jenkins-zh/jenkins-cli) ![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io) [![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli) [![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors) [![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest) ![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total) [![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli) [![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
Jenkins CLI allows you manage your Jenkins in an easy way. No matter if you're a plugin
developer, administrator or just a regular user, it is made for you!
Jenkins CLI allows you manage your Jenkins in an easy way. No matter if you're a plugin developer, administrator or just a regular user, it is made for you!
# Features
## Features
* Multiple Jenkins support
* Plugins management (list, search, install, upload)
* Job management (search, build, log)
* Plugins management \(list, search, install, upload\)
* Job management \(search, build, log\)
* Configuration as Code support
* Open your Jenkins with a browser
* Restart your Jenkins
* Connection with proxy support
# Get it
## Get it
We support Mac, Linux and Windows for now.
## Mac
### Mac
You can use `brew` to install jcli.
```
```text
brew tap jenkins-zh/jcli
brew install jcli
```
## Linux
### Linux
To install `jcli` on your Linux OS, execute the following command:
```
```text
curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv
sudo mv jcli /usr/local/bin/
```
## Windows
### Windows
You can find the latest version [here](https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-amd64.zip).
Download the tar file and copy the uncompressed `jcli` directory into your system path.
You can find the latest version [here](https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-amd64.zip). Download the tar file and copy the uncompressed `jcli` directory into your system path.
## Other package managers
### Other package managers
Here are other package managers:
* [Scoop](https://scoop.sh/) users can use `scoop install jcli`
See more about [how to download jcli](doc/download.md).
You can find the download details [from here](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli).
See more about [how to download jcli](docs/book/en/download.md). You can find the download details [from here](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli).
# Get started
## Get started
Read the [official document](http://jcli.jenkins-zh.cn/) for more details on how to use `jcli`.
Or, you can take [a live interactive course](https://www.katacoda.com/jenkins-zh/scenarios/course-jcli) of Jenkins CLI.
# Plugins
## Plugins
Jenkins CLI could have more features by installing a plugin for it. You can install a plugin by the following command:
```
```text
jcli config plugin fetch
jcli config plugin install account
```
All official plugins could be found at [here](https://github.com/jenkins-zh/jcli-plugins).
# Contribution
## Contribution
If you're interested in this project. Please go through the
[contribution guide](CONTRIBUTING.md). Any contributions are welcome.
If you're interested in this project. Please go through the [contribution guide](https://github.com/jenkins-zh/jenkins-cli/tree/cb3d358df4699db11b681eb0ab9adffbfb8a7bd4/CONTRIBUTING.md). Any contributions are welcome.
Thanks to JetBrains for giving us the open source licence.
[![goland.svg](./goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
[![goland.svg](docs/book/.gitbook/assets/goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
## Similar Projects
# Similar Projects
There're a few similar projects that you might be interested in:
* [jenni](https://github.com/m-sureshraj/jenni) is a Jenkins Personal Assistant
# Stargazers over time
## Stargazers over time
[![Stargazers over time](https://starchart.cc/jenkins-zh/jenkins-cli.svg)](https://starchart.cc/jenkins-zh/jenkins-cli)
[go-report-card-url]: https://goreportcard.com/report/jenkins-zh/jenkins-cli
[go-report-card-badge]: https://goreportcard.com/badge/jenkins-zh/jenkins-cli
[sonar-badge]: https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status
[sonar-link]: https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli
[godoc-url]: https://godoc.org/github.com/jenkins-zh/jenkins-cli
[godoc-badge]: http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square
......@@ -8,10 +8,8 @@ import (
"github.com/mitchellh/go-homedir"
"github.com/spf13/cobra"
"go.uber.org/zap"
"log"
"net/http"
"os"
"os/exec"
"path/filepath"
"strings"
)
......@@ -66,16 +64,18 @@ Get more about jenkinsfile runner from https://github.com/jenkinsci/jenkinsfile-
//Start by downloading the mirror for the jenkinsfileRunner
jenkinsfileRunnerVersion := fmt.Sprintf("jenkinsfile-runner-%s.jar", runnerOption.JfrVersion)
jenkinsfileRunnerTargetPath := fmt.Sprintf("%s/.jenkins-cli/cache/%s/%s", userHome, runnerOption.WarVersion, jenkinsfileRunnerVersion)
jenkinsfileRunnerURL := fmt.Sprintf("https://repo.jenkins-ci.org/list/releases/io/jenkins/jenkinsfile-runner/jenkinsfile-runner/1.0-beta-11/%s", jenkinsfileRunnerVersion)
jenkinsfileRunnerURL := fmt.Sprintf("https://repo.jenkins-ci.org/list/releases/io/jenkins/jenkinsfile-runner/jenkinsfile-runner/%s/%s", runnerOption.JfrVersion, jenkinsfileRunnerVersion)
logger.Info("Prepare to start Downloading jenkinfileRunner", zap.String("URL", jenkinsfileRunnerURL))
downloader := util.HTTPDownloader{
URL: jenkinsfileRunnerURL,
ShowProgress: true,
TargetFilePath: jenkinsfileRunnerTargetPath,
}
if err := downloader.DownloadFile(); err != nil {
//Fatal error has occured while downloading the file.
log.Fatal(err)
if _, fErr := os.Stat(jenkinsfileRunnerTargetPath); fErr != nil && os.IsNotExist(fErr) {
downloader := util.HTTPDownloader{
URL: jenkinsfileRunnerURL,
ShowProgress: true,
TargetFilePath: jenkinsfileRunnerTargetPath,
}
if err = downloader.DownloadFile(); err != nil {
return
}
}
if runnerOption.WarPath == "" {
......@@ -121,13 +121,14 @@ Get more about jenkinsfile runner from https://github.com/jenkinsci/jenkinsfile-
return fmt.Errorf("invalid file type. kindly provide a jenkinsfile")
}
fmt.Println("We are Definitely reaching here")
command := exec.Command("java", "-jar", jenkinsfileRunnerVersion, "-w", runnerOption.WarPath, "-p", runnerOption.PluginPath, "-f", runnerOption.JenkinsfilePath)
command.Dir = fmt.Sprintf("%s/.jenkins-cli/cache/%s", userHome, runnerOption.WarVersion)
out, err := command.Output()
fmt.Println("Reaching her", string(out))
logger.Info(string(out))
var binary string
binary, err = util.LookPath("java", centerStartOption.LookPathContext)
if err == nil {
jenkinsWarArgs := []string{"java", "-jar", jenkinsfileRunnerTargetPath, "-w", runnerOption.WarPath, "-p", runnerOption.PluginPath, "-f", runnerOption.JenkinsfilePath}
env := os.Environ()
err = util.Exec(binary, jenkinsWarArgs, env, centerStartOption.SystemCallExec)
}
return nil
return
},
}
# Quick start
[简体中文](https://github.com/jenkins-zh/jenkins-cli/blob/master/README-zh.md)
## Jenkins CLI
[![](https://goreportcard.com/badge/jenkins-zh/jenkins-cli)](https://goreportcard.com/report/jenkins-zh/jenkins-cli) [![](https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status)](https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli) [![](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](https://godoc.org/github.com/jenkins-zh/jenkins-cli) ![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io) [![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli) [![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors) [![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest) ![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total) [![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli) [![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
Jenkins CLI allows you manage your Jenkins in an easy way. No matter if you're a plugin developer, administrator or just a regular user, it is made for you!
## Features
* Multiple Jenkins support
* Plugins management \(list, search, install, upload\)
* Job management \(search, build, log\)
* Configuration as Code support
* Open your Jenkins with a browser
* Restart your Jenkins
* Connection with proxy support
## Get it
We support Mac, Linux and Windows for now.
### Mac
You can use `brew` to install jcli.
```text
brew tap jenkins-zh/jcli
brew install jcli
```
### Linux
To install `jcli` on your Linux OS, execute the following command:
```text
curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv
sudo mv jcli /usr/local/bin/
```
### Windows
You can find the latest version [here](https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-amd64.zip). Download the tar file and copy the uncompressed `jcli` directory into your system path.
### Other package managers
Here are other package managers:
* [Scoop](https://scoop.sh/) users can use `scoop install jcli`
See more about [how to download jcli](docs/book/en/download.md). You can find the download details [from here](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli).
## Get started
Read the [official document](http://jcli.jenkins-zh.cn/) for more details on how to use `jcli`.
Or, you can take [a live interactive course](https://www.katacoda.com/jenkins-zh/scenarios/course-jcli) of Jenkins CLI.
## Plugins
Jenkins CLI could have more features by installing a plugin for it. You can install a plugin by the following command:
```text
jcli config plugin fetch
jcli config plugin install account
```
All official plugins could be found at [here](https://github.com/jenkins-zh/jcli-plugins).
## Contribution
If you're interested in this project. Please go through the [contribution guide](https://github.com/jenkins-zh/jenkins-cli/tree/cb3d358df4699db11b681eb0ab9adffbfb8a7bd4/CONTRIBUTING.md). Any contributions are welcome.
Thanks to JetBrains for giving us the open source licence.
[![goland.svg](docs/book/.gitbook/assets/goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
## Similar Projects
There're a few similar projects that you might be interested in:
* [jenni](https://github.com/m-sureshraj/jenni) is a Jenkins Personal Assistant
## Stargazers over time
[![Stargazers over time](https://starchart.cc/jenkins-zh/jenkins-cli.svg)](https://starchart.cc/jenkins-zh/jenkins-cli)
# Table of contents
* [Introduction](README.md)
## English
* [Job](en/job.md)
* [Plugin](en/plugin.md)
* [Download](en/download.md)
* [Credential](en/credential.md)
* [Completion](en/completion.md)
* [User](en/user.md)
* [Diganose](en/doctor.md)
* [Proxy setting](en/proxy.md)
## 中文 <a id="zh"></a>
* [介绍](zh/README.md)
* [任务](zh/job.md)
* [插件](zh/plugin.md)
* [节点](zh/agent.md)
* [打开浏览器](zh/open.md)
* [下载](zh/download.md)
* [凭据](zh/credential.md)
* [自动补全](zh/completion.md)
* [用户](zh/user.md)
* [诊断](zh/doctor.md)
* [代理设置](zh/proxy.md)
* [命令钩子](zh/hooks.md)
* [Shell](zh/shell.md)
## advanced
* [Setup config file](advanced/setup-config-path.md)
# Setup config file
In some cases, you might want to give it a specific configuration path instead of the default one. You can do it by add an environment variable `JCLI_CONFIG`.
For example, put the following config into your shell profile:
```text
JCLI_CONFIG=/var/yourPath/jenkins-cli.yaml
```
---
title: "completion"
weight: 102
---
## install auto-completion for zsh
if you install iterm2 on your macOS or linux,and you use `oh-my-zsh`,you can follow the steps:
```
# cd ~/.oh-my-zsh/plugins
// create incr folder
# mkdir incr
// download incr plugin
# wget https://mimosa-pudica.net/src/incr-0.2.zsh
// authorize incr
# chmod 777 ~/.oh-my-zsh/plugins/incr/incr-0.2.zsh
# vim ~/.zshrc, and insert "source ~/.oh-my-zsh/plugins/incr/incr-0.2.zsh" in the "~/.zshrc",save and quit
// flush configuration
# source ~/.zshrc
```
Then you can use auto-completion for jcli, maybe you will find other commands can also use it
# download
## JFrog Bintray
You can download `jcli` from [bintray.com/jenkins-zh](https://bintray.com/beta/#/jenkins-zh/generic/jenkins-cli/).
`curl -L "https://bintray.com/jenkins-zh/jenkins-cli/download_file?file_path=v0.0.24%2Fjcli-darwin-amd64.tar.gz"|tar xzv`
......@@ -9,10 +12,9 @@ Get all versions from [here](https://dl.bintray.com/jenkins-zh/generic/jenkins-c
Add YUM source repo by the following command:
```shell script
wget https://bintray.com/jenkins-zh/rpm/rpm -O /etc/yum.repos.d/bintray-jcli.repo
```
\`\`\`shell script wget [https://bintray.com/jenkins-zh/rpm/rpm](https://bintray.com/jenkins-zh/rpm/rpm) -O /etc/yum.repos.d/bintray-jcli.repo
```text
then you can install it by: `yum install jcli`
## Debian
......@@ -26,24 +28,25 @@ echo "deb https://dl.bintray.com/jenkins-zh/deb wheezy main" | sudo tee -a /etc/
then you can install it by: `sudo apt-get install jcli`
## Image
Also you can try the following ways:
`jcli_id=$(docker create jenkinszh/jcli) && sudo docker cp $jcli_id:/usr/local/bin/jcli /usr/local/bin/jcli && docker rm -v $jcli_id`
Download different version of OS? Just need to change the docker image tag:
|image|description|
|---|---|
|`jenkinszh/jcli`|Linux|
|`jenkinszh/jcli:darwin`|Mac|
|`jenkinszh/jcli:win`|Windows, you can find it from `/usr/local/bin/jcli.exe`|
|`jenkinszh/jcli:dev`|Developing version, find can find them from `/bin/linux/jcli` or `/bin/darwin/jcli` or `/bin/windows/jcli.exe`|
| image | description |
| :--- | :--- |
| `jenkinszh/jcli` | Linux |
| `jenkinszh/jcli:darwin` | Mac |
| `jenkinszh/jcli:win` | Windows, you can find it from `/usr/local/bin/jcli.exe` |
| `jenkinszh/jcli:dev` | Developing version, find can find them from `/bin/linux/jcli` or `/bin/darwin/jcli` or `/bin/windows/jcli.exe` |
Want to try the latest features? Download the developing version of different platform:
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/linux/jcli . && docker rm -v $jcli_id`
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/darwin/jcli . && docker rm -v $jcli_id`
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/windows/jcli.exe . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/linux/jcli . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/darwin/jcli . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/windows/jcli.exe . && docker rm -v $jcli_id`
## Out-of-date
......@@ -52,3 +55,4 @@ Below distributions are out-of-date. If you want to maintain them, please let us
* [GoFish](https://gofi.sh/) users can use `gofish install jcli`
* [Chocolatey](https://chocolatey.org/packages/jcli) users can use `choco install jcli`
* [Snapcraft](https://snapcraft.io/jcli) users can use `sudo snap install jcli`
# jcli Document
`jcli` was written by [golang](https://github.com/golang) which could provide you a easy way to manage your Jenkins. Unlike the [build-in cli](https://jenkins.io/doc/book/managing/cli/), `jcli` allows you manage multiple servers.
## How to get it
Read [here](../README.md) to get know about how to install `jcli`.
## Configuration
Once you'v installed `jcli`. You should provide a config file for it. Please execute cmd `jcli config generate`, this will help you to edit the config file `~/.jenkins-cli.yaml`. According to your Jenkins configuration to modify this file.
If you want to modify your config file of `jcli`. You just need to execute `jcli config edit`.
It's simple to add another Jenkins config item. Here's a sample cmd: `jcli config add -n yourJenkinsName --url http://localhost:8080/jenkins --token replacethesampletoken`.
## Plugin Management
`jcli` allows you to search, download, install, uninstall or upload a plugin.
First, please search a plugin by a keyword if you want to install it. You can get a plugin list by execute `jcli plugin search zh-cn`. You can install it with the plugin name.
For example, you can install the Simplified Chinese Localization plugin by `jcli plugin install localization-zh-cn`.
### Download Plugins
Some times, Jenkins just cannot connect with the offical Update Center. We can use the `download` sub-cmd to download all the plugins which're you need, then upload them. This command will take care of the dependencies of the plugin.
You can try it:
`jcli plugin download localization-zh-cn`
---
title: "Job"
weight: 80
---
## Job Management
......@@ -45,6 +18,7 @@ Once you triggered a job, then you can watch the log output by `jcli job log "zj
Jenkins might be stay in behind a firewall. So we cannot connect it directly. You can give `jcli` a proxy setting. It's also very simple to support a proxy setting. You just need to execute: `jcli config edit`. Then find the item which you want to add a proxy. Like the below demo:
```
jenkins_servers:
- name: dev
url: http://192.168.1.10
username: admin
......
---
title: "Plugin"
anchor: "plugin"
weight: 70
---
## Plugin Management
`jcli` allows you to search, download, install, uninstall or upload a plugin.
First, please search a plugin by a keyword if you want to install it. You can get a plugin list by execute `jcli plugin search zh-cn`. You can install it with the plugin name.
For example, you can install the Simplified Chinese Localization plugin by `jcli plugin install localization-zh-cn`.
### Download Plugins
Some times, Jenkins just cannot connect with the offical Update Center. We can use the `download` sub-cmd to download all the plugins which're you need, then upload them. This command will take care of the dependencies of the plugin.
You can try it:
`jcli plugin download localization-zh-cn`
---
title: "Proxy"
weight: 90
---
Jenkins might be stay in behind a firewall. So we cannot connect it directly. You can give `jcli` a proxy setting. It's also very simple to support a proxy setting. You just need to execute: `jcli config edit`. Then find the item which you want to add a proxy. Like the below demo:
```
jenkins_servers:
- name: dev
url: http://192.168.1.10
username: admin
token: 11132c9ae4b20edbe56ac3e09cb5a3c8c2
proxy: http://192.168.10.10:47586
proxyAuth: username:password
```
# 快速开始
[English](https://github.com/jenkins-zh/jenkins-cli/blob/master/README.md)
## Jenkins CLI
[![](https://goreportcard.com/badge/jenkins-zh/jenkins-cli)](https://goreportcard.com/report/jenkins-zh/jenkins-cli) [![](https://sonarcloud.io/api/project_badges/measure?project=jenkins-zh_jenkins-cli&metric=alert_status)](https://sonarcloud.io/dashboard?id=jenkins-zh_jenkins-cli) [![](http://img.shields.io/badge/godoc-reference-5272B4.svg?style=flat-square)](https://godoc.org/github.com/jenkins-zh/jenkins-cli) ![Sonar Coverage](https://img.shields.io/sonar/coverage/jenkins-zh_jenkins-cli?server=https%3A%2F%2Fsonarcloud.io) [![Travis](https://img.shields.io/travis/jenkins-zh/jenkins-cli.svg?logo=travis&label=build&logoColor=white)](https://travis-ci.org/jenkins-zh/jenkins-cli) [![Contributors](https://img.shields.io/github/contributors/jenkins-zh/jenkins-cli.svg)](https://github.com/jenkins-zh/jenkins-cli/graphs/contributors) [![GitHub release](https://img.shields.io/github/release/jenkins-zh/jenkins-cli.svg?label=release)](https://github.com/jenkins-zh/jenkins-cli/releases/latest) ![GitHub All Releases](https://img.shields.io/github/downloads/jenkins-zh/jenkins-cli/total) [![Docker Pulls](https://img.shields.io/docker/pulls/jenkinszh/jcli.svg)](https://hub.docker.com/r/jenkinszh/jcli/tags) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/jenkins-zh/jenkins-cli) [![Gitter](https://badges.gitter.im/jenkinsci/jenkins-cli.svg)](https://gitter.im/jenkinsci/jenkins-cli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [![HitCount](http://hits.dwyl.com/jenkins-zh/jenkins-cli.svg)](http://hits.dwyl.com/jenkins-zh/jenkins-cli)
Jenkins CLI 可以帮忙你轻松地管理 Jenkins。不管你是一名插件开发者、管理员或者只是一个普通的 Jenkins 用户,它都是为你而生的!
## 特性
* 支持多 Jenkins 实例管理
* 插件管理(查看列表、搜索、安装、上传)
* 任务管理(搜索、构建触发、日志查看)
* 支持配置即管理
* 在浏览器中打开你的 Jenkins
* 重启你的 Jenkins
* 支持通过代理连接
## 安装
我们目前支持的操作系统包括:MacOS、Linux 以及 Windows。
### mac
你可以通过 `brew` 来安装 jcli。
```text
brew tap jenkins-zh/jcli
brew install jcli
```
### Linux
要在 Linux 操作系统上安装 `jcli` 的话,非常简单。只需要执行下面的命令即可:
```text
curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv
sudo mv jcli /usr/local/bin/
```
### Windows
你只要[点击这里](https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-amd64.zip)就可以下载到最新版本的压缩包。之后,把解压后的文件 `jcli` 拷贝到你的系统目录下即可。
### 其他包管理器
这里还有一些其他的包管理器:
* [Scoop](https://scoop.sh/) 的用户可以使用命令 `scoop install jcli` 来安装
了解更多[如何下载 jcli](https://github.com/jenkins-zh/jenkins-cli/tree/e83af606f648040665b8b2955c1c2414bb68c1db/docs/book/zh/download-zh.md). 你可以从[这里](http://somsubhra.com/github-release-stats/?username=jenkins-zh&repository=jenkins-cli)获取下载的统计信息。
## 入门
查阅[官方文档](http://jcli.jenkins-zh.cn/)可以了解到更多有关如何使用 `jcli` 的信息。
或者,你可以选择 Jenkins CLI 的[一个在线的交互式教程](https://www.katacoda.com/jenkins-zh/scenarios/course-jcli)
## 插件
通过安装插件可以增强 Jenkins CLI 的功能。按照下面的命令就可以安装一个插件:
```text
jcli config plugin fetch
jcli config plugin install account
```
所有官方的插件,都可以在[这里](https://github.com/jenkins-zh/jcli-plugins)找到。
## 贡献
如果你对该项目感兴趣,请首先仔细阅读我们的[贡献指南](https://github.com/jenkins-zh/jenkins-cli/tree/e83af606f648040665b8b2955c1c2414bb68c1db/CONTRIBUTING.md)。我们欢迎任何形式的贡献。
感谢 JetBrains 为我们提供了开源许可证。
[![goland.svg](docs/book/.gitbook/assets/goland.svg)](https://www.jetbrains.com/?from=jenkins-cli)
## 相关的项目
有一些相关的项目你可能会比较感兴趣:
* [jenni](https://github.com/m-sureshraj/jenni) 是一个 Jenkins 个人助手
## 点赞数趋势图
[![Stargazers over time](https://starchart.cc/jenkins-zh/jenkins-cli.svg)](https://starchart.cc/jenkins-zh/jenkins-cli)
# 计算节点
Jenkins 的最佳实践是让 master 只做调度任务,其他的构建等任务的执行都放在 agent(计算节点)上运行。
在安装不同插件后,使得 Jenkins 可以支持静态、动态类型的节点。所谓静态,指的是需要我们人工来维护,例如:
创建、上线、下线对应的节点。所谓动态,则可以根据既定的规则,自动地创建、销毁节点;
[Kubernetes 插件](https://github.com/jenkinsci/kubernetes-plugin/) 为例,它通过动态地创建
和销毁 [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/) 来提供节点的运行。
## 协议
不管是动态还是静态的节点,都需要特定的协议来链接 agent 和 master。Jenkins 可以通过以下协议建立链接:
* SSH
* [JNLP](https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlp.html)
* [WMI](https://en.wikipedia.org/wiki/Windows_Management_Instrumentation)
查看节点列表:`jcli agent list`
## 静态节点
```
jcli agent create macos
jcli agent launch macos
```
当前,只支持 JNLP 类型的节点创建。另外,对于需要通过 HTTP 代理才能链接到 Jenkins 的话,暂时不支持。
## 删除节点
给定节点的名称即可删除:`jcli agent delete macos`
---
title: 自动补全
weight: 102
---
# 自动补全
如果你已经在 mac 或 linux 上使用的是 `oh-my-zsh`,你可以尝试以下步骤:
```text
# cd ~/.oh-my-zsh/plugins
// 创建 incr 文件夹
# mkdir incr
// 下载 incr 插件
# wget https://mimosa-pudica.net/src/incr-0.2.zsh
// 对 incr 进行授权
# chmod 777 ~/.oh-my-zsh/plugins/incr/incr-0.2.zsh
# vim ~/.zshrc,然后在 “~/.zshrc” 文件中加入 “source ~/.oh-my-zsh/plugins/incr/incr-0.2.zsh”,保存退出
// 更新配置
# source ~/.zshrc
```
接下来,就可以使用 jcli 的自动补全功能了,而且你可能发现不仅仅只有 jcli 可以自动补全,很多命令都可以自动补全了
---
title: 凭据
weight: 101
since: v0.0.24
---
# 凭据
通过 `jcli` 可以在 Jenkins 上创建凭据(Credentials),下面介绍使用方法。
## 创建
Jenkins 中的凭据有多种类型,下面的命令会创建一个用户名和密码类型的凭据:
```text
jcli credential create --credential-username your-username \
--credential-password your-password --desc your-credential-remark
```
下面的命令创建一个只包含单一加密文本的凭据:
`jcli credential create --secret my-secret --type secret`
## 列表
`jcli credential list`
## 删除
我们可以根据 Jenkins 凭据的唯一标示来删除:
`jcli credential delete --id b0b0f865-f0c0-477c-a5ba-9fae88477f9e`
---
title: 诊断
weight: 900
since: v0.0.24
---
# 诊断
由于错误配置或者是缺少相应插件,可能会导致 `jcli` 无法正常工作。然而,有时候想要快速地找到问题所在, 是一件不容易而且费时的事情。这里要介绍的`诊断`功能,就是为了解决这样的问题而存在的。
## 插件依赖
例如,命令 `jcli job search` 要依赖插件 [pipeline-restful-api](https://plugins.jenkins.io/pipeline-restful-api)。其他部分插件也有类似的依赖。有的情况下,还对插件的版本有要求。
在执行命令时,如果发现无法使用,可以尝试使用诊断参数来检查是否缺少依赖:
`jcli job search --doctor`
其中 `--doctor` 是一个全局参数。当有依赖不满足等情况发生时,会有相应的错误提示信息输出。例如: `Error: lack of plugin pipeline-restful-api`
# 下载
## JFrog Bintray
你可以从 [bintray.com/jenkins-zh](https://bintray.com/beta/#/jenkins-zh/generic/jenkins-cli/) 下载 `jcli`.
`curl -L "https://bintray.com/jenkins-zh/jenkins-cli/download_file?file_path=v0.0.24%2Fjcli-darwin-amd64.tar.gz"|tar xzv`
......@@ -9,10 +12,9 @@
通过下面的命令添加 YUM 源:
```shell script
wget https://bintray.com/jenkins-zh/rpm/rpm -O /etc/yum.repos.d/bintray-jcli.repo
```
\`\`\`shell script wget [https://bintray.com/jenkins-zh/rpm/rpm](https://bintray.com/jenkins-zh/rpm/rpm) -O /etc/yum.repos.d/bintray-jcli.repo
```text
然后,你就可以安装了:`yum install jcli`
## Debian
......@@ -26,24 +28,25 @@ echo "deb https://dl.bintray.com/jenkins-zh/deb wheezy main" | sudo tee -a /etc/
然后,你就可以安装了:`sudo apt-get install jcli`
## 镜像
你也可以尝试下面的方法:
`jcli_id=$(docker create jenkinszh/jcli) && sudo docker cp $jcli_id:/usr/local/bin/jcli /usr/local/bin/jcli && docker rm -v $jcli_id`
要下载不同操作系统下的二进制文件?只需要修改 docker 容器的标签:
|镜像|描述|
|---|---|
|`jenkinszh/jcli`|Linux|
|`jenkinszh/jcli:darwin`|Mac|
|`jenkinszh/jcli:win`|Windows,你可以从 `/usr/local/bin/jcli.exe` 这里找到可执行程序|
|`jenkinszh/jcli:dev`|你可以从这里找到开发版本 `/bin/linux/jcli``/bin/darwin/jcli``/bin/windows/jcli.exe`|
| 镜像 | 描述 |
| :--- | :--- |
| `jenkinszh/jcli` | Linux |
| `jenkinszh/jcli:darwin` | Mac |
| `jenkinszh/jcli:win` | Windows,你可以从 `/usr/local/bin/jcli.exe` 这里找到可执行程序 |
| `jenkinszh/jcli:dev` | 你可以从这里找到开发版本 `/bin/linux/jcli` 、`/bin/darwin/jcli` 或 `/bin/windows/jcli.exe` |
想要体验最新的特性?您可以下载不同平台下的开发版本:
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/linux/jcli . && docker rm -v $jcli_id`
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/darwin/jcli . && docker rm -v $jcli_id`
- `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/windows/jcli.exe . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/linux/jcli . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/darwin/jcli . && docker rm -v $jcli_id`
* `jcli_id=$(docker create jenkinszh/jcli:dev) && sudo docker cp $jcli_id:/bin/windows/jcli.exe . && docker rm -v $jcli_id`
## 过时的
......@@ -52,3 +55,4 @@ echo "deb https://dl.bintray.com/jenkins-zh/deb wheezy main" | sudo tee -a /etc/
* [GoFish](https://gofi.sh/) 的用户可以使用命令 `gofish install jcli` 来安装
* [Chocolatey](https://chocolatey.org/packages/jcli) 的用户可以使用命令 `choco install jcli` 来安装
* [Snapcraft](https://snapcraft.io/jcli) 的用户可以使用命令 `sudo snap install jcli` 来安装
命令钩子,允许你在执行命令前后,执行特定的命令;钩子包括有前置和后置命令。
例如:我们可以给执行上传插件的命令添加钩子,上传前构建插件项目,上传完成后重启 Jenkins
```
preHooks:
- path: plugin.upload
cmd: mvn clean package -DskipTests -Dmaven.test.skip
postHooks:
- path: plugin.upload
cmd: jcli center watch --util-install-complete
- path: plugin.upload
cmd: jcli restart -b
- path: plugin.upload
cmd: mvn clean
```
所谓前置钩子也就是 `preHooks`,后置钩子为 `postHooks`。字段 `path` 为以点(.)链接的命令。
其中,钩子命令依照所配置的顺序执行。
---
title: 任务
weight: 80
---
## 搜索
使用如下的命令可以搜索 Jenkins 任务:
`jcli job search input`
要查找特定类型的 Jenkins 任务,可以通过过滤对应字段的值来实现。下面,给出一个查找参数化任务的例子:
`jcli job search --filter Parameterized=true`
其中 `--filter` 支持任意字段,它是以是否包含指定字符串进行判断的。
## 构建
要触发一个任务的话,可以使用下面的命令:
`jcli job build "jobName" -b`
## 交互式输入
执行到 Jenkins 流水线中的 `input` 指令时,会有交互式输入的提示。下面是一个样例:
```
pipeline {
agent {
label 'master'
}
stages {
stage('sample') {
steps {
input 'test'
}
}
}
}
```
运行上面的流水线后,执行到 `input` 位置就会阻塞并等待输入,此时可以通过命令 `jcli job input test 1` 来使得继续执行或者中断。
## 编辑
目前,只对以脚本的形式保存在 Jenkins 上的流水线有编辑功能的支持。命令非常简单:`jcli job edit test`
如果希望能快速地给出一个流水线的样例的话,当在流水线脚本为空时,可以执行命令:`jcli job edit test --sample`
## 禁用
禁用任务:`jcli job disable job/test/`
启用任务:`jcli job enable job/test/`
## 查看日志
通过下面的命令可以参考一个任务的执行日志:
`jcli job log "jobName" -w`
## 查看历史
`jcli job history job/test/`
## 归档文件
查看归档文件列表 `jcli job artifact job/test/`
下载归档文件 `job artifact download /job/tsf/job/ddd/`
## 显示指定列
当以表格形式输出,希望能输出指定的字段为列时,我们可以通过下面的方式实现:
`jcli job search --columns Name,URL,Parameterized`
请注意,上面的参数 `--columns` 的值是以英文逗号(,)为分割的。
如果不希望输出表头,可以增加参数:`--no-headers`
`jcli job search --columns Name,URL,Parameterized --no-headers`
## 任务类型
列出当前 Jenkins 所支持的任务类型 `jcli job type`
# 打开浏览器
我们可以通过下面的命令快速地用浏览器打开 Jenkins:
`jcli open`
## 浏览器设置
默认,`jcli` 会使用系统的缺省浏览器打开。但是,如果希望能用指定的浏览器打开的话,可以参考下面的命令:
```
jcli open --browser "Google-Chrome"
JCLI_BROWSER="Google Chrome" jcli open
```
也就是说,可以通过给定参数,或者设置环境变量的方式来指定浏览器。
## 其他地址
为了方便在浏览器中打开和某个 Jenkins 相关的服务,可以把服务地址添加到配置文件中,例如:
```
current: local
jenkins_servers:
- name: local
url: http://localhost:8080
username: admin
token: '******'
data:
baidu: https://baidu.com
jenkins: https://jenkins.io
```
从上面的配置例子中能看到,字段 `data` 下添加了两个 `key-value`。如果要打开其中的一个地址的话,可以执行下面的命令:
`jcli open .baidu`
---
title: 插件
weight: 70
---
# 插件
`jcli` 可以让你搜索、下载、安装、卸载或者上传插件。
## 列表
下面的命令可以列出所有已经安装的插件:
`jcli plugin list`
如果需要根据字段进行过滤的话,可以利用下面的命令:
`jcli plugin list --filter ShortName=github`
## 检索
你可以通过关键字来搜索要安装的插件,命令如下:
`jcli plugin search zh-cn`
## 安装
给定要安装的插件的名称,并用如下的命令来安装:
`jcli plugin install localization-zh-cn`
执行完成上面的安装命令后,可以通过下面的命令看到安装过程:
`jcli center watch`
## 下载
当你的 Jenkins 无法访问外网,或者其他无法直接安装插件的情况下,可以先把需要安装的插件下载到本地,然后再上传。
`jcli plugin download localization-zh-cn`
默认情况下,会下载你需要的插件以及依赖。如果不需要下载依赖的话,可以使用参数: `--skip-dependency`
## 上传
你可以选择上传本地或者远程的插件文件,甚至可以实现编译本地的插件源码后上传。在没有给定任何参数的情况下,
上传命令首先会尝试执行 Maven 的构建命令,然后再上传文件。
`jcli plugin upload`
如果你已经有编译好的插件文件,可以使用下面的命令:
`jcli plugin upload sample.hpi`
## 升级
如果没有任何参数的话,下面的命令会列出来所有可以升级的插件,利用方向键以及空格可以选择所需要升级的插件,最后回车确认:
`jcli plugin upgrade`
另外,也可以通过给定插件名称的方式,直接升级指定的插件:
`jcli plugin upgrade blueocean-personalization`
## 卸载
`jcli plugin uninstall`
## 检查更新
检查更新,也就是从 Jenkins 的更新中心(Update Center)中获取最新的版本信息,执行下面的命令:
`jcli plugin check`
该命令执行的时间长短,和 Jenkins 所在机器的网络状态有关系,默认的超时时间为:30秒。另外,也可以通过设置参数的方式指定:
`jcli plugin checkout --timeout 60`
## 创建
对于插件的开发者而言,插件的创建、构建、发布也是高频操作,`jcli` 对这些都有支持:
`jcli plugin create`
## 构建
`jcli plugin build`
## 发布
`jcli plugin release`
---
title: 代理
weight: 90
---
# 代理设置
你可能需要设置代理才可以访问到 Jenkins,这时候,可以给 `jcli` 配置代理服务器的信息。 执行命令:`jcli config edit` 就会打开配置文件,参考下面的配置:
```text
jenkins_servers:
- name: dev
url: http://192.168.1.10
username: admin
token: 11132c9ae4b20edbe56ac3e09cb5a3c8c2
proxy: http://192.168.10.10:47586
proxyAuth: username:password
```
创建一个子 Shell 并执行 `jcli` 命令。这时候,不管如何修改 `jcli` 的配置文件,退出后都不会影响之前的配置。
执行下面的命令,会将所选择的 Jenkins 配置 `local` 作为默认的值:
`jcli shell local`
此时,我们执行命令 `jcli config` 的话能看出来。
---
title: 用户
weight: 100
---
# 用户
`jcli` 可以完成用户的创建、删除以及生成令牌(Token)的操作,
## 创建用户
```text
jcli user create <username> [password] [flags]
```
在创建用户的时候,可以指定一个密码或者随机生成。
## 生成令牌
Jenkins 的 Web API 必须是通过令牌(Token)来访问,`jcli` 支持给当前用户或者 指定用户生成令牌。给当前用户生成令牌的命令如下:
`jcli user token -g`
如果希望通过管理员给其他的 Jenkins 用户生成令牌的话,需要在启动 Jenkins 时给定一些参数, 具体参考下面的命令:
```text
jcli center start --admin-can-generate-new-tokens
jcli user token -g --target-user target-user-name
```
上面的第一条命令会启动 Jenkins 并设置为允许有管理员权限的用户为其他用户生成令牌。
## Tools requirement
[poedit](https://poedit.net/)
`make i18n-tools`
#!/bin/sh
VERSION=$(hub tag --list | sort -V | tail -n 1)
VERSION_BITS=(${VERSION//./ })
VNUM1=${VERSION_BITS[0]}
VNUM2=${VERSION_BITS[1]}
VNUM3=${VERSION_BITS[2]}
VNUM3=$((VNUM3+1))
NEW_TAG="$VNUM1.$VNUM2.$VNUM3"
echo "Updating $VERSION to $NEW_TAG"
#get current hash and see if it already has a tag
# GIT_COMMIT=`git rev-parse HEAD`
# NEEDS_TAG=`git describe --contains $GIT_COMMIT`
if [[ -z "${NEEDS_TAG}" ]]; then
make release VERSION=${NEW_TAG}
hub release create -c -a release/jcli-darwin-amd64.tar.gz \
-a release/jcli-linux-amd64.tar.gz \
-a release/jcli-windows-386.tar.gz \
-a release/jcli-darwin-amd64.txt \
-a release/jcli-linux-amd64.txt \
-a release/jcli-windows-386.txt ${NEW_TAG}
fi
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册