当前位置: 首页 > news >正文

不利于优化网站的因素做网站赚钱交税

不利于优化网站的因素,做网站赚钱交税,wordpress ssl 图片,南阳市中小企业融资综合信用服务Jenkins Pipeline 部署总结 前言 Jenkins Pipeline 是 Jenkins 提供的一套强大的工作流框架#xff0c;它允许开发者以代码的形式定义整个软件交付过程#xff0c;从而实现持续集成和持续部署#xff08;CI/CD#xff09;。通过 Pipeline#xff0c;原本独立运行于单个或…Jenkins Pipeline 部署总结 前言 Jenkins Pipeline 是 Jenkins 提供的一套强大的工作流框架它允许开发者以代码的形式定义整个软件交付过程从而实现持续集成和持续部署CI/CD。通过 Pipeline原本独立运行于单个或多个节点的任务可以被连接起来形成一个完整的、可视化的工作流。以下是对 Pipeline 部署的一个综合记录与总结涵盖了常用语法的概述以及实践应用的展示。 语法 Pipeline 的语法主要基于 Groovy并分为声明式Declarative和脚本式Scripted两种。 声明式 Pipeline 声明式 Pipeline 是 Jenkins Pipeline 的推荐方式它更简洁、更易于理解。其最简结构如下 pipeline { agent any stages { stage(Example) { steps { echo Hello World } } } }主要组成部分 pipeline整个流水线的根元素包含流水线的全部逻辑。agent指定流水线的执行节点Jenkins agent。可以是 any、none、label、node 或 docker。stages包含多个 stage 的容器。stage代表流水线的阶段每个阶段必须有名称。steps代表阶段中的一个或多个具体步骤step的容器。post可选部分包含整个 pipeline 或阶段完成后的一些附加步骤。根据完成状态分为 always、success、failure、unstable、changed、fixed、aborted 和 cleanup 等条件块。 常用指令 environment设置环境变量可定义在 stage 或 pipeline 部分。 pipeline { agent any environment { CC clang } stages { stage(Example) { environment { AN_ACCESS_KEY credentials(my-predefined-secret-text) } steps { sh printenv sh echo ${CC} } } } }tools定义自动安装并自动放入 PATH 里面的工具集合。 pipeline { agent any tools { maven apache-maven-3.0.1 } stages { stage(Example) { steps { sh mvn --version } } } }input在 stage 部分使用会暂停 pipeline提示输入内容。 stage(Input Example) { input Should we continue? }options配置 pipeline 本身的选项如 timeout、retry、buildDiscarder、disableConcurrentBuilds 等。 pipeline { agent any options { timeout(time: 10, unit: SECONDS) buildDiscarder(logRotator(numToKeepStr: 2)) retry(5) } stages { stage(Example) { steps { echo Hello World } } } }parameters定义 pipeline 的专有参数列表支持 string、text、booleanParam、choice、password 等数据类型。 pipeline { agent any parameters { string(name: PERSON, defaultValue: Jenkins, description: 输入的文本参数) choice(name: CHOICE, choices: [One, Two, Three], description: Pick something) } stages { stage(Example) { steps { echo Hello ${params.PERSON} } } } }triggers定义 pipeline 的触发器如 cron 和 pollSCM。 pipeline { agent any triggers { cron(H 4/* 0 0 1-5) } stages { stage(Example) { steps { echo Hello World } } } }parallel声明式 Parallel 的代码块中可以嵌套多个 stage从而让多个 stage 任务并行执行。 pipeline { agent any stages { stage(Parallel Example) { steps { script { def tasks [:] tasks[Task 1] { echo Running Task 1 // 其他步骤 } tasks[Task 2] { echo Running Task 2 // 其他步骤 } parallel tasks } } } } }常用的内置步骤 文件目录相关步骤deleteDir、dir、fileExists、pwd、writeFile、readFile。 制品相关步骤stash、unstash。 命令相关步骤sh。 其他步骤error、tool、timeout、waitUntil、retry、sleep。 脚本式 Pipeline node { stage(Build) { echo Building.. sh make } stage(Test) { echo Testing.. sh make check } stage(Deploy) { echo Deploying.... sh make publish } }使用node作为根元素表示Pipeline将在某个节点上执行。stage块是可选的但在这里使用它可以清晰地展示Jenkins UI中的每个stage的任务子集。每个stage中同样定义了要执行的步骤但这里没有显式地指定steps块因为步骤是直接写在stage块中的。 对比分析 声明式 Pipeline 以其简洁的语法结构和固定的组织要求更适合小型项目或快速构建需求且对无编程经验的用户友好如果需要更复杂的逻辑可以通过嵌套script块来实现。而脚本式 Pipeline 则基于Groovy 脚本提供了更高的灵活性和几乎无限制的功能适用于大型项目或需要复杂逻辑和高度定制化的场景但要求用户具备一定的Groovy编程基础。 应用实例 网页部署 Jenkins 首页 New Item 新建 Pipeline 并进行配置。 绑定 gerrit project用于 gerrit 代码提交时触发 Pipeline 执行。 在部署 Pipeline 时可以先直接在网页配置 Pipeline script 进行测试等 Pipeline script 调试通过后再移植到代码仓库进行版本管理。 网页的 Pipeline script 调试通过后可以将脚本内容复制到代码仓库 .jenkinsfile 文件上比如我这里的 chirpstack.jenkinsfile方便后续进行版本管理。 Pipeline script 下面是一个使用 docker 构建 yocto openstlinux 镜像的 pipeline script 实例主要流程有 指定 pipeline 使用的 docker 镜像环境。agent拉取项目代码并检出到对应分支。(Checkout)从 aws 私人仓库下载相关软件加速包避免在编译过程中下载。(Download)配置编译环境构建镜像。(Build)将构建的镜像上传到 aws。(Upload)构建成功时将镜像下载链接附属到网页。(post ) 关于如何构建 openstlinux 编译环境的 docker 镜像chirpstack-dev:latest可以参考 Docker 基础入门 pipeline {agent {docker {label Embeddedimage chirpstack-dev:latestargs -v ${HOME}/.gitconfig:/home/ubuntu/.gitconfig -v ${HOME}/.ssh:/home/ubuntu/.ssh -v ${HOME}/.aws:/home/ubuntu/.aws}}environment {JOB_PATH ${env.WORKSPACE}/lorawan/yocto_ws}stages {stage(Checkout) {steps {sh #!/bin/bashset -xewhoamimkdir -p $JOB_PATH cd $JOB_PATHinit_and_update() {local max_retries3local retries0local successfalsewest init -m ssh://gerrit.robotics.cn:29419/iot_device/lorawan/gateway/cloud_walking_shoeswhile [ $retries -lt $max_retries ]; doretries$((retries 1))local result$(west update 21)local status$?if echo $result | grep -q ERROR; thenecho Attempt $retries failed to initialize job $JOB_PATH. Retrying...elsesuccesstrueecho Initialization and update completed successfully for job $JOB_PATH on attempt $retries.breakfisleep 3doneif [ $success false ]; thenecho Error initializing job $JOB_PATH after $max_retries attempts:echo $resultexit 1fi}init_and_update}}stage(Download) {steps {sh #!/bin/bashset -xeEXPECTED_MD504fca21f1061fd33a831ffc3660722b2CACHE_DIR$JOB_PATH/../buildmkdir -p $CACHE_DIRecho Starting download process ...aws s3 cp s3://embedded/yocto/chirpstack/download/downloads.zip $CACHE_DIR/if [ $? -ne 0 ]; thenecho Error: Failed to download files from S3.exit 1fiecho Download process completed successfully.# ACTUAL_MD5$(md5sum $CACHE_DIR/downloads.zip | awk {print $1})# if [ $ACTUAL_MD5 ! $EXPECTED_MD5 ]; then# echo Error: MD5 checksum mismatch. Expected: $EXPECTED_MD5, Actual: $ACTUAL_MD5# exit 1# fi# echo Download process completed successfully and MD5 checksum verified.unzip -o $CACHE_DIR/downloads.zip -d $CACHE_DIRrm $CACHE_DIR/downloads.zip}}stage(Build) {steps {sh #!/bin/bashset -xecd ${JOB_PATH}/../source ${JOB_PATH}/poky/oe-init-build-envpwdsed -i s/^MACHINE ??.*/MACHINE ?? \stm32mp15-loar-gateway\/ conf/local.confsed -i s/^DISTRO ?.*/DISTRO\openstlinux-weston\/ conf/local.confcat conf/local.conf | grep -E MACHINE|DISTRObitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-oebitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-pythonbitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-networkingbitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-gnomebitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-multimediabitbake-layers add-layer ../yocto_ws/meta-openembedded/meta-webserverbitbake-layers add-layer ../yocto_ws/meta-loar-gatewaybitbake-layers add-layer ../yocto_ws/meta-st-stm32mpbitbake-layers add-layer ../yocto_ws/meta-st-openstlinuxbitbake-layers add-layer ../yocto_ws/meta-st-stm32mpu-app-lorawancat conf/bblayers.confls -al $(pwd)/downloadsset ebitbake_build() {local max_retries3local retries0local successfalsewhile [ $retries -lt $max_retries ]; doretries$((retries 1))bitbake st-image-westonif [ $? -ne 0 ]; thenecho Attempt $retries failed to Bitbake build. Retrying...elsesuccesstruebreakfisleep 3doneif [ $success false ]; thenecho Error failed to Bitbake build after $max_retries attempts:exit 1fi}bitbake_build}}stage(Upload) {steps {sh set -xetar -czvf ${JOB_PATH}/stm32mp15-loar-gateway_${BUILD_NUMBER}.tar.gz ${JOB_PATH}/../build/tmp-glibc/deploy/images/stm32mp15-loar-gatewayaws s3 cp ${JOB_PATH}/stm32mp15-loar-gateway_${BUILD_NUMBER}.tar.gz s3://embedded/yocto/chirpstack/Artifacts/}}}post {success {archiveArtifacts artifacts: lorawan/yocto_ws/stm32mp15-loar-gateway_${BUILD_NUMBER}.tar.gz, fingerprint: true}cleanup {cleanWs()}} } 构建日志 Pipeline UI
http://www.sczhlp.com/news/192397/

