Jenkins定时构建自动化(五):手动+定时构建执行本地+运行代码需要传参

Jenkins定时构建自动化(五):手动+定时构建执行本地+运行代码需要传参

        

注:走到这一步,恭喜你学会了基本的jenkins代码执行,如果想要继续学习先去看python的argparse模块和argparse模块示例,也可以直接看argparse模块示例进行代码照搬,会搬砖也是一个技术活。

Python 的 argparse 模块:Jenkins定时构建自动化(四):Python 的 argparse 模块-CSDN博客

Jenkins定时构建自动化(一):Jenkins下载安装配置-CSDN博客       

Jenkins定时构建自动化(二):Jenkins的定时构建-CSDN博客

Jenkins定时构建自动化(三):手动+定时构建执行本地+运行代码不需要传参-CSDN博客

Jenkins定时构建自动化(四):Python 的 argparse 模块-CSDN博客

 1. 先来段需要传参的代码:

import argparse

class Calculator:
    
    def run_calculator(self, num1, operator, num2):
        """
        运行计算器程序,解析命令行参数并计算结果
        """
        result = self.calculate(num1, operator, num2)  # 调用计算方法计算结果
        print(f"计算运行结果为: {result}")  # 打印计算结果

    def calculate(self, num1, operator, num2):
        """
        计算两个数字的四则运算
        :param num1: 第一个数字
        :param operator: 运算符,支持 '+', '-', '*', '/'
        :param num2: 第二个数字
        :return: 计算结果
        """
        if operator == '+':
            return num1 + num2
        elif operator == '-':
            return num1 - num2
        elif operator == '*':
            return num1 * num2
        elif operator == '/':
            if num2 == 0:
                return "不可为0"  # 处理除数为零的情况
            else:
                return num1 / num2
        else:
            return "无效的运算符"  # 处理无效的运算符


if __name__ == "__main__":
    calculator = Calculator()  # 创建计算器实例
    calculator.run_calculator(123, '+', 345)  # 运行计算器程序

        这段代码是一个简易的计算器,支持加减乘除四则运算,执行这段代码需要传三个参数:数值1 、运算符 、 数值2。

        2. 然后我们根据需要的传参可以将argparse模块代码封装成一个方法或者定义一个函数。

 def setup_argparse(self):
        """
        设置命令行参数解析器
        """
        parser = argparse.ArgumentParser(description='Simple_Calculator')  # 创建参数解析器对象
        parser.add_argument('--num1', type=float, required=True, help='First_number')  # 第一个数字参数
        parser.add_argument('--operator', type=str, required=True, choices=['+', '-', '*', '/'],
                            help='Operator (+, -, *, /)')  # 运算符参数,必须是四则运算符之一
        parser.add_argument('--num2', type=float, required=True, help='Second_number')  # 第二个数字参数
        return parser

        3. 将两段代码进行合并,这里为了方便展示进行定义函数操作:

import argparse

class Calculator:
    def __init__(self):
        self.parser = self.setup_argparse()  # 初始化参数解析器

    def setup_argparse(self):
        """
        设置命令行参数解析器
        """
        parser = argparse.ArgumentParser(description='Simple_Calculator')  # 创建参数解析器对象
        parser.add_argument('--num1', type=float, required=True, help='First_number')  # 第一个数字参数
        parser.add_argument('--operator', type=str, required=True, choices=['+', '-', '*', '/'],
                            help='Operator (+, -, *, /)')  # 运算符参数,必须是四则运算符之一
        parser.add_argument('--num2', type=float, required=True, help='Second_number')  # 第二个数字参数
        return parser

    def run_calculator(self):
        """
        运行计算器程序,解析命令行参数并计算结果
        """
        args = self.parser.parse_args()  # 解析命令行参数
        num1 = args.num1  # 获取第一个数字
        operator = args.operator  # 获取运算符
        num2 = args.num2  # 获取第二个数字

        result = self.calculate(num1, operator, num2)  # 调用计算方法计算结果
        print(f"运算结果为: {result}")  # 打印计算结果

    def calculate(self, num1, operator, num2):
        """
        计算两个数字的四则运算
        :param num1: 第一个数字
        :param operator: 运算符,支持 '+', '-', '*', '/'
        :param num2: 第二个数字
        :return: 计算结果
        """
        if operator == '+':
            return num1 + num2
        elif operator == '-':
            return num1 - num2
        elif operator == '*':
            return num1 * num2
        elif operator == '/':
            if num2 == 0:
                return "触发运算数值2不可为0"  # 处理除数为零的情况
            else:
                return num1 / num2
        else:
            return "无效运算符"  # 处理无效的运算符

