做网站用的动漫资料,安徽省干部建设教育网站,什么叫方案设计,铁岭做网站公司哪家好文章目录 1.Jenkins-docker配置#xff1a;运行在8080端口上#xff0c;机器只要安装docker就能装载image并运行容器2.Jenkins与GitLab配置#xff1a;docker ps查看正在运行#xff0c;浏览器访问http://10....:8080/2.1 GitLab与Jenkins的Access Token配置#xff1a;不… 文章目录 1.Jenkins-docker配置运行在8080端口上机器只要安装docker就能装载image并运行容器2.Jenkins与GitLab配置docker ps查看正在运行浏览器访问http://10....:8080/2.1 GitLab与Jenkins的Access Token配置不涉及具体项目2.2 新建jenkins job和配置jobjenkins的Dashboard仪表盘界面点击New Item要登陆可新建job或者复制已有job直接复制已有job拷贝后的job不要运行build避免回填错误数据到GitLab2.3 Jenkins pipeline script配置groovy语言2.4 JenkinsGitLab集成环境验证GitLab推送修改至仓库新分支验证push event可触发jenkins jobjenkins回填数据至GitLab 1.Jenkins-docker配置运行在8080端口上机器只要安装docker就能装载image并运行容器
Jenkins镜像和nginx一样code push到git上git通过hook触发构建/测试/部署就是CI持续集成CD持续交付工具即jenkins需提供一台运行jenkins的机器 官网https://www.jenkins.io/下载jenkins可选择适合你自己系统的版本也可选择不依赖于系统的docker前提本机安装了docker或war包本机安装了java如下开启服务端。 执行如上命令出现密码复制这串密码浏览器打开http://localhost:8080客户端粘贴到管理员密码里。点击安装推荐插件创建管理员用户y密码123到这里jenkins已经安装完成了装在win上主要用来配合git服务器。 在指定服务器上安装docker使用docker命令进行下载jenkins-docker版本如下
docker pull jenkins/jenkins:2.54 (docker images查看, 不指定版本就是最新的版本)-name指定image名字。-p内部container和外部对应关系。-v外部地址和container内部地址对应关系在container内部修改jenkins的话外部也会更新。/etc/localtime时间同步。
docker run --privilegedtrue -d --name jenkins -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /home/yt/jenkins_home:/var/jenkins_home/ -v /etc/localtime:/etc/localtime jenkins/jenkins:2.54 或v4docker exec -u 0 -it jenkins bash # 进入docker container内部需安装cppcheck等命令
docker save –o jenkins_v4.tar jenkins/jenkins:v4 # 保存docker images为tar包命令
docker load -input jenkins_v4.tar # 加载tar包为docker images命令2.Jenkins与GitLab配置docker ps查看正在运行浏览器访问http://10…:8080/
2.1 GitLab与Jenkins的Access Token配置不涉及具体项目
GitLab配置Access Token用于jenkins连接GitLab获取GitLab API接口点击右上角用户头像Edit profile再点击左侧Access Tokens 命名为gitlab_jenkinsSelect scopes全部勾选上点击创建产生如下字符串。 如下Manage Jenkins需要admin admin用户。如下Add是一个按钮。
2.2 新建jenkins job和配置jobjenkins的Dashboard仪表盘界面点击New Item要登陆可新建job或者复制已有job直接复制已有job拷贝后的job不要运行build避免回填错误数据到GitLab http://10.75.135.34:8084/job/example/点击Advanced。 如下gitlab查看成员只有Maintainer才有Settings。
2.3 Jenkins pipeline script配置groovy语言
// 环境模块导入, 清空工作空间
import hudson.*
node(){stage(clear workspace){cleanWs()}
}// 下载源码
node(){stage(download code){echo download codeif (env.gitlabSourceBranch null){ //当gitlab过来触发的job的话环境变量上就会有gitlabSourceBranch字串git branch: sw61, credentialsId: 18f53bc3-dc50-4178-acde-d628264ee453, url: https://gitlab-dbd...com/bsp_diag/prj_bsp.git // null说明不是gitlab触发}else{ //gitlab做了push或merge操作时触发credentialsId就是Access Tokensgit branch: env.gitlabSourceBranch, credentialsId: 18f53bc3-dc50-4178-acde-d628264ee453, url: env.gitlabSourceRepoHttpUrl}}
}// 源码cppcheck扫描
try{node(){stage(cppcheck){echo cppcheck startingpwd()sh /home/cppcheck-1.75/cppcheck 4 --enableall --inconclusive --xml --xml-version2 env.WORKSPACE 2 cppcheck.xmlpublishCppcheck ignoreBlankFiles: true, pattern: cppcheck.xmldef cppcheck_file_obj new File(env.WORKSPACE/cppcheck.xml)if (cppcheck_file_obj.isFile()){echo cppcheck.xml file existresult sh returnStdout: true ,script: cat env.WORKSPACE/cppcheck.xmlif (result ){echo analyse cppcheck.xml failure,cppcheck.xml is emptycurrentBuild.resultFAILURE}else{echo analyse cppcheck.xmlcppcheck_result sh returnStdout: true ,script: cat env.WORKSPACE/cppcheck.xml | grep cppcheck versionif(cppcheck_result ){echo analyse cppcheck.xml failure,cppcheck.xml format errorcurrentBuild.resultFAILURE}else{final_result sh returnStdout: true ,script: cat env.WORKSPACE/cppcheck.xml | grep severity\\error\\if(final_result ){echo analyse cppcheck.xml pass}else{echo analyse cppcheck.xml failure,cppcheck.xml has errorcurrentBuild.resultFAILURE}}}}else{echo cppcheck.xml file not existcurrentBuild.resultFAILURE}}}
}catch(e) {echo cppcheck failurecurrentBuild.resultFAILURE
}// 源码编译
try{node(){stage(compile code){echo compile codesh make //在docker里编译}}
}catch(e) {echo compile code failurecurrentBuild.resultFAILURE
}// 验证扫描与编译结果成功后归档相关文件
node(){stage(archive){echo archiveif(currentBuild.result FAILURE) {echo Something unexpected happened. Please inspect Jenkins logs. Skip archive.}else{sh mkdir buildcp cppcheck.xml build/cp *.ko build/tar -zcf archive.tar.gz build/archiveArtifacts artifacts: *.tar.gz, followSymlinks: false}}
}// 根据扫描和编译结果回填数据到GitLab
stage(commit gitlab){echo commit gitlabif(currentBuild.result FAILURE) {updateGitlabCommitStatus(name: sw61_bsp_build, state: failed)}else{updateGitlabCommitStatus(name: sw61_bsp_build, state: success)}
}2.4 JenkinsGitLab集成环境验证GitLab推送修改至仓库新分支验证push event可触发jenkins jobjenkins回填数据至GitLab gitlab触发docker_jekins部署在34服务器上34 ssh到33编译服务器进行编译回传img到3434将img传到测试的机器上测试机器上有测试用例代码文件34拷完img后触发40测试平台服务器40是大docker前后端小docker测试环境 【 ssh/串口/PDU到测试机器上 python3 测试用例 】 34传来的是选择哪一个小docker 40将执行pass显示结果传给3434传给gitlab。