【jenkins】 动态参数传入项目
步骤1:
在jenkins 内配置 项目参数栏,进行参数配置 :General->This project is parameterized 中进行设置
步骤2:
项目中的流水线中配置传参数的动作,将参数传入流水线
pipeline { agent { label 'slave-02-per' } stages { stage('Checkout') { steps { checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '', url: 'ssh://git']]) } } stage('Prepare'){ steps{ echo 'Initialize the execution environment: install dependent packages and tools...'
bat 'D:\\program\\anacoda\\condabin\\conda.bat init && D:\\program\\anacoda\\condabin\\conda.bat activate base && D:\\program\\anacoda\\condabin\\conda.bat env remove -n model && IF EXIST D:\\software\\Anaconda\\envs\\model rd /s /q D:\\software\\Anaconda\\envs\\model'
bat 'D:\\program\\anacoda\\condabin\\conda.bat create -y -n model python=3.12.3'
bat 'D:\\program\\anacoda\\condabin\\conda.bat activate model && python --version && pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/'
# bat 'D:\\soft_test\\anaconda\\condabin\\conda.bat activate model && python --version' } } stage('Run Test Case') { failFast false steps { parallel( 'Run Pytest Case': { bat 'D:\\soft_test\\anaconda\\condabin\\conda.bat activate model && python replaceEnvvar.py %run_label% %version%' bat 'D:\\soft_test\\anaconda\\condabin\\conda.bat activate model && python per_run.py %run_label% %version%' } ) } } } post { always { allure includeProperties: false, jdk: '', results: [[path: 'report']] } } }
步骤3:
获取传入命令行的参数,再进行逻辑处理
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') run_label = sys.argv[1]