if __name__ == "__main__":
    calculator = Calculator()  # 创建计算器实例
    calculator.run_calculator()  # 运行计算器程序

        4. 配置jenkins项目设置增加运行时传参选择

        5. 字符串传参:

        选择项传参

        按照第一个字符串传参方法再添加一个数值_2的传参

        6. 添加参数

        7. 进入项目界面运行项目

        8. 运行界面展示

        9. 选择框样式:

        10. 输入选择内容运行:

        11. 运行中:

        12. 运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/744306.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

React@16.x(40)路由v5.x(5)常见应用场景(2)- 实现类似 vue 的路由模式

目录 1,vue-router2,React 模拟实现 1,vue-router vue 的路由配置文件, // src/router/index.ts const routes [{path: "/news",children: [{ path: "", component: NewsView },{ path: "detail"…

免费领!系统学习上位机编程的流程与基础教程

上位机电气自动化plc编程全套入门教程工具 华山编程导师根据当前招聘需求的关键点,原创录制了一套系统的学习流程和基础教程,帮助你从快速入门到掌握上位机编程的技能。 二. 学习准备 为了更好地学习并实现80%以上的代码运行,建议准备一个工…

大学生搜题神器网站?分享七个支持答案和解析的工具 #职场发展#学习方法

在现代科技的帮助下,大学生们有幸能够利用各种日常学习工具来提升自己的学习效果。 1.全球翻译官 是一款在线翻译语言的服务平台,在app中,用户能够在线通过语音,拍照来翻译语言,非常的便捷,也支持文字翻译哦 全球翻…

第一百二十七节 Java面向对象设计 - Java枚举方法

