Prepare to delete history commits.

This commit is contained in:
Hector PENG 2024-08-04 19:32:26 +08:00
commit 9bd87789ea
153 changed files with 11754 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
book
target
Cargo.lock
/index.html

12
Jenkinsfile vendored Normal file
View File

@ -0,0 +1,12 @@
#! /usr/bin/env groovy
pipeline {
agent any
stages {
stage('测试构建') {
steps {
sh '/home/jenkins/.cargo/bin/mdbook --version'
}
}
}
}

373
LICENSE Normal file
View File

@ -0,0 +1,373 @@
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---------------------------
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
-------------------------------------------
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.

27
README.md Normal file
View File

@ -0,0 +1,27 @@
# Jenkins 全知道 🏗️
有关 Jenkins CI/CD 的全面资料。
> Jenkins 是一款由 Java 编写的开源的持续集成工具。Jenkins 的扩展插件已经发布,能使非 Java 语言编写的项目也使用 Jenkins。对于大多数的版本控制系统和大的数据库有与 Jenkins 集成的插件可用。许多构建build工具都是通过他们各自的插件提供支持。插件还可以改变 Jenkins 的外观,或添加新的功能。
>
> [维基百科Jenkins (软件)](https://zh.wikipedia.org/zh-cn/Jenkins_(%E8%BD%AF%E4%BB%B6))
---
在线阅读:[🏗️ jenkins.xfoss.com](https://jenkins.xfoss.com/)
---
## 用户手册概述
本页提供了 Jenkins 用户手册中的文档概述。
如果你想启动并运行 Jenkins请参阅 [安装 Jenkins](src/Ch01_Installing_Jenkins.md),了解如何在你选择的支持平台上安装 Jenkins 的程序。
如果你是一名典型的 Jenkins 用户(任何技能水平),想了解更多关于 Jenkins 的使用,请看 [使用 Jenkins](src/Ch02_Using_Jenkins.md)。也可以参考单独的 [Pipeline](src/Ch03_Using_Jenkins.md) 和 [Blue Ocean](src/Ch04_Blue_Ocean.md) 章节,了解有关这些 Jenkins 核心功能的更多信息。
如果你是一名 Jenkins 管理员,想知道更多关于管理 Jenkins 节点和实例的信息,请看 [管理 Jenkins](src/Ch05_Managing_Jenkins.md)。
如果你是一名系统管理员,想学习如何执行 Jenkins 服务器和节点的备份、恢复、维护,请看 [Jenkins 系统管理](src/Ch06_System_Administration.md)。
其余章节设计 Jenkins 集群与故障排除等方面。最后章节是个词汇表。

23
book.toml Normal file
View File

@ -0,0 +1,23 @@
[book]
authors = ["Lenny Peng"]
language = "zh"
multilingual = false
src = "src"
title = "又一本 Jenkins 书。"
description = "又一本 Jenkins 书Yet another Chinese Jenkins book。"
[preprocessor.pagetoc]
[output.html]
additional-css = ["theme/pagetoc.css"]
additional-js = ["theme/pagetoc.js"]
git-repository-url = "https://github.com/gnu4cn/jenkins_book_zh"
git-repository-icon = "fa-github"
[output.html.print]
enable = false
[output.html.search]
enable = false
[output.html.favicon]
png = true

View File

@ -0,0 +1,5 @@
FROM jenkins/ssh-agent:alpine
USER root
RUN apk add --update alpine-sdk wget gcompat
RUN mkdir /opt/nds32le-elf-mculib-v5
RUN wget https://gitlab.xfoss.com/it-group/nds-toolchain/-/raw/21aade02c2d51747017b73d15bc03ee3e4ebc298/nds32le-elf-mculib-v5.tar.gz -O - | tar -xzvf - -C /opt/nds32le-elf-mculib-v5

View File

@ -0,0 +1,5 @@
FROM jenkins/ssh-agent:jdk11
USER root
RUN apt update && apt install -y wget build-essential
RUN mkdir /opt/nds32le-elf-mculib-v5
RUN wget https://gitlab.xfoss.com/it-group/nds-toolchain/-/raw/21aade02c2d51747017b73d15bc03ee3e4ebc298/nds32le-elf-mculib-v5.tar.gz -O - | tar -xzvf - -C /opt/nds32le-elf-mculib-v5

21
src/Ch00_Overview.md Normal file
View File

@ -0,0 +1,21 @@
# Jenkins 全知道
有关 Jenkins CI/CD 的全面资料。
> Jenkins 是一款由 Java 编写的开源的持续集成工具。Jenkins 的扩展插件已经发布,能使非 Java 语言编写的项目也使用 Jenkins。对于大多数的版本控制系统和大的数据库有与 Jenkins 集成的插件可用。许多构建build工具都是通过他们各自的插件提供支持。插件还可以改变 Jenkins 的外观,或添加新的功能。
>
> [维基百科Jenkins (软件)](https://zh.wikipedia.org/zh-cn/Jenkins_(%E8%BD%AF%E4%BB%B6))
## 用户手册概述
本页提供了 Jenkins 用户手册中的文档概述。
如果你想启动并运行 Jenkins请参阅 [安装 Jenkins](./Ch01_Installing_Jenkins.md),了解如何在你选择的支持平台上安装 Jenkins 的程序。
如果你是一名典型的 Jenkins 用户(任何技能水平),想了解更多关于 Jenkins 的使用,请看 [使用 Jenkins](./using_jenkins.md)。也可以参考单独的 [Pipeline](./pipeline.md) 和 [Blue Ocean](Ch04_Blue_Ocean.md) 章节,了解有关这些 Jenkins 核心功能的更多信息。
如果你是一名 Jenkins 管理员,想知道更多关于管理 Jenkins 节点和实例的信息,请看 [管理 Jenkins](Ch05_Managing_Jenkins.md)。
如果你是一名系统管理员,想学习如何执行 Jenkins 服务器和节点的备份、恢复、维护,请看 [Jenkins 系统管理](Ch06_System_Administration.md)。
其余章节涉及 Jenkins 集群与故障排除等方面。最后章节是个词汇表。

View File

@ -0,0 +1,7 @@
# 安装 Jenkins
本章中的过程适用于 Jenkins 的新安装。
Jenkins 通常在其自己的进程中作为独立应用程序运行。 Jenkins WAR 文件捆绑了 [Winstone](https://github.com/jenkinsci/winstone),一个 [Jetty](https://www.eclipse.org/jetty/) servlet 容器包装器,并且可以在任何操作系统或平台上启动,只要有 Jenkins 支持的 Java 版本。
理论上Jenkins 也可以在 [Apache Tomcat](https://tomcat.apache.org/) 或 [WildFly](https://www.wildfly.org/) 这样的传统 servlet 容器中作为 servlet 运行,但在实践中,这基本上没有经过测试,而且有很多注意事项。特别是,对 WebSocket 代理的支持只在 Jetty servlet 容器中实现。详见 [Servlet 容器支持政策](https://www.jenkins.io/doc/administration/requirements/servlet-containers) 页面。

61
src/SUMMARY.md Normal file
View File

@ -0,0 +1,61 @@
[概述 🏗️](Ch00_Overview.md)
- [安装 Jenkins](Ch01_Installing_Jenkins.md)
- [Docker 方式安装](./installation/docker.md)
- [K8s 方式安装](./installation/k8s.md)
- [Linux 方式安装](./installation/linux.md)
- [其他安装方式](./installation/others.md)
- [初始设置](./installation/initial_settings.md)
- [使用 Jenkins](./using_jenkins.md)
- [使用凭据](./usage/using_credentials.md)
- [搜索框](./usage/search_box.md)
- [通过名字引用另一个项目](./usage/referencing_another_project_by_name.md)
- [中止某个构建](./usage/aborting_a_build.md)
- [文件指纹](./usage/fingerprints.md)
- [使用本地语言](./usage/using_local_lang.md)
- [修改时区](./usage/change_time_zone.md)
- [远程访问 API](./usage/remote_access_api.md)
- [因执行器的饿死情况Executor Starvation](./usage/executor_starvation.md)
- [使用 Jenkins 代理](./usage/using_jenkins_agents.md)
- [在 Jenkins 中使用 JMeter](./usage/using_jmeter_with_jenkins.md)
- [流水线 Pipeline](./pipeline.md)
- [Jenkins 管道入门](./pipeline/get_started.md)
- [使用 `Jenkinsfile`](./pipeline/jenkinsfile.md)
- [运行流水线](./pipeline/running.md)
- [分支与拉取请求](./pipeline/branches.md)
- [在流水线中使用 Docker](./pipeline/docker.md)
- [使用共享库扩展 Pipeline](./pipeline/shared-libraries.md)
- [流水线开发工具](./pipeline/development_tools.md)
- [流水线语法](./pipeline/syntax.md)
- [流水线即代码](./pipeline/pipeline_as_code.md)
- [流水线最佳实践](./pipeline/best_practices.md)
- [调整流水线](./pipeline/scaling_pipelines.md)
- [CPS 方法不匹配](./pipeline/CPS_method_mismatches.md)
- [Pipeline: 节点与进程](./pipeline/nodes_and_processes.md)
- [Blue Ocean](./blue_ocean.md)
- [Blue Ocean 入门](./blue_ocean/getting_started.md)
- [创建流水线](./blue_ocean/create_a_pipeline.md)
- [管理 Jenkins](./managing.md)
- [Jenkins 命令行界面](./managing/jenkins_cli.md)
- [扩展 Jenkins 规模](scaling.md)
- [硬件建议](./scaling/hardware_recommendation.md)
- [系统管理](administration.md)
- [Java 要求](./administration/java_requirements.md)
- [浏览器兼容性](./administration/web_browsers.md)
- [Windows 系统支持政策](./administration/windows_support_policy.md)
- [Linux 系统支持政策](./administration/linux_support_policy.md)
- [词汇表](./glossary.md)
- [备忘录](memos.md)

1
src/administration.md Normal file
View File

@ -0,0 +1 @@
本章介绍 Jenkins 系统管理方面的知识,包括 Java 要求、Jenkins 升级、Windows 系统支持政策与 Linux 系统支持政策等内容。

View File

@ -0,0 +1,57 @@
## Java 要求
Jenkins 安装分别有单独的运行和作业执行两方面的要求。
### 运行 Jenkins 系统
从 Jenkins 2.357 和 LTS 2.361.1 开始Jenkins 需要 Java 11 或 17。请 [在公告博文中阅读更多相关内容](https://www.jenkins.io/blog/2022/06/28/require-java-11/)。
> *将 Java 版本升级到 11*
>
> 将现有的 Jenkins 设置从 Java 8 升级到 Java 11请参考 [升级指南](#把-jenkins-的-java-版本从-8-升级到-11)。
### 在 Docker 中的 Java 11 上运行 Jenkins
Java 11 Docker 安装说明包含在 [“下载和运行 Docker 中的 Jenkins”](Ch01_Installing_Jenkins.md#下载和运行-docker-中的-jenkins) 中。或者,`jenkins/jenkins:jdk17` Docker 镜像允许咱们在 Java 17 上运行 Jenkins 控制器。
所有其他的Java版本都不被支持。
Jenkins项目使用以下JDK/JREs执行完整的测试流程
- OpenJDK JDK/JRE 11 - 64 位;
- OpenJDK JDK/JRE 17 - 64 位。
其他厂商的 JRE/JDK 是被支持的,可以使用。关于已知的 Java 兼容性问题,请参考 [我们的 issue tracker](https://issues.jenkins.io/issues/?jql=labels%3Djdk)。Jenkins 维护者们积极测试 [基于 HotSpot 的 Java 虚拟机](https://en.wikipedia.org/wiki/HotSpot_(virtual_machine),如来自 OpenJDK、Eclipse Temurin 和 Amazon Corretto 等。Jenkins 维护者不测试基于 Eclipse OpenJ9 的 Java 虚拟机。[Platform SIG](https://www.jenkins.io/sigs/platform/) 在 2021 年 8 月停止了对基于 OpenJ9 的 Java 虚拟机的工作。
### 在 Jenkins 上运行基于 Java 的工具和构建
用于构建基于 Java 项目的 JDK 版本,或用于运行基于 Java 工具的 Java 版本独立于用于运行 Jenkins 控制器和代理进程的 Java 版本。在构建过程中,可以启动任何版本的 JRE 或 JDK只要他与运行构建的系统兼容即可。这包括
- 在 shell 构建步骤中执行 `java``javac`,以及类似的情况;
- 使用由 JDK 工具安装程序管理的 JDK 执行 Maven/Ant/... 等构建步骤。
少数插件有更严格的要求,一般要求构建的 Java 版本与运行 Jenkins 控制器和代理所用的版本相同。一个明显的例子是 Maven 集成插件,他要求用于 Maven 构建的 JDK 版本必须与用于 Jenkins 控制器的版本至少相同。这些情况一般在插件的文档中都有记载。
### 监控 Java 版本
现代版本的 Jenkins 控制器和 Jenkins 代理会验证 Java 要求,并在启动时通知用户不支持的版本。
[Versions Node Monitors 插件](https://plugins.jenkins.io/versioncolumn) 提供了详细的 Java 版本监控。
### 所使用的 Java 开发套件 JDKs
Jenkins 项目使用 [Eclipse Temurin](https://projects.eclipse.org/projects/adoptium.temurin) 作为其主要的 JDK 来构建和测试基于 Java 的应用程序。这包括:
- 容器镜像;
- Jenkins 核心发布版本的构建;
- [自动化的插件版本发布](https://www.jenkins.io/doc/developer/publishing/releasing-cd/)
- [持续集成构建和测试](https://ci.jenkins.io/)
- 测试基础设施。
选择 Temurin 的一些理由是:
- 在多种平台上的可用性,包括不同的操作系统和体系结构,以及许多不同的 Java SE 版本;
- 由 Eclipse 基金会提供定期维护和长期支持。

View File

@ -0,0 +1,40 @@
## Linux 支持政策
本页记录了 Jenkins 控制器和代理的 Linux 支持政策。
### 范围
个别 Jenkins 插件可能对控制器和/或代理上的 Linux 版本设置额外的要求。本页没有记录这些要求。请参考 [插件文档](https://plugins.jenkins.io/) 以了解额外的要求。
### 缘由
理论上Jenkins 可以在任何可以运行所支持 Java 版本的地方运行但在实践中存在一些限制。Jenkins core 和一些插件包括了原生代码,或依赖于 Linux API 和子系统,因此他们依赖于特定的 Linux 版本。Jenkins 平台特定的安装包依赖于特定的 Linux 版本。
### 支持级别
我们为 Linux 平台定义了多个支持级别。
| 支持级别 | 描述 | 平台 |
| :-- | :-- | :-- |
| **级别 1** - 受支持 | 我们为这些平台运行自动化的软件包管理器安装测试,我们打算及时修复报告的问题。我们推荐 Linux 下基于包管理器的安装或基于容器的安装。安装也可以使用 `jenkins.war` 而不使用包管理器,尽管我们的自动化测试集中在包管理器和容器安装上。 | <ul><li>[在 ci.jenkins.io 上测试过的](https://ci.jenkins.io/job/Packaging/job/packaging/job/master/) 使用 Debian 打包格式的 64位amd64Linux 版本;</li><li>[在 ci.jenkins.io 上测试过的](https://ci.jenkins.io/job/Packaging/job/packaging/job/master/) 使用 Red Hat rpm 打包格式的 64 位 (amd64) Linux 版本;</li><li>[在 ci.jenkins.io 上测试过的](https://ci.jenkins.io/job/Packaging/job/packaging/job/master/) 使用 OpenSUSE rpm 打包格式的 64 位 (amd64) Linux 版本;</li><li>[在 ci.jenkins.io 上测试过的](https://ci.jenkins.io/job/Infra/job/acceptance-tests/) 使用 Debian 打包格式的 64 位arm64、s390xLinux 版本;</li><li>[在 ci.jenkins.io 上测试过的](https://ci.jenkins.io/job/Infra/job/acceptance-tests/) 使用 rpm 打包格式的 64 位arm64s390xLinux 版本;</li><li>为 [控制器](https://hub.docker.com/r/jenkins/jenkins) 和各种代理发布的 Linux 容器镜像amd64、arm64、s390x</li></ul> |
| **级别 2** - 补丁会被重视 | 支持可能有限制和额外要求。我们不测试兼容性,而且我们可能在任何时候放弃支持。我们考虑那些不会使 1 级支持处于风险之中并且不会产生维护开销的补丁。 | <ul><li>32位x86arm的 Linux 版本;</li><li>RISC-V 和其他不包含在 1 级支持中的架构;</li><li>预览版。</li></ul> |
| **级别 3** - 不受支持 | 已知这些版本不兼容或有严重局限。我们不支持列出的平台,我们不接受补丁。 | 操作系统供应商不再支持的 Linux 版本。 |
### 参考
- [Debian 的长期支持](https://wiki.debian.org/LTS)
- [红帽企业级Linux的生命周期](https://access.redhat.com/support/policy/updates/errata)
- [SUSE 产品支持生命周期](https://www.suse.com/lifecycle/)
- [Ubuntu 生命周期和发布节奏](https://ubuntu.com/about/release-cycle)。
### 贡献
我们欢迎你提出增加对其他 Linux 平台支持的 PR或者分享反馈我们将感谢你的贡献 Jenkins 中的 Linux 支持是 [平台特别兴趣小组](https://www.jenkins.io/sigs/platform/),他有 [聊天室](https://app.gitter.im/#/room/#jenkinsci_platform-sig:gitter.im)、[论坛](https://community.jenkins.io/),以及 [定期会议](https://www.jenkins.io/sigs/platform/#meetings)。欢迎你加入这些频道。
### 版本历史
- 2022 年三月 - 首个版本([邮件列表中的讨论](https://groups.google.com/g/jenkinsci-dev/c/cYi4GyG7Il8/m/oQ2m0C3UAgAJ)、[治理会议记录和录音](https://community.jenkins.io/t/governance-meeting-jan-26-2022/1348))。

View File

@ -0,0 +1,63 @@
## 把 Jenkins 的 Java 版本从 8 升级到 11
有一些细节和步骤来升级用于运行 Jenkins 的 JVM更具体地说是从 Java 8 到 Java 11。
如果你要升级用于运行 Jenkins 的 JVM特别是如果你要从 Java 8 升级到 Java 11有一些细节你应该知道也应该采取预防措施。
### 备份
与任何升级一样,我们建议备份 `JENKINS_HOME`,并在生产实例上,执行升级之前,用备份测试升级。
### 升级 Jenkins
如果你需要升级 Jenkins 以及 JVM我们建议你
1. 备份 `JENKINS_HOME`
2. 停止 Jenkins 实例;
3. 升级运行 Jenkins 的 JVM
- 使用软件包管理器来安装新的 JVM
- 确保默认 JVM 是新安装的版本。如果不是,运行 `systemctl edit jenkins` 并设置 `JAVA_HOME` 环境变量或 `JENKINS_JAVA_CMD` 环境变量。
4. 将 Jenkins 升级到最新版本;
- 如何升级 Jenkins 取决于咱们原来的 Jenkins 安装方法;
- 我们Jenkins 开发团队)建议你使用你系统的软件包管理器(如 `apt``yum`)。
5. 验证升级,以确认所有的插件和作业都已加载;
6. 升级所需的插件(见 [升级插件](#升级插件))。
从 Jenkins 2.357 每周发布版和长期支持版 2.361.1 开始Java 11 或 Java 17 是必需的。
### 升级插件
不仅要升级 Jenkins 和 JVM而且要升级支持 Java 11 的插件,这一点很重要。插件的升级保证了与最新的 Jenkins 版本的兼容性。
> 如果你发现一个以前没有报告的问题,请让我们知道:请阅读 [how to report an issue](https://www.jenkins.io/participate/report-issue/#issue-reporting) 以获得指导。
### Jakarta XML 绑定
有些插件使用 JDK 提供的 JAXB 库。然而,`java.xml.bind` 和 `javax.activation` 模块在 OpenJDK 11 中不再包含,如果没有提供替换,插件可能会失效。
为了解决这个问题,我们把这些库捆绑在一个新的分离式插件中:[JAXB 插件](https://plugins.jenkins.io/jaxb)。当任何比 `2.163` 更新的 Jenkins 核心在 Java 11 上运行时,这个插件会自动安装。然而,如果你在 Jenkins 之外管理你的插件,例如,如果你在 Docker 镜像中使用 `plugins.txt`,你可能需要明确安装该插件。
### 代理上的 JVM 版本
由于控制器和代理的通信方式,所有代理必须运行在与控制器相同的 JVM 版本上。如果你要升级你的 Jenkins 控制器以运行在 Java 11 上,你也需要升级你的代理上的 JVM。
你可以用 [Versions Node Monitors](https://plugins.jenkins.io/versioncolumn) 插件来验证每个代理的版本。这个插件在你的 Jenkins 实例的节点管理屏幕上,提供关于每个代理的 JVM 版本信息。你也可以配置这个插件来自动断开任何 JVM 版本不正确的代理。
### Java Web Start
Java Web Start 已从 Java 11 中移除。当 Jenkins 控制器在 Java 11 上运行时Java Web Start 按钮将不再出现在 Web UI 中。你不能从下载到 Web 浏览器的 `*.jnlp` 文件,为 Java 11 Jenkins 服务器启动代理。
没有替换此功能的计划。请使用 [SSH Build Agents](https://plugins.jenkins.io/ssh-slaves) 等插件,使用操作系统命令行调用 `java -jar agent.jar`,或使用容器将代理连接到 Java 11 上的 Jenkins。
### JDK 工具自动安装程序
Oracle JDK 11 的授权使 Jenkins 社区无法列出 Oracle JDK。由于这一许可限制Oracle JDK 11 不能被 Jenkins 自动安装。这个问题在 [issue JENKINS-54305](https://issues.jenkins.io/browse/JENKINS-54305) 中进行了追踪。
作为替代方案,我们鼓励你使用其中包含了构建所需的所有工具的基于镜像的容器。

View File

@ -0,0 +1,31 @@
## 浏览器兼容性
> 本页记录了 Jenkins 自动化服务器中的浏览器支持政策。他不适用于 Jenkins 网站或 Jenkins 项目托管的其他服务。
### 支持模型
Jenkins 的 web 浏览器支持分为三类:
1. 级别 1旨在主动修复这些浏览器并在所有浏览器上提供平等的用户体验;
2. 级别 2接受补丁来解决问题并尽最大努力确保至少有一种方法可以执行任何操作
3. 级别 3没有保证。我们将接受补丁但前提是他们的风险较低。**对于下面未列出的浏览器/版本,这是默认浏览器支持的默认级别**。
我们Jenkins 开发团队不声明与浏览器的预发布例如alpha、beta 或 canary版本的任何兼容性或接受错误报告和补丁。
### 浏览器兼容性汇总表
| 浏览器 | 级别 1 | 级别 2 | 级别 3 |
| :-- | :-- | :-- | :-- |
| Google Chrome | 最新的定期发布/补丁 | N-1 版本,最新补丁 | 别的版本 |
| Mozilla Firefox | 最新的定期发布/补丁;最新的 [ESR](https://www.mozilla.org/en-US/firefox/organizations/) 发布版本 | N-1 版本,最新补丁 | 别的版本 |
| Microsoft Edge | 最新的定期发布/补丁 | N-1 版本,最新补丁 | 别的版本 |
| Apple Safari | 最新的定期发布/补丁 | N-1 版本,最新补丁 | 别的版本 |
对移动浏览器(例如 iOS Safari的支持尚未确定。
### 更改历史
- 2022-02-01 - 移除对 Internet Explorer 的支持,增加 Edge [开发者邮件列表中的讨论](https://groups.google.com/g/jenkinsci-dev/c/piANoeohdik)
- 2019-11-19 - 政策更新([开发者邮件列表中的讨论](https://groups.google.com/forum/#!topic/jenkinsci-dev/TV_pLEah9B4)
- 2014-09-03 - Jenkins 1.579 的最初政策( [治理会议记录](http://meetings.jenkins-ci.org/jenkins/2014/jenkins.2014-09-03-18.01.html) )。

View File

@ -0,0 +1,50 @@
## Windows 支持政策
此页面记录了 Jenkins 服务器和代理的 Windows 支持政策。
### 范围
Jenkins 插件,例如 [WMI Windows 代理](https://plugins.jenkins.io/windows-slaves),可能对控制器和/或代理上的 Windows 版本设置额外的要求。本页没有记录这些要求。请参考插件文档。
### 缘由
理论上Jenkins 可以在任何可以运行所支持 Java 版本的地方运行但在实践中存在一些限制。Jenkins core 和一些插件包含了原生代码,或依赖于 Windows API 和子系统,因此他们依赖于特定的 Windows 平台和版本。在 Windows 服务中,我们也使用 [Windows 服务封装器WinSW](https://github.com/winsw/winsw),他需要 .NET 框架。
### 支持级别
我们为 Windows 平台定义了多个支持级别。
| 支持级别 | 描述 | 平台 |
| :-- | :-- | :-- |
| **级别 1** - 完全支持 | 我们对这些平台进行了自动化测试,我们打算及时修复报告的问题。 | <ul><li>64 位 (amd-64) Windows Server 版本,带有最新的 GA 更新包;</li><li>官方 Docker 镜像中使用的 Windows 版本。</li></ul> |
| **级别 2** - 受支持 | 我们不积极测试这些平台,但我们打算保持兼容性。我们很乐意接受补丁。 | <ul><li>Microsoft 普遍支持的 64 位 (amd-64) Windows Server 版本;</li><li>Microsoft 普遍支持的 64 位 (amd-64) Windows 10 版本。</li></ul> |
| **级别 3** - 补丁会被重视 | 支持可能有限制和额外要求。我们不测试兼容性,如果有需要,我们可能会放弃支持。如果补丁不会将 1/2 级支持置于风险之中并且不会产生维护开销,我们将考虑补丁。 | <ul><li>微软不再支持的 64 位 Windows 版本;</li><li>x86 和其他非 amd64 架构</li><li>非主流版本,如 Windows Embedded</li><li>预览版;</li><li>Windows API 模拟引擎,例如 Wine 或 ReactOS。</li></ul> |
| **级别 4** - 不受支持 | 已知这些版本不兼容或有严重局限。我们不支持列出的平台,我们不会接受补丁。 | <ul><li>早于 SP3 的 Windows XP</li><li>Windows Phone</li><li>2008 年之前发布的其他 Windows 平台。</li></ul>
### `.NET` 的要求
- 从 `Jenkins 2.238` 开始,所有的 Windows 服务安装和内建的 Windows 服务管理逻辑都需要 .NET 框架 4.0 或以上;
- 在 `Jenkins 2.238` 前,支持 .NET Framework 2.0
- 对于不支持这些版本的平台,请考虑使用 [Windows Service Wrapper](https://github.com/winsw/winsw) 项目提供的原生可执行文件。
### 参考
- [微软生命周期政策](https://docs.microsoft.com/en-us/lifecycle/)
- [微软产品生命周期检索](https://support.microsoft.com/en-us/lifecycle/search)
### 贡献
如果你想增加对更多 Windows 平台的支持或分享反馈我们将感谢你的贡献Jenkins 中的 Windows 支持是 [平台特别兴趣小组Platform Special Interest Group](http://www.jenkins.io/sigs/platform/),他有一个聊天室、一个邮件列表和定期会议。欢迎你加入这些渠道。
### 版本历史
- 2020 年 6 月 3 日 - 第一版([邮件列表中的讨论](https://groups.google.com/forum/#!msg/jenkinsci-dev/oK8pBCzPPpo/1Ue1DI4TAQAJ)[治理会议记录](https://docs.google.com/document/d/11Nr8QpqYgBiZjORplL_3Zkwys2qK1vEvK-NYyYa4rzg/edit#heading=h.ele42cjexh55)

145
src/blue_ocean.md Normal file
View File

@ -0,0 +1,145 @@
# Blue Ocean
本章涵盖 Blue Ocean 功能的各个方面,包括如何使用:
- [Blue Ocean 入门](./blue_ocean/getting_started.md),内容包括如何在 Jenkins 中设置 Blue Ocean以及访问 Blue Ocean 界面;
- 在 Blue Ocean 中 [创建一个新的 Pipeline 项目](./blue_ocean/create_a_pipeline.md)
- 使用 Blue Ocean 的 [仪表盘](./blue_ocean/dashboard.md)。
- 使用 [“活动, Activity” 视图](./blue_ocean/activity_view.md),其中可以访问到 [当前和历史运行数据](./blue_ocean/activity_view.md#活动)、流水线的 [分支](./blue_ocean/activity_view.md#分支),以及任何开放的 [拉取请求](./blue_ocean/activity_view.md#拉取请求)
- 使用 [“流水线运行详情” 视图](./blue_ocean/details_view.md),访问特定流水线或项目运行的控制台输出等详细信息;
- 使用 [“流水线编辑器”](./blue_ocean/pipeline_editor.md),修改流水线代码,然后咱们可以将其提交到源代码控制系统 SCM 中。
本章面向所有技能水平的 Jenkins 用户,但初学者可能需要参考 [“流水线”](./pipeline.md) 章节,以理解本章涵盖的一些主题。
有关 Jenkins 用户手册内容的概述,请参阅 [用户手册概述](./Ch00_Overview.md)。
{{#include ./pipeline/get_started.md:56:58}}
>
> 可用的 Pipeline 可视化替代选项,比如 [Pipeline: Stage View](https://plugins.jenkins.io/pipeline-stage-view/) 与 [Pipeline Graph View](https://plugins.jenkins.io/pipeline-graph-view/) 插件,提供了部分相同功能。虽然他们不能完全替代 Blue Ocean但社区鼓励为这些插件的持续开发做出贡献。
>
{{#include ./pipeline/get_started.md:60}}
## 何为 Blue Ocean
Blue Ocean 作为现有工具,提供了易于使用的 Pipeline 可视化功能。其旨在重新构思 Jenkins 用户体验,从头开始专为 [Jenkins Pipeline](./pipeline.md) 设计。Blue Ocean 的目标是减少混乱,增加全体用户的清晰度。
然而Blue Ocean 将不再接收功能或增强性的更新。他仅会接收针对重大安全问题,或功能缺陷的有选择性更新。如果咱们刚刚开始使用 Jenkins仍然可以使用 Blue Ocean或者可以考虑替代方案例如 [Pipeline: Stage View](https://plugins.jenkins.io/pipeline-stage-view/) 和 [Pipeline Graph View](https://plugins.jenkins.io/pipeline-graph-view/) 插件。这些插件提供了部分相同功能。
总而言之Blue Ocean 的主要功能包括:
- 持续交付 (CD) 流水线的 **复杂可视化**,可快速、直观地了解流水线状态;
- **流水线编辑器** 通过可视化流程,引导用户创建流水线,使流水线创建更加简单易行;
- **个性化personalization**,以满足团队每个成员基于角色的需求;
- 在需要干预或出现问题时 **精确定位pinpoint precision**。Blue Ocean 可显示需要关注的地方,便于处理异常情况,提高工作效率;
- **原生的分支和拉取请求集成**,使开发人员在 GitHub 和 Bitbucket 上,协作处理代码时能最大限度地提高工作效率;
如果咱们想要开始使用 Blue Ocean请参阅 [Blue Ocean 入门](./blue_ocean/getting_started.md)。
[![Jenkins Blue Ocean: 每个团队的持续交付](https://img.youtube.com/vi/k_fVlU1FwP4/0.jpg)](https://www.youtube.com/watch?v=k_fVlU1FwP4)
## 常见问题FAQs
### 为什么会有 Blue Ocean
**Why does Blue Ocean exist**?
DevOps 世界已经从纯粹功能性的开发人员工具,过渡到作为 “开发人员体验” 一部分的开发人员工具。他不再是单一的工具,而是开发人员全天使用的众多工具,以及这些工具如何协同工作,为开发人员实现更好的工作流程。
Heroku、Atlassian 和 GitHub 等开发者工具公司提高了良好开发者体验的标准。渐渐地开发人员越来越喜欢那些不仅功能强大而且能无缝融入现有工作流程的工具。这种转变代表着对设计和功能的更高标准开发人员期待着卓越的用户体验。Jenkins 需要提升以满足这一更高标准。
对于许多 Jenkins 用户来说创建出持续交付管道并将其可视化一直是件非常有价值的事情。Jenkins 社区为满足他们的需求而创建的插件,就证明了这一点。这也表明有必要重新审视 Jenkins 目前是如何表达这些概念的,并将交付流水线,视为 Jenkins 用户体验的核心主题。
他不仅仅是持续交付概念,还包括开发人员日常使用的工具,如 GitHub、Bitbucket、Slack、Puppet 或 Docker。其不仅涉及 Jenkins还包括围绕 Jenkins 的开发人员工作流程,其中包含多种工具。
新团队在学习如何积累他们自己的 Jenkins 经验时,可能会遇到挑战。但是,他们的目标是一致的,即通过更稳定地交付更好的软件,来缩短上市时间。作为一个由 Jenkins 用户和贡献者组成的社区,我们可以共同定义理想的 Jenkins 体验。随着时间的推移,开发人员对良好用户体验的期望会发生变化,而 Jenkins 项目也需要接受这些期望。
Jenkins 社区一直致力于打造技术能力最强、可扩展性最强的软件自动化工具。如果今天不彻底改变 Jenkins 开发人员的体验,就可能意味着未来会有封闭源代码选项,试图利用这一点。
Blue Ocean 就是为了满足当时这种需求而诞生的。然而随着时间的推移更多的现代工具出现并取代了他。现在其他类似功能的插件已经崛起。因此Blue Ocean 的任何新开发或改进都已停止。如果你有兴趣为类似功能的插件做出贡献,请考虑上文 [何为 Blue Ocean](#何为-blue-ocean) 一节中提出的其他选择。
[![Jenkins World 2016 - Blue OceanJenkins的全新用户体验](https://img.youtube.com/vi/mn61VFdScuk/0.jpg)](https://www.youtube.com/watch?v=mn61VFdScuk)
### 这个名字从何而来?
**Where is the name from**?
Blue Ocean 这一名称,来自 [“蓝海策略Blue Ocean Strategy”](https://en.wikipedia.org/wiki/Blue_Ocean_Strategy) 一书。这种策略涉及在更大的无竞争空间,而不是在有竞争的空间内,看待战略问题。更简单地说,可以引用冰球传奇人物韦恩-格雷茨基Wayne Gretzky的名言 “滑向冰球即将出现的地方,而不是冰球已经出现的地方”。
### Blue Ocean 支持自由风格的作业吗?
**Does Blue Ocean support freestyle jobs**?
Blue Ocean 的目标是提供与流水线相关的出色体验,并与 Jenkins 实例中已配置的任何自由风格作业相兼容。不过,咱们将无法受益于为流水线构建的一些功能,例如流水线的可视化。
Blue Ocean 的设计具有可扩展性,因此 Jenkins 社区可以扩展 Blue Ocean 的功能。虽然 Blue Ocean 不会再添加任何其他功能,但他仍提供了流水线可视化,以及用户认为有价值的其他一些功能。
### 这对咱们的插件有什么影响?
**What does this mean for my plugins**?
可扩展性是 Jenkins 的核心功能之一,而能够扩展 Blue Ocean UI 也同样重要。`<ExtensionPoint name=...>` 可用于 Blue Ocean 的标记中,为插件对用户界面作出贡献,留下了空间。这意味着插件可以拥有自己的 Blue Ocean 扩展点。Blue Ocean 本身就是使用这些扩展点实现的。
扩展照常由插件提供。插件必须包含一些额外的 JavaScript才能连接到 Blue Ocean 的扩展点。为 Blue Ocean 用户体验做出贡献的开发者,会相应地添加这些 JavaScript。
### 目前用到的技术有哪些?
**What technologies are currently in use**?
Blue Ocean 是作为一组 Jenkins 插件构建的。与其他插件的关键区别在于Blue Ocean 提供了自己的 HTTP 请求端点,在不使用现有的 Jenkins UI 标记或脚本,而是通过不同路径来提供 HTML/JavaScript。Blue Ocean 的 JavaScript 组件使用 React.js 和 ES6 构建。受 React.js 这个优秀开源项目的启发,咱们可以在 [构建 React 应用插件](https://nylas.com/blog/react-plugins) 这篇博文中,找到相关信息,建立了一个允许来自任何带有 JavaScript 的 Jenkins 插件的扩展的 `<ExtensionPoint>` 模式。如果扩展加载失败,其故障将被隔离。
### 在哪里可以找到源代码?
源码可在 GitHub 上找到:
- [Blue Ocean](https://github.com/jenkinsci/blueocean-plugin)
- [Jenkins 设计语言](https://github.com/jenkinsci/jenkins-design-language)
### 加入 Blue Ocean 社区
由于 “Blue Ocean” 的开发工作已经冻结,我们预计不会再为其代码库的新功能再做出贡献。不过,咱们仍然可以通过以下几种方式加入社区:
- 在 Gitter 上与社区和开发团队交谈 [chat on gitter](https://app.gitter.im/#/room/#jenkinsci_blueocean-plugin:gitter.im)
- [在 JIRA 中针对 `blueocean-plugin` 组件](https://issues.jenkins.io/),发起功能请求或报告错误;
- 订阅 [Jenkins 用户邮件列表](https://groups.google.com/g/jenkinsci-users) 并提问;
- 开发人员?我们已经 [标注了一些问题](https://issues.jenkins.io/issues/?filter=16142),非常适合想要开始开发 Blue Ocean 的人。别忘了来 Gitter 聊天室做个自我介绍!

View File

@ -0,0 +1,57 @@
# 创建流水线
**Creating a Pipeline**
Blue Ocean 可让咱们轻松地在 Jenkins 中,创建流水线项目。
咱们可以从源代码控制系统 SCM 中,现有的 `Jenkinsfile` 生成流水线,也可以使用 Blue Ocean 的 [流水线编辑器](./pipeline_editor.md),将流水线创建为一个提交到源代码控制系统的 `Jenkinsfile`
{{#include ../blue_ocean.md:25:29}}
## 建立咱们的流水线项目
要开始在 Blue Ocean 中建立流水线项目,请选择 [Blue Ocean 控制面板](./dashboard.md) 右上方的 **创建流水线** 按钮。
![创建流水线按钮](../images/new-pipeline-button.png)
如果咱们的 Jenkins 实例是全新的或者没有配置流水线项目或其他项目Blue Ocean 会显示一条 **欢迎使用 Jenkins** 的消息,允许咱们选择 **创建新的流水线** 选项,开始设置流水线项目。
![创建流水线对话框](../images/create-a-new-pipeline-box.png)
咱们现在就可以选择从以下项目中,创建新的流水线项目:
- [标准 Git 仓库](#)
- [GitHub 上的代码仓库]() 或 GitHub Enterprise
- [Bitbucket 云代码仓库]() 或 Bitbucket 服务器。
### Git 代码仓库
要为 Git 代码仓库创建咱们的 Pipeline 项目,请点击 **选择代码仓库** 下的 **Git** 按钮。
![选择代码仓库](../images/where-do-you-store-your-code.png)
**连接到 Git 仓库** 部分,于 **仓库 URL** 字段中输入 Git 仓库的 URL。
![连接到 Git 仓库](../images/connect-to-a-git-repository.png)
现在,咱们必须指定一个 [本地](#本地代码仓库) 或 [远端](#远端代码仓库) 的代码仓库,以便从中构建 Pipeline 项目。
#### 本地代码仓库

View File

@ -0,0 +1,119 @@
# Blue Ocean 入门
**Getting started with Blue Ocean**
本节介绍如何 Jenkins 中 Blue Ocean 的入门。其中包括在 Jenkins 实例上 [设置 Blue Ocean]()、如何 [访问 Blue Ocean UI]() 以及 [返回 Jenkins 经典 UI]() 的说明。
{{#include ../pipeline/get_started.md:56:58}}
## 安装 Blue Ocean
咱们可以使用以下方法,安装 Blue Ocean
- 作为 [现有 Jenkins 实例](#在现有的-jenkins-实例上) 上的一套插件;
- 作为 [Docker 中 Jenkins]() 的一部分。
### 在现有的 Jenkins 实例上
在大多数平台上安装 Jenkins 时,默认情况下不会安装 [Blue Ocean](https://plugins.jenkins.io/blueocean) 插件,以及用于编译 Blue Ocean 插件套件的全部依赖插件。
任何拥有 **管理员** 权限的 Jenkins 用户,都可以在 Jenkins 实例上安装插件。这是通过 **基于矩阵的安全性** 设置的。拥有此权限的 Jenkins 用户还可在其系统上,配置其他用户的权限。更多信息,请参阅 [安全性管理](../security/managing.md) 中的 [授权](../security/managing.md#授权) 小节。
在 Jenkins 实例中安装 Blue Ocean 套装插件:
1. 确保咱们是以具有 **管理员** 权限的用户身份登录的 Jenkins
2. 在 Jenkins 主页,选择左侧的 **系统管理**,然后选择 **插件管理**
3. 选择 **Available plugins** 选项卡,然后在 **Filter** 文本框中,输入 `blue ocean`。这会根据名称和描述,过滤插件清单。
![过滤后的 Blue Ocean 相关插件](../images/blueocean-plugins-filtered.png)
4. 选择 **Blue Ocean** 插件左侧的方框,然后选择右上角的 **安装****Install after restart** 选项;
> - 无需选择此列表中的其他插件。Blue Ocean 主插件会自动选择并安装所有依赖插件,从而组成 Blue Ocean 插件套件;
> - 如果仅选择了 **安装** 选项,则必须重启 Jenkins 才能获得 Blue Ocean 的全部功能。
更多信息,请参阅 [插件管理](../managing/plugins.md) 页面。Blue Ocean 安装后无需额外配置。现有流水线及项目将照常运行。
> 在 Blue Ocean 中首次为特定 Git 服务器创建流水线时Blue Ocean 会提示咱们提供 Git 凭据,以便在仓库中创建流水线。这是必须的,因为 Blue Ocean 才可以将 `Jenkinsfile`,添加到咱们的代码仓库中。
### 作为 Docker 中的 Jenkins 的一部分
Blue Ocean 插件套件并未与可从 [Docker Hub 仓库](https://hub.docker.com/) 中,获取的 Jenkins 官方 Docker 映像 [jenkins/jenkins](https://hub.docker.com/r/jenkins/jenkins/) 捆绑。
有关在 Docker 内运行 Jenkins 以及 Blue Ocean 的更多信息,请参阅安装 Jenkins 页面的 [Docker](../installation/docker.md) 小节。
## 访问 Blue Ocean
一旦 Jenkins 环境安装了 Blue Ocean并登入了 Jenkins 经典用户界面,就可以通过选择屏幕左侧的 **打开 Blue Ocean**,访问到 Blue Ocean 的用户界面。
![打开 Blue Ocean 链接](../images/open-blue-ocean-link.png)
咱们也可以在 Jenkins 服务器的 URL 末尾,添加 `/blue` 直接访问 Blue Ocean。例如 `https://jenkins-server-url/blue`
若咱们的 Jenkins 实例:
- 已有流水线或其他项目,则会显示 [Blue Ocean 控制面板](./dashboard.md)
- 如果 Jenkins 实例是全新的,或尚未配置一些项目或其他条目,那么 Blue Ocean 会显示一个带有 **创建新流水线** 按钮的 **欢迎使用 Jenkins** 窗格。咱们可以选择这个按钮,来开始创建一个新的流水线项目。有关在 Blue Ocean 中创建流水线项目的更多信息,请参阅 [创建流水线](./creating_a_pipeline.md) 页面。
![创建流水线对话框](../images/create-a-new-pipeline-box.png)
## 导航栏
**Navigation bar**
Blue Ocean UI 界面的顶部,有一个导航栏,可让咱们访问不同的视图和功能。
导航栏分为两个部分:
- 位于大多数 Blue Ocean 视图顶部的常用部分;
- 下面是一个上下文相关部分。
上下文部分特定于咱们正在浏览的当前 Blue Ocean 页面。
导航栏的常用部分包括下面这些按钮:
- **Jenkins**:点击这个 Jenkins 图标,可进入 [控制面板](./dashboard.md),或如果已在查看,则可重新加载控制面板;
- **流水线**:这也会将咱们带到控制面板。如果咱们已经在控制面板,此选项则会重新加载该页面。在查看 [流水线运行详情](./pipeline_run_details.md) 页面时,该按钮有不同的作用;
- **配置管理Administration**:这会将咱们带到 Jenkins 经典用户界面的 **系统管理** 页面。如果没有 **管理员** 权限,此按钮会不可用。更多信息,请参阅 安全性管理 页面的 [授权](../security/managing.md#授权) 小节;
- **前往经典界面** 图标:这会将咱们带回到 Jenkins 经典用户界面。更多信息,请参阅 [切换到经典用户界面](#切换到经典用户界面)
- **登出**:这会注销当前的 Jenkins 用户,并返回 Jenkins 登录页面。
## 切换到经典用户界面
Blue Ocean 不支持 Jenkins 的某些传统或管理性功能,而这些功能对某些用户来说是必需的。
如果咱们需要访问这些功能,请选择 Blue Ocean [导航栏](#导航栏) 常用部分顶部的 **前往经典界面** 图标。
![前往经典界面图标](../images/go-to-classic-icon.png)
选择该按钮后,咱们将进入 Jenkins 经典用户界面中的相应页面,或与 Blue Ocean 中当前页面最相关的经典用户界面页面。

View File

BIN
src/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

41
src/favicon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

5
src/glossary.md Normal file
View File

@ -0,0 +1,5 @@
## 一般词汇
### 控制器
**Controller**

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 KiB

BIN
src/images/abort_button.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
src/images/dropdown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
src/images/folder-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

BIN
src/images/jmeter-00.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
src/images/jmeter-01.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
src/images/jmeter-04.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
src/images/jmeter-05.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
src/images/jmeter-06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
src/images/jmeter-07.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

BIN
src/images/jmeter-08.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
src/images/jmeter-10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
src/images/jmeter-11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
src/images/jmeter-12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

BIN
src/images/jmeter-13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

BIN
src/images/manage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
src/images/node-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
src/images/node-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

BIN
src/images/node-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
src/images/node-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

BIN
src/images/node-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
src/images/node-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
src/images/node-7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
src/images/seach_box.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
src/images/starvation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/images/store.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

BIN
src/images/sw-.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Some files were not shown because too many files have changed in this diff Show More