01:
# 安装依赖软件包
git
jdk
maven
gradle
ansible
02:
# 安装jenkins
jenkins
03:
# 插件列表 及 功能
.NET Development .NET开发
Agent Launchers and Controllers 代理启动器和控制器
Android Development Android开发
Artifact Uploaders 工件上载程序
Authentication and User Management 身份验证和用户管理
Build Notifiers 生成通知程序
Build Parameters 生成参数
Job Generator
Active Choices
Build Reports 生成报告
Build Tools 构建工具
Ansible
Gradle
Python
Build Triggers 生成触发器
Build Wrappers 构建包装器
Cloud Providers 云提供商
Cluster Management and Distributed Build 集群管理与分布式构建
Command Line Interface 命令行界面
Database 数据库
Deployment 部署
Ansible
DevOps 运维
Ansible
External Site/Tool Integrations 外部站点/工具集成
Ansible
Groovy-related Groovy
iOS Development iOS开发
Library plugins (for use by other plugins) 库插件(供其他插件使用)
List view columns 列表视图列
Maven Maven
Misc (administrative-monitor) Misc(管理监视器)
Misc (adopt-this-plugin) Misc(采用此插件)
Misc (agent) 杂项(代理)
Misc (analysis) 杂项(分析)
Misc (api-plugin) Misc(api插件)
Misc (aws) 其他(aws)
Misc (azure) 杂项(azure)
Misc (bitbucket) 杂项(比特桶)
Misc (bitbucket-server) Misc(bitbucket服务器)
Misc (ca-apm) 其他(ca apm)
Misc (cmp) 杂项(cmp)
Misc (codebuild) 杂项(代码构建)
Misc (configuration-as-code) Misc(配置为代码)
Misc (confluence) 其他(汇合)
Misc (credential) 杂项(凭证)
Misc (deprecated) 杂项(已弃用)
Misc (docker) Misc (docker)
docker-build-step
Docker
Misc (email) 杂项(电子邮件)
Misc (emailext) 杂项(emailext)
Misc (file) 杂项(文件)
Misc (git) 杂项(git)
Git
Misc (github) 杂项(github)
Misc (gitlab) 杂项(gitlab)
Misc (google-cloud) 谷歌云(其他)
Misc (jira) 其他(jira)
Misc (kubernetes) 杂项(kubernetes)
Misc (localization) 杂项(本地化)
Misc (logging) 其他(日志记录)
Misc (monitoring) 其他(监控)
Misc (notification) 杂项(通知)
Misc (npm) 其他(npm)
Misc (openshift) 杂项(openshift)
Misc (orchestration) 杂项(编排)
Misc (performance) 其他(性能)
Misc (pipeline) 其他(管道)
Misc (pipeline-graph-analysis) Misc(管道图分析)
Misc (plugin-external) Misc(插件外部)
Misc (plugin-misc) Misc(插件杂项)
Misc (plugin-post-build) Misc(插件后期构建)
Misc (plugin-test) Misc(插件测试)
Misc (queue) 杂项(队列)
Misc (rocketchatnotifier) Misc(rocketchatnotifier)
Misc (slack) 杂项(松弛)
Misc (spot) 杂项(现货)
Misc (spotinst) 混合(spotinst)
Misc (stash) 杂项(储存)
Misc (textfile) 杂项(文本文件)
Misc (theme) 杂项(主题)
Misc (webhook) 杂项(网络挂钩)
Misc (website) 杂项(网站)
Misc (windows) 杂项(windows)
Miscellaneous 其他
NodeJS
Other Post-Build Actions 其他生成后操作
Page Decorators 页面装饰器
Python Development Python开发
Ruby Development Ruby开发
RunConditions for use by the Run Condition plugin 运行条件插件使用的运行条件
Scala Development Scala开发
Security 安全
Authorize Project
Source Code Management 源代码管理
Source Code Management related 源代码管理相关
Git
Testing 测试
Uncategorized 未分类
User Interface 用户界面
Views 意见
04:
# jenkins设置
Manage Jenkins
configure System
System Message HYH Jenkins
Maven项目配置
全局MAVEN_OPTS -Xms2048m -Xmx2048m -Dmaven.artifact.threads=3
of executors 1
Jenkins Location
Jenkins URL http://jenkinsdev.haoyahao.cn/
System Admin e-mail address whoddp@sina.com
Usage Statistics
Help make Jenkins better by sending anonymous usage statistics and crash reports to the Jenkins project
Administrative monitors configuration Jenkins Update Notification Update Site Warnings
Git plugin
Global Config user.name Value whoddp
Global Config user.email Value whoddp@sina.com
Extended E-mail Notification
SMTP server smtp.sina.com
Use SSL
SMTP Port 465
Reply-To Address whoddp@sina.com
Configure Global Security
Authentication Disable remember me
Authorization 安全矩阵 ( Add user or group --> admin --> Administer )
Access Control for Builds Project default Build Authorization ( Run as User who Triggered Build )
Hidden security warnings Security warnings
Global Tool Configuration
Maven Configuration /opt/maven/conf/settings.xml
JDK
Name java1.8.0
JAVA_HOME /opt/java
Git
Name git-2.19.1-1
Path to Git executable /usr/bin/git
Gradle
name gradle
GRADLE_HOME /opt/gradle
Maven
Name maven-3.6.1
MAVEN_HOME /opt/maven
NodeJS
Ansible
Ansible Name ansible
Path to ansible executables directory /usr/bin
Ansible Name ansible-playbook
Path to ansible executables directory /usr/bin
System Log
Log Levels 然后增加 javax.jmdns为off
Name: javax.jmdns
Level: off
Manage Nodes and Clouds
Node Monitoring
Free Space Threshold 10G
===============================================================================
05:
新建build
New 任务 -- build-all -- 构建Freestyle Project -- ok
用于触发全部build用生成jar包
New 任务 -- build-hyh-basicsG -- 构建Freestyle Project -- ok
Description build-hyh-basicsG
Build Triggers
Build after other projects are built build-all
用于触发build-hyh-basicsG生成jar包
# 用于构建
New 任务 -- build-hyh-basics-dev -- 构建一个maven项目 -- ok
Description build-hyh-basics-dev
Discard old builds
Days to keep builds 15
Max # of builds to keep 15
Days to keep artifacts 15
Max # of builds to keep with artifacts 15
Source Code Management
Git
Repository URL https://e.coding.net/haoyahao/hyh/hyh.git
Credentials whoddp-password
Branches to build
Branch Specifier (blank for 'any') */master
Build Triggers
Build after other projects are built
Projects to watch build-hyh-basicsG
Build
Root POM hyh-basics-dev/pom.xml
Goals and options clean install deploy or ( clean package -Dmaven.test.skip=true )
MAVEN_OPTS -Xms1024m -Xmx1024m -Dmaven.artifact.threads=3
Maven Validation Level Default
Settings file Use default maven settings
Global Settings file Use default maven global settings
新建build视图
View name build-all
List View
ok
Name build-all
Description build-all
Job Filters
Use a regular expression to include jobs into the view
Regular expression (build-hyh.*G).*
OK
View name build-hyh-basicsG
List View
ok
Name build-hyh-basicsG
Description build-hyh-basicsG
Job Filters
Use a regular expression to include jobs into the view
Regular expression (build-hyh-basics-.*).*
OK
06:
新建beta
New 任务 -- beta-all -- 构建Freestyle Project -- ok
Description beta-all
用于beta-hyh部署全部的jar包
New 任务 -- beta-hyh-basicsG -- 构建Freestyle Project -- ok
Description beta-hyh-basicsG
Build Triggers
Build after other projects are built beta-all
用于beta-hyh-basicsG部署的jar包
New 任务 -- beta-hyh-basics-dev -- 构建Freestyle Project -- ok
Description beta-hyh-basics-dev
Build Triggers
Build after other projects are built beta-hyh-basicsG
Build
Add build step
Execute shell
# 将build的jar 文件移动到要指定目录,以方便下一步部署用
cat jenkins-app-beta.sh
============================================================================================
#!/bin/sh
set -x
# 应用名
appname=hyh-basics-dev
# 用户
username=hyh
# 组
groupname=hyh
# 年月日-小时
datehour=`date +%Y%m%d-%H`
# 判断存放jar包的jenkins-files目录是否存在
if [ ! -d /home/${username}/datas/jenkins/jenkins-files ];then
mkdir -p /home/${username}/datas/jenkins/jenkins-files
chown ${username}.${groupname} /home/${username}/datas/jenkins
chown -R ${username}.${groupname} /home/${username}/datas/jenkins/jenkins-files
fi
# 判断备份${appname}.jar包的jenkins-backup/${appname}目录是否存在
if [ ! -d /home/${username}/datas/jenkins/jenkins-backup/${appname} ];then
mkdir -p /home/${username}/datas/jenkins/jenkins-backup/${appname}
chown ${username}.${groupname} /home/${username}/datas/jenkins
chown -R ${username}.${groupname} /home/${username}/datas/jenkins/jenkins-backup
fi
# 判断build 是否生成${appname}.jar文件包
if [ -e /home/${username}/jenkins/.jenkins/workspace/build-${appname}/${appname}/target/${appname}.jar ];then
echo /home/${username}/jenkins/.jenkins/workspace/build-${appname}/${appname}/target/${appname}.jar exist
# 如果当前小时内,备份文件夹里有对应应用的备份文件,则直接覆盖,而不在备份
if [ -e /home/${username}/datas/jenkins/jenkins-backup/${appname}/${appname}.jar--$((`date +%Y%m%d-%H`)) ];then
\mv /home/${username}/jenkins/.jenkins/workspace/build-${appname}/${appname}/target/${appname}.jar /home/${username}/datas/jenkins/jenkins-files/${appname}.jar
else
# 如果当前小时内,备份文件夹里没有对应应用的备份文件,则先备份,在移动build生成的文件到jenkins-files目录下
\mv /home/${username}/datas/jenkins/jenkins-files/${appname}.jar /home/${username}/datas/jenkins/jenkins-backup/${appname}/${appname}.jar--$((`date +%Y%m%d-%H`))
\mv /home/${username}/jenkins/.jenkins/workspace/build-${appname}/${appname}/target/${appname}.jar /home/${username}/datas/jenkins/jenkins-files/${appname}.jar
fi
else
echo /home/${username}/jenkins/.jenkins/workspace/build-${appname}/${appname}/target/${appname}.jar not exist;exit 1
fi
=======================================================================================================================
Add build step
Invoke Ansible Playbook
Ansible installation ansible-playbook
Playbook path /home/hyh/datas/jenkins/jenkins-scripts/deploy-hyh.yml
Inventory
File or host list
File path or comma separated host list /home/hyh/ansible/etc/ansible/hosts
Advanced
Number of parallel processes 5
Extra Variables
Key rhosts
Value beta-hyh-basics-dev
Key appname
Value hyh-basics-dev
============================================================================================================================
cat /home/hyh/datas/jenkins/jenkins-scripts/app-ctl.sh
#!/bin/sh
# 用户 组
username=hyh
groupname=hyh
#应用名称
appname=$1
source /etc/profile
# 检测执行用户
checkuser() {
user=`id -nu`
if [ ${user} != ${username} ]
then
echo "Stop! Only ${username} can run this script!"
exit 3
fi
}
checkuser
stop(){
echo "stoping ${appname}"
ps -ef| grep -v grep| grep -v app-ctl.sh| grep ${appname}| awk '{print $2}'| while read pid
do
kill $pid
sleep 3;
kill -9 $pid
echo "${appname} pid $pid kill OK"
done
rm -f /home/${username}/${appname}/${appname}.pid
}
start(){
echo "Starting ${appname}"
if [ ! -d /home/${username}/logs/${appname} ];then
mkdir -p /home/${username}/logs/${appname}
chown ${username}.${groupname} /home/${username}/logs
chown -R ${username}.${groupname} /home/${username}/logs/${appname}
fi
if [ -e /home/${username}/logs/${appname}/${appname}.log ];then
mv /home/${username}/logs/${appname}/${appname}.log /home/${username}/logs/${appname}/${appname}-`date +%Y%m%d%H%M`.log
fi
nohup java -Xms1024M -Xmx1024M -XX:PermSize=128M -XX:MaxPermSize=128M -jar /home/${username}/${appname}/${appname}.jar >> /home/${username}/logs/${appname}/${appname}.log 2>&1 &
}
case "$2" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
ps -ef|grep ${app_file}| grep -v grep
;;
*)
printf 'Usage:{start|stop|restart|status}\n'
exit 1
;;
esac
=============================================================================================================================
cat /home/hyh/datas/jenkins/jenkins-scripts/deploy-hyh.yml
---
- hosts: "{{ rhosts }}"
vars:
appname: "{{ appname }}"
username: hyh
groupname: hyh
instructions1: ansible-playbook deploy-hyh.yml -e "rhosts=xxx appname=xxx" -vv --timeout 600 --become-user hyh --forks 10 --step
instructions2: --key-file /home/hyh/.ssh/id_rsa --user hyh --check --ask-pass --ssh-common-args -scp-extra-args --ssh-extra-args
instructions3: --force-handlers --flush-cache --syntax-check --inventory /etc/ansible/hosts --limit -e "k=v" --list-tasks --list-tags --start-at-task --list-hosts
tasks:
# 创建app-ctl 执行脚本目录
- name: "create /home/{{ username }}/app-ctl directory if it does not exist"
file:
path: "/home/{{ username }}/app-ctl"
group: "{{ groupname }}"
mode: '0750'
owner: "{{ username }}"
recurse: False
state: directory
# 拷贝app-ctl.sh脚本到目标机器的脚本目录
- name: "copy app-ctl.sh"
copy:
src: "/home/{{ username }}/datas/jenkins/jenkins-scripts/app-ctl.sh"
dest: "/home/{{ username }}/app-ctl/app-ctl.sh"
backup: False
force: yes
group: "{{ groupname }}"
mode: '0750'
owner: "{{ username }}"
# 部署{{ appname }}.jar前先停止服务
- name: "{{ appname }} stop"
shell:
cmd: "/home/{{ username }}/app-ctl/app-ctl.sh {{ appname }} stop"
chdir: "/home/{{ username }}/app-ctl"
warn: True
# 创建{{ appname }}.jar部署目录
- name: "create /home/{{ username }}/{{ appname }} directory if it does not exist"
file:
path: "/home/{{ username }}/{{ appname }}"
group: "{{ groupname }}"
mode: '0755'
owner: "{{ username }}"
recurse: False
state: directory
# 部署{{ appname }}.jar文件到目标服务器
- name: "copy {{ appname }}.jar"
copy:
src: "/home/{{ username }}/datas/jenkins/jenkins-files/{{ appname }}.jar"
dest: "/home/{{ username }}/{{ appname }}/{{ appname }}.jar"
backup: False
force: yes
group: "{{ groupname }}"
mode: '0644'
owner: "{{ username }}"
# 启动{{ appname }}服务
- name: "{{ appname }} start"
shell:
cmd: "/home/{{ username }}/app-ctl/app-ctl.sh {{ appname }} start"
chdir: "/home/{{ username }}/app-ctl"
warn: True
==================================================================================================
用于beta-hyh-basics-dev部署的jar包
新建beta视图
View name beta-all
List View
ok
Name beta-all
Description beta-all
Job Filters
Use a regular expression to include jobs into the view
Regular expression (beta-hyh.*G).*
OK
View name beta-hyh-basicsG
List View
ok
Name beta-hyh-basicsG
Description beta-hyh-basicsG
Job Filters
Use a regular expression to include jobs into the view
Regular expression (beta-hyh-basics-.*).*
OK
07:
新建deploy
New 任务 -- deploy-all -- 构建Freestyle Project -- ok
用于deploy部署全部的jar
New 任务 -- deploy-hyh-basicsG -- 构建Freestyle Project -- ok
Description deploy-hyh-basicsG
Build Triggers
Build after other projects are built deploy-all
用于deploy-hyh-basicsG部署的jar包
New 任务 -- deploy-hyh-basics-dev -- 构建Freestyle Project -- ok
Description deploy-hyh-basics-dev
Build Triggers
Build after other projects are built deploy-hyh-basicsG
Build
Add build step
Invoke Ansible Playbook
Ansible installation ansible-playbook
Playbook path /home/hyh/datas/jenkins/jenkins-scripts/deploy-hyh.yml
Inventory
File or host list
File path or comma separated host list/home/hyh/ansible/etc/ansible/hosts
Advanced
Number of parallel processes 5
Extra Variables
Key rhosts
Value hyh-basics-dev
Key appname
Value hyh-basics-dev
============================================================================================================================
cat /home/hyh/datas/jenkins/jenkins-scripts/app-ctl.sh
#!/bin/sh
# 用户 组
username=hyh
groupname=hyh
#应用名称
appname=$1
source /etc/profile
# 检测执行用户
checkuser() {
user=`id -nu`
if [ ${user} != ${username} ]
then
echo "Stop! Only ${username} can run this script!"
exit 3
fi
}
checkuser
stop(){
echo "stoping ${appname}"
ps -ef| grep -v grep| grep -v app-ctl.sh| grep ${appname}| awk '{print $2}'| while read pid
do
kill $pid
sleep 3;
kill -9 $pid
echo "${appname} pid $pid kill OK"
done
rm -f /home/${username}/${appname}/${appname}.pid
}
start(){
echo "Starting ${appname}"
if [ ! -d /home/${username}/logs/${appname} ];then
mkdir -p /home/${username}/logs/${appname}
chown ${username}.${groupname} /home/${username}/logs
chown -R ${username}.${groupname} /home/${username}/logs/${appname}
fi
if [ -e /home/${username}/logs/${appname}/${appname}.log ];then
mv /home/${username}/logs/${appname}/${appname}.log /home/${username}/logs/${appname}/${appname}-`date +%Y%m%d%H%M`.log
fi
nohup java -Xms1024M -Xmx1024M -XX:PermSize=128M -XX:MaxPermSize=128M -jar /home/${username}/${appname}/${appname}.jar >> /home/${username}/logs/${appname}/${appname}.log 2>&1 &
}
case "$2" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
ps -ef|grep ${app_file}| grep -v grep
;;
*)
printf 'Usage:{start|stop|restart|status}\n'
exit 1
;;
esac
=============================================================================================================================
cat /home/hyh/datas/jenkins/jenkins-scripts/deploy-hyh.yml
---
- hosts: "{{ rhosts }}"
vars:
appname: "{{ appname }}"
username: hyh
groupname: hyh
instructions1: ansible-playbook deploy-hyh.yml -e "rhosts=xxx appname=xxx" -vv --timeout 600 --become-user hyh --forks 10 --step
instructions2: --key-file /home/hyh/.ssh/id_rsa --user hyh --check --ask-pass --ssh-common-args -scp-extra-args --ssh-extra-args
instructions3: --force-handlers --flush-cache --syntax-check --inventory /etc/ansible/hosts --limit -e "k=v" --list-tasks --list-tags --start-at-task --list-hosts
tasks:
# 创建app-ctl 执行脚本目录
- name: "create /home/{{ username }}/app-ctl directory if it does not exist"
file:
path: "/home/{{ username }}/app-ctl"
group: "{{ groupname }}"
mode: '0750'
owner: "{{ username }}"
recurse: False
state: directory
# 拷贝app-ctl.sh脚本到目标机器的脚本目录
- name: "copy app-ctl.sh"
copy:
src: "/home/{{ username }}/datas/jenkins/jenkins-scripts/app-ctl.sh"
dest: "/home/{{ username }}/app-ctl/app-ctl.sh"
backup: False
force: yes
group: "{{ groupname }}"
mode: '0750'
owner: "{{ username }}"
# 部署{{ appname }}.jar前先停止服务
- name: "{{ appname }} stop"
shell:
cmd: "/home/{{ username }}/app-ctl/app-ctl.sh {{ appname }} stop"
chdir: "/home/{{ username }}/app-ctl"
warn: True
# 创建{{ appname }}.jar部署目录
- name: "create /home/{{ username }}/{{ appname }} directory if it does not exist"
file:
path: "/home/{{ username }}/{{ appname }}"
group: "{{ groupname }}"
mode: '0755'
owner: "{{ username }}"
recurse: False
state: directory
# 部署{{ appname }}.jar文件到目标服务器
- name: "copy {{ appname }}.jar"
copy:
src: "/home/{{ username }}/datas/jenkins/jenkins-files/{{ appname }}.jar"
dest: "/home/{{ username }}/{{ appname }}/{{ appname }}.jar"
backup: False
force: yes
group: "{{ groupname }}"
mode: '0644'
owner: "{{ username }}"
# 启动{{ appname }}服务
- name: "{{ appname }} start"
shell:
cmd: "/home/{{ username }}/app-ctl/app-ctl.sh {{ appname }} start"
chdir: "/home/{{ username }}/app-ctl"
warn: True
=================================================================================
用于deploy-hyh-basics-dev部署的jar包
新建deploy视图
View name deploy-all
List View
ok
Name deploy-all
Description deploy-all
Job Filters
Use a regular expression to include jobs into the view
Regular expression (deploy-hyh.*G).*
OK
View name deploy-hyh-basicsG
List View
ok
Name deploy-hyh-basicsG
Description deploy-hyh-basicsG
Job Filters
Use a regular expression to include jobs into the view
Regular expression (deploy-hyh-basics-.*).*
OK
08:
新建update
New 任务 -- hyh-update -- 构建Freestyle Project -- ok
用于update上传部分或全部jar
===================================================================================
This project is parameterized
Add Parameter
Choice Parameter
Name Action
Choices
UpdateSelect
UpdateAll
Description
UpdateSelect 上传选择的文件
UpdateAll 上传所有的文件
添 加 Active choices Reactive Parameter
Name UpdateSelect
Groovy Script
username="hyh"
path="/home/${username}/datas/jenkins/jenkins-files"
UpdateSelect=['bash', '-c', "ls -t1 ${path} "].execute().text.readLines()
if (Action.equals("UpdateSelect")) {
return UpdateSelect
} else {
return ["UpdateAll"]
}
!!! 不要勾选Use Groovy Sandbox ,否则BackFile选项不会出现下拉菜单 !!!
Description --- !!! UpdateSelect更新单独app包时请选择此项 !!!
Referenced parameters --- Action
Build
add build step
Conditional step (single) 条件性步骤
Run --- Execute Shell
if [ "${Action}" = "UpdateSelect" ]; then
exit -1;
fi
Builder --- Invoke Gradle script
Invoke Gradle --- Gradle Version --- gradle
Add build step
Execute shell
username=hyh
groupname=hyh
updatehost=100.0.0.12
case $Action in
UpdateSelect)
ssh ${updatehost} mkdir -p /home/hyh/datas/jenkins/jenkins-files
ssh ${updatehost} chown -R ${username}.${groupname} /home/${username}/datas/jenkins
cd /home/${username}/datas/jenkins/jenkins-files
rsync -avp /home/${username}/datas/jenkins/jenkins-files/${UpdateSelect} ${username}@${updatehost}:/home/${username}/datas/jenkins/jenkins-files/
;;
UpdateAll)
ssh ${updatehost} mkdir -p /home/${username}/datas/jenkins/jenkins-files
ssh ${updatehost} chown -R ${username}.${groupname} /home/${username}/datas/jenkins
cd /home/${username}/datas/jenkins/jenkins-files
rsync -avp /home/${username}/datas/jenkins/jenkins-files ${username}@${updatehost}:/home/${username}/datas/jenkins
;;
*)
exit
;;
esac
====================================================================================
新建update视图
View name hyh-update
List View
ok
Name hyh-update
Description hyh-update
Job Filters
Use a regular expression to include jobs into the view
Regular expression (hyh-update.*).*
OK
09:
新建rollback
New 任务 -- hyh-rollback -- 构建Freestyle Project -- ok
用于rollback回滚jar
===================================================================================
This project is parameterized
Add Parameter
Choice Parameter
Name Active
Choices
RollBack
Description
RollBack 回滚还原
添 加 Active choices Reactive Parameter
Name BackFile
Groovy Script
username="hyh"
path="/home/${username}/datas/jenkins/jenkins-backup"
BackFile=['bash', '-c', "ls -t1 ${path}/* "].execute().text.readLines()
if (Active.equals("RollBack")) {
return BackFile
} else {
return ["选择RollBack后显示"]
}
!!! 不要勾选Use Groovy Sandbox ,否则BackFile选项不会出现下拉菜单 !!!
Description --- !!! 回滚时请选择此项 !!!
Referenced parameters --- Active
=============================================================================================
Build
add build step
Conditional step (single) 条件性步骤
Run --- Execute Shell
if [ "${Active}" = "RollBack" ]; then
exit -1;
fi
Builder --- Invoke Gradle script
Invoke Gradle --- Gradle Version --- gradle
Add build step
Execute shell
username=hyh
groupname=hyh
RollAppName=`echo ${BackFile} | awk -F ".jar" '{print $1}'`
case $Active in
RollBack)
cd /home/${username}/datas/jenkins/jenkins-files
rsync -avp /home/${username}/datas/jenkins/jenkins-backup/${RollAppName}/${BackFile} /home/${username}/datas/jenkins/jenkins-files/${RollAppName}.jar
;;
*)
exit
;;
esac
====================================================================================
新建rollback视图
View name hyh-rollback
List View
ok
Name hyh-rollback
Description hyh-rollback
Job Filters
Use a regular expression to include jobs into the view
Regular expression (hyh-rollback.*).*
OK
==================================================================================
cd hyh
git config --global user.name "whoddp"
git config --global user.email "whoddp@sina.com"
git config --global core.editor vim
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8
git remote add origin https://e.coding.net/haoyahao/hyh/hyh.git
git add hyh-dev
git commit -m "add hyh-dev"
git push -u origin master