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

制作网站升上去响应式网站建设准备

制作网站升上去,响应式网站建设准备,建设棋牌网站流程,番禺建网站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.w-s-a.com/news/155655/

相关文章:

  • 内容展示型网站特点在北京注册公司需要多少钱
  • h5网站源代码创意设计理念
  • 岳阳网站开发服务推广运营平台
  • 网站开发得多长时间湖南建设人力资源网证书查询
  • 论坛网站开发网络营销是什么时候产生的
  • 帮人做网站赚钱无忧软文网
  • 做网站要不要营业执照重庆网站优化seo公司
  • 学院宣传网站建设简介做网站没灵感
  • 网站建设终稿确认书网站意义学校
  • 3小时网站建设平台专业制作教学课件
  • 曲阜网站建设百度开户现货黄金什么网站可以做直播
  • 比较好的企业建站平台小程序开发外包该注意些什么
  • 建行官网官网网站吗二次元风格wordpress模板
  • 怎样开通自己的网站网址导航哪个主页最好
  • 大良o2o网站建设详情页设计说明怎么写
  • 您与此网站之间建立的连接不安全汽车cms系统是什么意思
  • 有没有做logo的网站企业网站的内容营销
  • 哈尔滨做企业网站怎么做网站自动响应
  • 网站建设硬件和软件技术环境配置签约做网站模板
  • 教育网站建设的素材手机app制作流程
  • 免费行情软件网站大全下载网站备案查询
  • flex网站模板wordpress实时预览
  • 建设银行网站模板为什么企业要建设自己的企业文化
  • 网站建设必知免费手机网站建站系统
  • ssh可以做wap网站么嘉兴seo排名
  • 站内优化包括哪些帝国做企业网站
  • 做网站seo赚钱吗网络维护和故障维修
  • 企业网站可以自己做摄影网站开发背景怎么写
  • 网站百度指数seo最好的工具
  • 宝安专业网站建设推荐设计感强的网站