`

CI及Shell(Hudson)

 
阅读更多

一、持续集成及其意义

二、配置

三、构建结束后发布到指定web server

shell script:

(1)部署war例子

#!/bin/bash
# $1 is project name (e.g., "MDM-Server")
# $2 is development host name
# $3 is context name
 
 
if [ $# -lt 3 ] ; then
    echo "Usage: $0 <project> <host> <context> [module]"
    echo
    exit -1
fi
 
 
PROJECT=$1
DEV_HOST=$2
CONTEXT=$3
if [ $# -gt 3 ] ; then
        MODULE=$4
fi
 
 
if [ "x${MODULE}" == "x" ] ; then
        ARTIFACT_SRC=`ls /var/lib/hudson/jobs/${PROJECT}/workspace/target/*.war`
else
        ARTIFACT_SRC=`ls /var/lib/hudson/jobs/${PROJECT}/workspace/${MODULE}/target/*.war`
fi
 
 
TOMCAT_DIR="tomcat-${CONTEXT}"
 
 
ARTIFACT_DEST=builder@${DEV_HOST}:/opt/${TOMCAT_DIR}/webapps/${CONTEXT}.war
 
 
scp ${ARTIFACT_SRC} ${ARTIFACT_DEST}
 
 
if [ $? -ne "0" ] ; then
    exit 2
fi
(2)部署js到指定目录下,可由nginx代理

 

#!/bin/bash
# $1 is project name (e.g., "Domain-UI")
# $2 is resource server name
# $3 is context name
# $4 is javascript lib directory
 
 
if [ $# -lt 4 ] ; then
    echo "Usage: $0 <project> <server> <context> <js_dir>"
    echo
    exit -1
fi
 
 
PROJECT=$1
RES_SERVER=$2
CONTEXT=$3
JSLIB_DIRNAME=$4
 
 
JSLIB_TAR=jslib.tar
 
 
cd /var/lib/hudson/jobs/${PROJECT}/workspace/src/main/webapp
tar cf ${JSLIB_TAR} ${JSLIB_DIRNAME}
 
 
REMOTE_DIR=/var/lib/web/oncloud/${CONTEXT}
 
 
scp ${JSLIB_TAR} builder@${RES_SERVER}:${REMOTE_DIR}/${JSLIB_TAR}
ssh ${RES_SERVER} "cd ${REMOTE_DIR} && tar xf ${JSLIB_TAR}"
ssh ${RES_SERVER} "rm -rf ${REMOTE_DIR}/2.0-SNAPSHOT; mv ${REMOTE_DIR}/${JSLIB_DIRNAME} ${REMOTE_DIR}/2.0-SNAPSHOT"
ssh ${RES_SERVER} "rm -f ${REMOTE_DIR}/${JSLIB_TAR}"
 
 
rm -f ${JSLIB_TAR}
 
 
if [ $? -ne "0" ] ; then
    exit 2
fi

 

分享到:
评论

相关推荐

    continuous integration with hudson

    持续集成(Continuous Integration,简称CI)是一种软件开发实践,旨在频繁地将代码变更合并到共享的主分支(通常是项目的“main”或“master”分支),并自动运行构建和测试流程。这样可以尽早发现并解决集成错误,...

    Hudson持续集成工具-其他

    Eclipse Hudson是用Java编写的持续集成(CI)工具,它在servlet容器(例如Apache Tomcat或GlassFish应用服务器)中运行。它支持SCM工具,包括CVS,Subversion,Git和Clearcase,并可以执行基于Apache Ant和Apache ...

    hudson集成1

    首先,要安装Jenkins,你可以访问其官方网站 &lt;http://jenkins-ci.org/&gt; 下载最新版本的 `jenkins.war` 文件。这其实是一个可执行的WAR包,可以直接通过Java运行。例如,输入以下命令即可启动Jenkins: ```bash java...

    Hudson 持续集成工具 v3.3.3

    为您提供Hudson 持续集成工具下载,Eclipse Hudson是用Java编写的持续集成(CI)工具,它在servlet容器(例如Apache Tomcat或GlassFish应用服务器)中运行。它支持SCM工具,包括CVS,Subversion,Git和Clearcase,并...

    jshu:Jenkins的简化Shell单元测试框架-开源

    "jshu"是一个专为Shell脚本设计的简化单元测试框架,它使得在Jenkins或Hudson等CI/CD环境中进行Shell脚本的测试变得更为便捷。 ### 1. Jenkins与Hudson的关系 Jenkins起源于Hudson,两者都是开源的持续集成工具。...

    持续集成php持续集成

    - `.travis.sh` 和 `.travis.yml`:Travis CI是另一个流行的持续集成平台,这两个文件分别包含了Travis CI的Shell脚本和配置文件,定义了构建和测试过程的步骤。 - `classes`:通常包含项目的源代码,按照类或模块...

    Jenkins安装和使用.docx

    Jenkins 是一款开源 CI/CD 软件,用于自动化构建、测试和部署软件。它的核心是持续集成、持续交互和持续部署。学习 Jenkins 需要了解其历史、安装、使用和原理。 一、Jenkins 的历史 Jenkins 的前身是 Hudson,...

    Jenkins构建执行脚本

    通过合理配置和利用这些脚本,可以显著提升团队的开发效率,保证软件质量,并实现持续集成和持续交付(CI/CD)的最佳实践。在实际工作中,我们需要根据项目需求和团队习惯来定制合适的脚本和Jenkins配置,以达到最佳...

    jenkins入门讲解

    它的前身是Hudson,并且随着时间的发展,它不仅成为了CI领域的领头羊,还在持续交付(CD)方面有着广泛的应用。Jenkins支持多种编程语言,包括Java、C#、PHP等,同时还兼容Ant、Maven、Gradle等构建工具,能够与SVN、...

    Jenkins+Maven+SVN+Tomcat持续集成实战

    在现代软件开发中,持续集成(Continuous Integration,简称CI)已经成为提升效率、保障质量的重要手段。本文将详细讲解如何利用Jenkins、Maven、SVN和Tomcat等工具进行网站的持续集成实践,以实现代码的自动上传与...

    PHP差异分析工具TryLib.zip

     -n, --diff-only Create diff, but do not send to Hudson  -v, --verbose Verbose (show shell commands as they're run)  -p, --patch ... Path to patch file to use instead ...

    python的Jenkins接口调用方式

    随着自动化构建与持续集成(CI/CD)在软件开发过程中的普及,Jenkins作为一款强大的开源工具,成为了许多团队的选择。为了更好地实现自动化流程,将Python与Jenkins进行结合变得尤为重要。本文将详细介绍如何使用...

    Jenkins 介绍

    Jenkins 是一款开源、免费的持续集成(Continuous Integration, CI)服务器,原名为 Hudson,后因社区原因更名为 Jenkins。它支持多种平台,并且能够以 Master/Slave 架构运行,实现分布式构建任务。Jenkins 的主要...

    Jenkins 操作文档

    - **GitLab Plugin**:通过模拟 GitLab CI 服务器来集成 GitLab 和 Jenkins。 - **Hudson SCP Publisher Plugin**:使用 SCP(SSH)协议上传构建工件到存储站点。 - **Javadoc Plugin**:为 Jenkins 添加 Javadoc ...

Global site tag (gtag.js) - Google Analytics