我之前也是做测试的呀,那你大概是想要开发人员提交代码后Jenkins自动运行测试脚本是吧,其实这个需求,你用docker来做吧,简单一点。你的开发环境用docker打包下最好,然后Jenkins跑就行。
比如下面的这个Jenkins流程代码,就是用docker部署个环境
[Groovy] 纯文本查看 复制代码 stage('环境部署') {
parallel {
stage('测试环境部署') {
agent { label "${TEST_ENV}" }
when {
beforeAgent true
environment ignoreCase: true, name: 'DEPLOY_TO', value: 'test'
}
steps {
echo '开始环境部署'
sh "docker login -u ${HAR_NAME} -p ${HAR_PASS} harbor.xxx.com.cn"
sh "docker pull harbor.xxx.com.cn/${HAR_NAME}/${JOB_NAME}:${git_tag}"
sh '''if [ $(docker ps -aq --filter name=^/${JOB_NAME}$) ]; then docker stop ${JOB_NAME} && docker rm ${JOB_NAME};fi'''
//自动部署最新版本
sh '''docker run -d --restart=unless-stopped --name ${JOB_NAME} -p ${CON_PROT}:${CON_PROT} harbor.xxx.com.cn/${HAR_NAME}/${JOB_NAME}:${git_tag} --spring.profiles.active=test '''
echo '部署结束'
}
}
docker打包环境也挺简单的,例如下面这个
[Bash shell] 纯文本查看 复制代码 FROM registry.cn-hangzhou.aliyuncs.com/xxxx/python:3.7.4-slim
// 设置Pip源
ENV PIP_INDEX_URL https://mirrors.aliyun.com/pypi/simple/
RUN pip3 install pipenv --no-cache-dir
// 设置项目目录
RUN set -ex && mkdir /app
WORKDIR /app
COPY Pipfile Pipfile
COPY Pipfile.lock Pipfile.lock
// 安装依赖
RUN set -ex && pipenv install --deploy --system
COPY . /app
CMD [ "pipenv" ,"run" ,"flask" ,"run" ] |