相关文章:

  • 长沙企业网站建设分公司网站推广方式案例
  • 建设银行企业网银网站过期建网站问题
  • 个人购物网站建设一个月捞偏门可挣20万
  • 赣州建设局 网站上海制作网页哪家好
  • 响应式网站怎么做档案网站建设外包公司
  • 专做水果店加盟的网站怎样在网站上做有效的广告投放
  • 哈尔滨 网站建设仟路南京建设行政主管部门网站
  • 小猪会飞网站建设关键词查询工具包括哪些
  • 建设一个蛋糕网站的背景与目的东营可以做网站的公司在哪
  • 河北省建设项目环保备案网站wordpress 主题制作 functions.php
  • [Vulhub靶机]W1R3S靶机渗透
  • 基于zynq实现一个边缘识别视频流(预学习HLS篇)
  • 商务网站开发设计结论安卓手机编程软件
  • 合肥做网站怎么样一台电脑主机做网站
  • 网页网站开发公司长沙专业网站建设服务
  • 网站的管理跟新维护有哪些如何设计企业网站
  • 成都建工雅安建设有限责任公司网站技术博客 wordpress mou
  • 忻州市住房城乡建设局网站网站建设下单源码
  • 网站开发与设计实训总结两千字网站导航网址大全
  • 温州网站建设服务wordpress防注册机
  • 郑州网站建设企业网站后台更新后主页没有变化
  • 建视频网站多少钱如何自己做软件网站
  • 竹子林网站建设昆明网站快照优化公司
  • 门户网站建设汇报建筑模板规格
  • 网站建设推广ppt企业开发网站建设
  • 做网站多少钱zwnet濮阳做网站多少钱
  • 公司网站建设情况报告wordpress5.2.2编辑器中文
  • 网站关键词代码位置怎么在印度做网站
  • 网站首页设计要求外贸公司网站素材
  • 黄石公司做网站网站开发本科论文