【原】Gradle调用shell脚本和python脚本并传参
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结。
Pre
build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenkins变量,意图将gradle中的这两个值传到shell/python脚本中去用
def jenkinsBuild = System.getenv("BUILD_NUMBER") ?: "0"
println "jenkinsBuild is set to $jenkinsBuild"
def jenkinsJobName = System.getenv("JOB_NAME") ?: "defaultJobName"
println "jenkinsJobName is set to $jenkinsJobName"
Gradle调用shell脚本带参数
gradle task
task upload(type: Exec) {
executable 'sh'
args "-c","../shelldemo.sh $jenkinsJobName $jenkinsBuild"
}
shelldemo.sh脚本中
#!/usr/bin/env bash #从build.gradle中传入的两个参数
jenkinsJobName=$
jenkinsBuild=$
echo "jenkinsJobName=$jenkinsJobName"
echo "jenkinsBuild=$jenkinsBuild"
...
Gradle调用python脚本带参数
gradle task
task uploadpython(type: Exec) {
workingDir './'
commandLine "python","pythondemo.py", "$jenkinsJobName", "$jenkinsBuild"
}
pythondemo.py脚本
#encoding:utf8
import sys jenkinsJobName=sys.argv[]
jenkinsBuild=sys.argv[]
print jenkinsJobName
print jenkinsBuild
...
Gradle Exec官方文档的说明

注意双引号
Groovy中只为双引号的字符进行插值,所以如果写了单引号,是不work的。
http://stackoverflow.com/questions/14900883/trying-to-undersand-how-i-can-pass-arguments-from-gradle-to-my-shell-script
Groovy only performs String interpolation for double-quoted Strings. (That's one of the reasons why I use double quotes by default.) Try: ...
args "-c", "source dosomething.sh $arg"
【原】Gradle调用shell脚本和python脚本并传参的更多相关文章
- python 2 控制台传参,解包,编码问题初探
python 2 控制台传参,需要从sys模块中导入argv,argv返回的第一个参数当前脚本(script)的文件名,后面是参数,参数个数必须和解包(unpack)时使用的参数个数一致 1.本例子演 ...
- Python菜鸟之传参
Python菜鸟之传参 : 看上面enroll( )函数的调用传参 enroll("twiggy","M",city="上海", age=2 ...
- Python中的传参是传值还是传址?
传值:在C++中,传值就是把一个参数的值给这个函数,其中的更改不会影响原来的值. 传址:即传引用,直接把这个参数的内存地址传递进去,直接去这个内存地址上进行修改. 但是这些在Python中都没有,Py ...
- vue:子组件通过调用父组件的方法的方式传参
在本案例中,由于子组件通过调用父组件的方法的方式传参,从而实现修改父组件data中的对象,所以需要啊使用$forceUpdate()进行强制刷新 父组件: provide() { return { s ...
- shell脚本和python脚本实现批量ping IP测试
先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.130.2 192.168.130.3 ...
- Shell学习笔记之shell脚本和python脚本实现批量ping IP测试
0x00 将IP列表放到txt文件内 先建一个存放ip列表的txt文件: [root@yysslopenvpn01 ~]# cat hostip.txt 192.168.130.1 192.168.1 ...
- Jinkins流水线脚本使用curl命令调用服务接口,并且使用url传参。
curl http://xxx.xx.xx.xx:xxxx/jenkins/publish?fileName=${fileName}&tag_name=${tag_name} 如图调用不符合c ...
- python paramiko外部传参和内部调用命令的方法
学习了很久的python,但在工作中使用的时候,却发现不知道怎么传参进入到python中执行,所以这两天就研究 了python args怎么将外部参数传入到python中执行 1.首先使用python ...
- python获取命令行传参的两种种常用方法argparse解析getopt 模块解析
方法一:argparse解析 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @Time: 2020/5/20 10:38 # @Author:zhan ...
随机推荐
- 创建mysql 存储过程
CREATE PROCEDURE `test_insert_stu`() BEGIN DECLARE num INT; SET num = 0; WHILE (num<10) DO insert ...
- 【CodeVS 1199】【NOIP 2012】开车旅行
http://codevs.cn/problem/1199/ 主要思想是倍增,对于第一个回答从后往前扫,依次插入平衡树中. 我写的splay,比较繁琐. #include<cmath> # ...
- uva10870 矩阵
f(n) = a1f(n − 1) + a2f(n − 2) + a3f(n − 3) + . . . + adf(n − d), for n > d, 可以用矩阵进行优化,直接构造矩阵,然后快 ...
- JQuery触发radio或checkbox的change事件
在JQuery中,当给radio或checkbox添加一个change事件时,如果它的值发生变化就会触发change事件;本文将详细介绍如何利用JQuery触发Checkbox的change事件需要了 ...
- gdb简明手册
如果是在windows环境下,首先要添加环境变量: 新建一个环境变量MinGW_PATH,值为MinGW的运行目录: 然后在系统的Path变量后面加上一句:(每两个变量之间用 ; 分开) ------ ...
- POJ2456 Aggressive cows
Aggressive cows 二分,关键是转化为二分! #include <cstdio> #include <algorithm> ; ; int N, C; int a[ ...
- Android虚拟机Classic qemu does not support SMP问题记录
不及之前重装了一次系统,导致要重新搭建android开发环境,但是在启动AVD时queue遇到了这个问题 androidstudio中看到的是这个样子 大概查了一下,应该是创建虚拟机是选择的cpu构架 ...
- 浅析初等贪吃蛇AI算法
作为小学期程序设计训练大作业的一部分,也是自己之前思考过的一个问题,终于利用小学期完成了贪吃蛇AI的一次尝试,下作一总结. 背景介绍: 首先,我针对贪吃蛇AI这一关键词在百度和google上尽心了检索 ...
- ExceptionLess新玩法 -- 审计日志
审计日志 这算是一个挺酷的功能,把每个请求都记录下来,之前在abp中看到过这个功能,配合可视化的界面,简直是在装逼 看到了exceptionless后,心念一动,我也可以根据它做一个审计日志的功能.这 ...
- xml解析模块
XML XML是可扩展标记语言的缩写,是实现不同语言或程序之间进行数据交换的协议,主要可以对key添加属性. 页面做展示(字符类型的一个xml格式数据)\做配置文件(内部xml格式的数据).,每一个节 ...