Java面向对象设计 - Java枚举方法 因为枚举类型实际上是一个类类型,所以我们可以在枚举类型体中声明一切,我们可以在类体中声明它。 以下代码使用字段,构造函数和方法定义了一个级别枚举。 public enum Level {LOW(30), MEDIUM(15), HIGH(7…

5.How Fast Should You Be When Learning?(你应该用多快的速度学习? (一))

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing faster. 通常我在谈到快速学习时,是把“速度&qu…

埃特巴什码加解密小程序

埃特巴什码加解密小程序 这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。 简单替换密码 Atbash Cipher 埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例,它使用字母表中的最后 一个字母代表第一个字母…

SSLyze:一款快速高效的SSLTLS扫描工具

关于SSLyze SSLyze是一款快速高效且功能强大的SSL/TLS扫描工具,同时它也是一个Python库。 SSLyze在与目标服务器连接成功之后,可以对目标目标服务器的SSL/TLS配置进行扫描和分析,并确保其使用健壮的加密设置,包括证书、密码套件和…

SQL连接与筛选:解析left join on和where的区别及典型案例分析

文章目录 前言数据库在运行时的执行顺序一、left join on和where条件的定义和作用left join on条件where条件 二、left join on和where条件的区别原理不同left join原理:where原理: 应用场景不同执行顺序不同(作用阶段不同)结果集…

一文入门Makefile

今天我们来玩玩Makefile。 这边是借鉴的陈皓老师的《跟我一起写 Makefile》 pdf下载链接如下。 链接:https://pan.baidu.com/s/1woRq2nEkgzLv1o5uE0FZHg?pwdmhrh 提取码:mhrh 我们之前已经算是入门了gcc,那我们的下一站就是Makefile&…

每日一题——Python实现PAT甲级1144 The Missing Number(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 时间复杂度分析 空间复杂度分析 总体空间复杂度:O(N) 总结 我…

洗地机什么牌子耐用?四款高品质洗地机型号强烈安利

在快节奏的现代生活中,保持家庭清洁成为了许多人的挑战。传统的清洁方式不仅耗时费力,还难以彻底清洁地板上的污渍和毛发。特别是对于有宠物的家庭,毛发的清理更是让人头疼。如果有一款洗地机,既能高效清洁又能省时省力&#xff0…

Matlab|风光及负荷多场景随机生成与缩减

目录 1 主要内容 计算模型 场景生成与聚类方法应用 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《融合多场景分析的交直流混合微电网多时间尺度随机优化调度策略》3.1节基于多场景技术的随机性建模部分,该部分是随机优化调度的重要组成部分…

从0到1构建自己的短链接系统

1. 短链系统简介 1.1 短链系统的定义与用途 短链系统是指将一个较长的URL地址,通过特定的算法生成一个较短的、具备唯一性的URL地址。这种系统广泛应用于社交网络、短信、邮件营销等场景,它能帮助用户在字数受限的情况下分享链接,并且还具有…

6-47选择整数计算

整数计算: 用swing组件来实现整数计算,需要对整数计算的值进行校验。 import javax.swing.*; import java.awt.*; import java.awt.event.*;public class IntegerCalculator extends JFrame implements ActionListener {private JCheckBox[] checkBoxe…

老杨说运维 | 基于业务全链路的端到端排障分析(文末附现场视频)

前言 青城山脚下的滔滔江水奔涌而过,承载着擎创一往无前的势头,共同去向未来。2024年6月,双态IT成都用户大会擎创科技“数智化可观测赋能双态运维”专场迎来了完满的收尾。 本期回顾来自擎创科技产品总监殷传旺的现场演讲:云原生…

封装了一个iOS联动滚动效果

效果图 实现逻辑和原理 就是在 didEndDisplayingCell 方法中通过indexPathsForVisibleItems 接口获取当前可见的cell对应的indexPath, 然后获取到item最小的那一个,即可,同时,还要在 willDisplayCell 方法中直接设置标题的选中属…

代码随想录算法训练营第三十四天|56. 合并区间、738.单调递增的数字、968.监控二叉树

56. 合并区间 题目链接:56. 合并区间 文档讲解:代码随想录 状态:无语,这题从右边界排序做不了! 思路: 排序:按照区间的起始位置进行排序,这样后面处理时可以顺序合并重叠区间。合并…

Cortex-M Fault

Cortex-M CPU 会在系统发生故障时引发异常。非法内存写入和读取、访问未通电的外设、执行无效指令、除以零以及其他问题都可能导致此类异常。通常在所有情况下都会引发 HardFault 异常。对于某些故障,可以启用不同的异常来专门处理这些情况。 Cortex-M 故障异常 …

剪画小程序:视频文案提取神器:制作爆款视频的第一步!

在这个信息爆炸的时代,视频成为了我们获取知识和娱乐的重要途径。 但有时候,我们想要的不仅仅是观看视频,而是能够将其中精彩的文案提取出来,为自己的创作添砖加瓦。 现在,有一款神奇的工具应运而生,为您…

Linux-笔记 全志T113移植正点4.3寸RGB屏幕笔记

目录 前言 线序整理 软件 显示调试 触摸调试 背光调试 前言 由于手头有一块4.3寸的RGB屏幕(触摸IC为GT1151),正好开发板上也有40Pin的RGB接口,就想着给移植一下,前期准备工作主要是整理好线序,然后用转接板与杜邦线连接验证好…