`
Willam2004
  • 浏览: 88000 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一个自动化打包上传的简单shell工具

 
阅读更多

开发完成之后,需要将本地的环境进行打包,并部署到测试环境,一般需要经过这几个步骤, 1.mvn install 2.执行make-rpm.sh脚本 3.执行scp将本地的rpm包拷贝到测试服务器中。每次的敲代码也比较人肉,所以写了一个shell脚本,将这几部串起来。因为考虑到有些时候,我们其中一步失败,而不想重头在来,所以脚本我支持通过1,2,3的数字进行选择,具体看代码吧。

 

 

 

#!/bin/bash
#install

command=$1
username=$2
host=$3



function info(){
	echo 'use ./deploy.sh command [username] [host]'
	echo 'command:'
	echo '0  -- exec all action,contains:install makeRpm upload'
	echo '1  -- exec install'
	echo '2  -- exec makeRpm'
	echo '3  -- exec upload,the username and host only affect this action.'
}

function all(){
	install 
	makeRpm
	upload
}

function install(){
	echo 'mvn install'
	mvn clean install -Denv=release -Dmaven.test.skip=true >>/dev/null
}

function makeRpm(){
	echo 'make-rpm,please make u rpm version is 4.4.x'
	./make-rpm.sh>>/dev/null
}

function upload(){
	echo 'upload the rpm to server'
	if [ -z $username ];then
		username='xxx'
	fi
	if [ -z $host ];then
		host='xx.xx.xx.xx'
	fi
	scp ./target/rpm/RPMS/noarch/*.rpm $username@$host:/home/$username/ >>/dev/null
}

#start execute
info
echo 'deploy start'
if [ -z $command -o $command = 0 ];then  #这里面-o是或的关系,-a是and关系
		all
	elif [ $command = 1 ];then
		install
	elif [ $command = 2 ];then
		makeRpm	
	elif [ $command = 3 ];then
		upload	
fi

echo 'deploy success!'

这个脚本的不好之处,就是在上传的时候因为采用了scp的方式,需要手动输入密码,后续考虑使用expert的方式,让密码自动输入,这样就可以让脚本自动执行,让人休息了!

分享到:
评论

相关推荐

    自动化脚本打包苹果iap的Shell.zip

    标题中的“自动化脚本打包苹果iap的Shell.zip”指的是一个用于iOS应用自动化打包的Shell脚本,这个脚本特别针对苹果的In-App Purchase(IAP)服务进行了优化。IAP是苹果应用内购买功能,允许用户在应用程序内部购买...

    sringboot项目自动化发布shell脚本

    总的来说,`springboot项目自动化发布shell脚本`是DevOps实践中一个基础但重要的环节,它能帮助开发团队高效地管理软件生命周期,提高软件的迭代速度和质量。通过学习和理解这些脚本的工作原理,开发者可以更好地...

    Xcode-shell自动化打包脚本

    "Xcode-shell自动化打包脚本"就是这样一个解决方案,它利用shell脚本自动化执行Xcode的编译、签名和打包过程。 shell脚本是Unix或Linux系统中的一种命令语言,允许用户编写一系列命令并将其作为一个程序运行。在iOS...

    Android-akp自动打包上传

    自动化打包上传虽然高效,但也需要注意安全性。确保只有授权的人员可以访问和执行自动化脚本,避免未签名的APK被发布,同时保护签名密钥的安全,防止泄露。 综上所述,"Android-apk自动打包上传"涉及到了Android...

    自动打包代码shell

    在这个场景下,`自动打包代码shell`指的是使用Shell脚本来自动化应用程序的打包过程。下面将详细解释这个主题以及与其相关的知识点。 首先,我们需要理解什么是Shell脚本。Shell是Unix或类Unix系统上的一个命令行...

    iOS自动打包上传蒲公英或fir

    "iOS自动打包上传蒲公英或fir"这个主题聚焦于如何利用自动化工具,如Python和Shell脚本,来简化iOS应用的打包和分发过程。自动打包可以极大地提高工作效率,减少手动操作的错误,使得开发者能够快速迭代并测试他们的...

    使用Jenkins实现前端自动化打包部署(Linux版本).doc

    Jenkins 是一个开源的自动化服务器,可以执行远程 shell 脚本,非常适合自动化打包部署的任务。 安装 Node.js 和 Publish Over SSH 插件 首先,我们需要安装 Node.js 和 Publish Over SSH 插件。我们可以通过 ...

    swift-iOS自动编译打包shell脚本

    在iOS开发过程中,为了提高效率,开发者通常会编写自动化脚本来完成编译和打包的工作,这就是所谓的“swift-iOS自动编译打包shell脚本”。这个脚本能够帮助开发者节省手动操作的时间,提高工作效率,尤其在持续集成...

    Python-Python实现iOS自动化打包

    在IT行业中,自动化打包是提高效率、减少人工错误的关键步骤,尤其在iOS应用开发中。本文将深入探讨如何使用Python来实现iOS应用的自动化打包流程。Python作为一种强大的脚本语言,因其灵活性和丰富的库支持,成为了...

    打包工具脚本

    **打包工具** 通常是用于简化和自动化打包过程的软件或脚本集合。这些工具可以是自定义的shell脚本,也可以是像Fastlane这样的成熟框架。Fastlane是一个强大的工具,它提供了一系列易于使用的命令,帮助开发者轻松地...

    swift-iOS自动打包脚本多项选择一行上传指定位置

    在iOS开发过程中,为了提高工作效率,开发者经常使用自动化打包脚本来替代手动操作。"swift-iOS自动打包脚本多项选择一行上传指定位置"的主题涉及到Swift编程语言和iOS应用的自动化构建流程,通常包括配置Xcode...

    打包机人打包+上传+发邮件+打印ipa信息一键搞定_Python_Shell_下载.zip

    标题中的“打包机人打包+上传+发邮件+打印ipa信息一键搞定_Python_Shell_下载.zip”描述了一个使用Python脚本实现的自动化打包、上传、邮件通知以及IPA信息打印的解决方案。这个压缩包文件“HXPackRobot-master”很...

    Unity自动打包ipa ,一键上传appstore

    一个简单的`deliver`使用示例可能是: ``` deliver --ipa "path/to/your.ipa" --username "your@apple.id" --team_id "your_team_id" --skip_metadata ``` 这里的`--skip_metadata`选项意味着使用iTunes Connect...

    iOS自动打包脚本,具有打包、重签名、自动上传及发邮件功能.zip

    通过自动化打包,开发者可以更专注于代码编写和功能实现,而不用每次都手动进行耗时的打包工作。 总的来说,iOS自动打包脚本是iOS开发中的重要工具,它提高了开发效率,减少了重复劳动,并确保了打包过程的一致性和...

    jenkins自动打包部署.docx

    Jenkins 是一个流行的自动化服务器,用于自动化各种任务,包括编译、测试、部署、重启等。下面是关于 Jenkins 自动打包部署的知识点: 1. Jenkins 持续集成: Jenkins 是一个基于 Java 的自动化服务器,用于实现...

    shell脚本打包ipa

    以下是一个基本的shell脚本示例,用于构建和打包iOS应用: ```bash #!/bin/bash # 设置项目路径和参数 PROJECT_PATH="path/to/your/project.xcodeproj" SCHEME="YourAppScheme" OUTPUT_DIR="path/to/output" # ...

    shell 编程实例

    不过,可以创建一个Shell脚本来实现自动化的FTP上传,比如使用`lftp`或`ncftp`命令行工具。 4. 其他文件名如agnes.sh、totti.sh、3.sh、root、test、zw和regulus可能是各种特定功能的脚本。比如,agnes.sh可能是一...

    Jenkins项目实战之-MacOS High Sierra自动化打包方案的填坑之旅.rar

    本文将深入探讨如何在MacOS High Sierra操作系统上,利用Jenkins实现项目的自动化打包,同时分享在这个过程中可能遇到的问题以及解决策略。 首先,我们要理解Jenkins的基本概念。Jenkins是一个基于Java开发的持续...

    unity jenkins自动打包文档

    Jenkins提供了丰富的插件生态系统,使其能适应各种项目需求,包括Unity项目的自动化打包。 将Unity与Jenkins结合的关键步骤包括: 1. **安装Jenkins**:在服务器上下载并安装Jenkins,配置好端口和安全设置。确保...

    Jenkins+Gradle自动构建打包Android工程教程

    本教程将详细介绍如何利用Jenkins与Gradle搭建一个自动化构建平台,实现Android项目的自动构建与打包。 #### 二、Jenkins 的安装与配置 ##### 1. Jenkins 下载 - **下载地址**:[https://jenkins.io/download/]...

Global site tag (gtag.js) - Google Analytics