jenkins

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容