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

怎么在企业站建立网站制作网络游戏

怎么在企业站建立网站,制作网络游戏,百度舆情监测平台,百度域名查询入口文章目录 一、Sections1、agent#xff08;代理#xff09;agent 参数值 2、post3、stages#xff08;阶段#xff09;4、steps#xff08;步骤#xff09; 二、Directives 指令1、environment 环境变量2、options 配置选项可用的选项 options 3、parameters 参数可用的参… 文章目录 一、Sections1、agent代理agent 参数值 2、post3、stages阶段4、steps步骤 二、Directives 指令1、environment 环境变量2、options 配置选项可用的选项 options 3、parameters 参数可用的参数 Parameters 4、triggers 触发器Jenkins cron 语法 5、stage阶段6、tools工具7、input 输入8、when内置when条件 四、Parallel并行五、script脚本Scripted Pipeline 六、Flow Control流程控制参考 Declarative Pipeline在Pipeline子系统之上提供了一种更简化和规范化的语法。 所有有效的Declarative Pipeline必须包含在pipeline块中例如 pipeline {/* 在此处插入Declarative Pipeline */ }在Declarative Pipeline中有效的基本语句和表达式遵循与Groovy语法相同的规则但有以下例外 Pipeline的顶层必须是一个块具体为pipeline { }。不使用分号作为语句分隔符。每个语句必须单独占据一行。块只能由Sections、Directives、Steps或赋值语句组成。属性引用语句被视为无参数方法调用。因此例如input被视为input()。 一、Sections 声明式Pipeline中的部分通常包含一个或多个指令或步骤 1、agent代理 agent指定整个Pipeline或特定stage将在Jenkins环境中执行的位置具体取决于agent的位置。 该部分必须在pipeline块的顶层定义但stage级别的使用是可选的。 pipeline {agent anyoptions {// Timeout counter starts AFTER agent is allocatedtimeout(time: 1, unit: SECONDS)}stages {stage(Example1) {steps {echo Hello World}}}stages {stage(Example2) {agent any // 接stage中定义steps {echo Hello World}}} }agent 参数值 agent支持几种不同类型的参数。这些参数可以应用于pipeline块的顶层也可以应用于每个阶段指令中。 下面列出一些常用参数 any 在任何可用的代理上执行Pipeline或阶段。例如agent any none 当应用于pipeline块的顶层时不会为整个Pipeline运行分配全局代理并且每个阶段部分都需要包含自己的agent部分。例如agent none label 使用提供的标签在Jenkins环境中可用的代理上执行Pipeline或阶段。例如agent { label ‘my-defined-label’ } 也可以使用标签条件例如agent { label ‘my-label1 my-label2’ } 或 agent { label ‘my-label1 || my-label2’ } node agent { node { label ‘labelName’ } } 与 agent { label ‘labelName’ } 相同但node允许使用其他选项例如customWorkspace。 2、post post部分定义了一个或多个额外的步骤在Pipeline或阶段运行完成后运行取决于post部分在Pipeline中的位置。post可以支持以下任何后置条件块always、changed、fixed、regression、aborted、failure、success、unstable、unsuccessful和cleanup。这些条件块允许根据Pipeline或阶段的完成状态执行每个条件内的步骤。条件块按照下面的顺序执行。 always 无论Pipeline或阶段的运行完成状态如何都运行post部分中的步骤。 changed 仅当当前Pipeline的运行完成状态与上一次运行不同时才运行post部分中的步骤。 fixed 仅当当前Pipeline的运行成功且上一次运行失败或不稳定时才运行post部分中的步骤。 regression 仅当当前Pipeline的运行状态为失败、不稳定或中止并且上一次运行成功时才运行post部分中的步骤。 aborted 仅当当前Pipeline的运行状态为aborted时才运行post部分中的步骤通常是由于手动中止Pipeline导致的。在Web界面中通常以灰色表示。 failure 仅当当前Pipeline或阶段的运行状态为failed时才运行post部分中的步骤通常在Web界面中以红色表示。 success 仅当当前Pipeline或阶段的运行状态为success时才运行post部分中的步骤通常在Web界面中以蓝色或绿色表示。 unstable 仅当当前Pipeline的运行状态为unstable时才运行post部分中的步骤通常由测试失败、代码违规等引起。在Web界面中通常以黄色表示。 unsuccessful 仅当当前Pipeline或阶段的运行状态不为success时才运行post部分中的步骤。在Web界面中根据前面提到的状态进行表示对于阶段如果构建本身不稳定可能会触发此条件。 cleanup 在评估了其他所有后置条件后无论Pipeline或阶段的状态如何都运行此后置条件中的步骤。 pipeline {agent anystages {stage(Example) {steps {echo Hello World}}}post {always {echo I will always say Hello again!}} }3、stages阶段 包含一个或多个stage指令的序列stages部分是Pipeline描述的“工作”的主要部分所在的位置。至少建议stages包含至少一个stage指令例如构建、测试和部署。 pipeline {agent anystages {stage(Example) {steps {echo Hello World}}} }4、steps步骤 steps定义了在给定的stage指令中要执行的一组一个或多个步骤。 二、Directives 指令 1、environment 环境变量 environment指令指定了一组键值对这些键值对将根据environment指令在Pipeline中的位置定义为所有步骤或特定阶段的步骤的环境变量。 该指令支持一个特殊的辅助方法credentials()它可以用于通过Jenkins环境中的标识符访问预定义的凭据。 credentials()支持的凭据类型 Secret Text 指定的环境变量将设置为Secret Text的内容。 Secret File 指定的环境变量将设置为临时创建的File文件的位置。 Username and password 指定的环境变量将设置为username:password并自动定义两个附加的环境变量MYVARNAME_USR和MYVARNAME_PSW。 SSH with Private Key 指定的环境变量将设置为临时创建的SSH密钥文件的位置并自动定义两个附加的环境变量MYVARNAME_USR和MYVARNAME_PSW包含密码。 pipeline {agent anyenvironment { CC clang}stages {stage(Example Username/Password) {environment {SERVICE_CREDS credentials(my-predefined-username-password)}steps {sh echo Service user is $SERVICE_CREDS_USRsh echo Service password is $SERVICE_CREDS_PSWsh curl -u $SERVICE_CREDS https://myservice.example.com}}stage(Example SSH Username with private key) {environment {SSH_CREDS credentials(my-predefined-ssh-creds)}steps {sh echo SSH private key is located at $SSH_CREDSsh echo SSH user is $SSH_CREDS_USRsh echo SSH passphrase is $SSH_CREDS_PSW}}} }2、options 配置选项 options指令允许从Pipeline内部配置特定于Pipeline的选项。Pipeline提供了一系列选项例如buildDiscarder也可以由插件提供例如timestamps。 可用的选项 options buildDiscarder 保留最近运行的特定数量的Pipeline的构件和控制台输出。例如options { buildDiscarder(logRotator(numToKeepStr: 1)) } checkoutToSubdirectory 在工作区的一个子目录中执行自动源代码控制检出。例如options { checkoutToSubdirectory(foo) } disableConcurrentBuilds 禁止并发执行Pipeline。可以防止同时访问共享资源等。例如options { disableConcurrentBuilds() } 将构建排队当Pipeline中已经有一个正在执行的构建时或 options { disableConcurrentBuilds(abortPrevious: true) } 以中止正在运行的构建并开始新的构建。 disableResume 如果控制器重新启动则不允许管道恢复。例如options { disableResume() } newContainerPerStage 与docker或dockerfile顶级代理一起使用。指定时每个阶段将在同一节点上的新容器实例中运行而不是所有阶段在同一容器实例中运行。 overrideIndexTriggers 允许覆盖分支索引触发器的默认处理。如果在多分支或组织标签处禁用分支索引触发器options { overrideIndexTriggers(true) } 将仅为此作业启用它们。否则options { overrideIndexTriggers(false) } 将仅为此作业禁用分支索引触发器。 preserveStashes 保留已完成构建的存储库以用于阶段重新启动。例如options { preserveStashes() } 以保留最近完成的构建的存储库或 options { preserveStashes(buildCount: 5) } 以保留最近完成的五个构建的存储库。 quietPeriod 设置Pipeline的静默时间以秒为单位覆盖全局默认值。例如options { quietPeriod(30) } retry 在失败时重试整个Pipeline指定的次数。例如options { retry(3) } skipDefaultCheckout 在agent指令中默认跳过从源代码控制中检出代码。例如options { skipDefaultCheckout() } skipStagesAfterUnstable 一旦构建状态变为UNSTABLE则跳过阶段。例如options { skipStagesAfterUnstable() } timeout 设置Pipeline运行的超时时间在此之后Jenkins应中止Pipeline。例如options { timeout(time: 1, unit: HOURS) } timestamps 在Pipeline运行生成的所有控制台输出前面加上该行发出的时间。例如options { timestamps() } parallelsAlwaysFailFast 为管道中的所有后续并行阶段设置failfast为true。例如options { parallelsAlwaysFailFast() } disableRestartFromStage 完全禁用经典Jenkins UI和Blue Ocean中可见的“从阶段重新启动”选项。例如options { disableRestartFromStage() }。此选项不能在阶段内部使用。 pipeline {agent anyoptions {timeout(time: 1, unit: HOURS)}stages {stage(Example1) {options {timeout(time: 1, unit: HOURS) }steps {echo Hello World}}stage(Example2) {steps {echo Hello World}}} }3、parameters 参数 parameters指令提供了在触发Pipeline时用户应提供的参数列表。这些用户指定的参数的值可以通过params对象在Pipeline步骤中使用。 每个参数都有一个名称和值具体取决于参数类型。当构建开始时这些信息会作为环境变量导出允许构建配置的后续部分访问这些值。例如在像bash和ksh这样的POSIX shell中使用${PARAMETER_NAME}语法在PowerShell中使用${Env:PARAMETER_NAME}语法在Windows的cmd.exe中使用%PARAMETER_NAME%语法。 可用的参数 Parameters string 一个字符串类型的参数例如parameters { string(name: DEPLOY_ENV, defaultValue: staging, description: ) }。 text 一个文本参数可以包含多行例如parameters { text(name: DEPLOY_TEXT, defaultValue: One\nTwo\nThree\n, description: ) }。 booleanParam 一个布尔类型的参数例如parameters { booleanParam(name: DEBUG_BUILD, defaultValue: true, description: ) }。 choice 一个选择参数例如parameters { choice(name: CHOICES, choices: [one, two, three], description: ) }。第一个值是默认值。 password 一个密码参数例如parameters { password(name: PASSWORD, defaultValue: SECRET, description: A secret password) }。 pipeline {agent anyparameters {string(name: PERSON, defaultValue: Mr Jenkins, description: Who should I say hello to?)text(name: BIOGRAPHY, defaultValue: , description: Enter some information about the person)booleanParam(name: TOGGLE, defaultValue: true, description: Toggle this value)choice(name: CHOICE, choices: [One, Two, Three], description: Pick something)password(name: PASSWORD, defaultValue: SECRET, description: Enter a password)}stages {stage(Example) {steps {echo Hello ${params.PERSON}echo Biography: ${params.BIOGRAPHY}echo Toggle: ${params.TOGGLE}echo Choice: ${params.CHOICE}echo Password: ${params.PASSWORD}}}} }4、triggers 触发器 triggers指令定义了Pipeline应该重新触发的自动化方式。目前可用的触发器有cron、pollSCM和upstream。 cron 接受一个cron风格的字符串来定义Pipeline应该重新触发的定期间隔例如triggers { cron(H */4 * * 1-5) } pollSCM 接受一个cron风格的字符串来定义Jenkins应该检查新的源代码更改的定期间隔。如果存在新的更改Pipeline将重新触发。例如triggers { pollSCM(H */4 * * 1-5) } upstream 接受一个逗号分隔的作业字符串和一个阈值。当字符串中的任何作业以最小阈值完成时Pipeline将重新触发。例如triggers { upstream(upstreamProjects: job1,job2, threshold: hudson.model.Result.SUCCESS) } // Declarative // pipeline {agent anytriggers {cron(H */4 * * 1-5)}stages {stage(Example) {steps {echo Hello World}}} }Jenkins cron 语法 Jenkins的cron语法遵循cron实用程序的语法有一些小的差异。具体而言每行由5个由TAB或空格分隔的字段组成 分钟MINUTE0-59小时HOUR0-23月份中的日期DOM-31月份MONTH1-12星期几DOW0-70和7表示星期日 为了在一个字段中指定多个值可以使用以下运算符。按优先顺序排列 * 表示所有有效值M-N 表示一个值范围M-N/X 或 */X 表示以X为间隔在指定范围或整个有效范围内进行步进A,B,…,Z 枚举多个值 为了使定时任务在系统上产生均匀的负载应尽可能使用符号H代表“哈希”。例如对于十几个每天执行的作业使用0 0 * * * 将在午夜产生大量的负载峰值。相比之下使用H H * * * 仍然每天执行每个作业一次但不会同时执行更好地利用有限的资源。 H符号可以与范围一起使用。例如H H(0-7) * * * 表示在凌晨12:00到上午7:59之间的某个时间。您还可以在H中使用步进间隔可以有范围也可以没有范围。 H符号可以被视为范围内的随机值但实际上它是作业名称的哈希值而不是随机函数因此对于任何给定的项目该值保持稳定。 请注意在月份的日期字段中短周期例如*/3或H/3在大多数月份的末尾可能无法保持一致这是由于月份长度的变化。例如*/3将在长月份的1日、4日、……31日运行然后在下个月的下一天再次运行。哈希值始终选择在1-28范围内因此H/3将在月底产生3到6天之间的运行间隔。较长的周期也会有不一致的长度但影响可能相对较不明显。 空行和以#开头的行将被忽略为注释。 此外还支持yearly、annually、monthly、weekly、daily、midnight和hourly作为别名。这些别名使用哈希系统进行自动平衡。例如hourly与H * * * *相同表示在整点的任何时间可能执行。midnight实际上表示在凌晨12:00 AM和2:59 AM之间的某个时间。 每隔十五分钟执行一次可能在:07、:22、:37、:52triggers{ cron(H/15 * * * *) }每隔十分钟在每小时的前半部分执行一次三次可能在:04、:14、:24triggers{ cron(H(0-29)/10 * * * *) }每隔两个小时的45分钟执行一次从上午9:45开始每个工作日结束于下午3:45。triggers{ cron(45 9-16/2 * * 1-5) }在工作日的上午9点到下午5点之间的每两个小时时间段内执行一次可能在上午10:38、下午12:38、下午2:38、下午4:38triggers{ cron(H H(9-16)/2 * * 1-5) }每个月的1日和15日执行一次除了12月triggers{ cron(H H 1,15 1-11 *) }5、stage阶段 stage指令位于stages部分并应包含一个steps部分、一个可选的agent部分或其他特定于阶段的指令。实际上Pipeline执行的所有实际工作都将包含在一个或多个stage指令中。 6、tools工具 tools指令定义了自动安装并放置在PATH上的工具。如果指定了agent none则会忽略这个部分。 支持的tools mavenjdkgradle 工具名称必须在Jenkins的“管理Jenkins”→“工具”下进行预配置 7、input 输入 在一个stage上使用input指令可以提示输入。在应用任何选项之后在进入该阶段的agent块或评估该阶段的when条件之前该阶段将暂停。如果输入被批准阶段将继续执行。作为输入提交的任何参数将在整个阶段的环境中可用。 构建过程中由用户输入相关数据以进行下一步操作不常用 8、when when指令允许Pipeline根据给定的条件确定是否应执行该阶段。when指令必须包含至少一个条件。如果when指令包含多个条件所有子条件必须返回true才能执行该阶段。这与将子条件嵌套在allOf条件中的效果相同参考下面的示例。如果使用anyOf条件请注意一旦找到第一个“true”条件条件将跳过剩余的测试。 可以使用嵌套条件构建更复杂的条件结构not、allOf或anyOf。嵌套条件可以嵌套到任意深度。 内置when条件 branch 当正在构建的分支与给定的分支模式ANT样式路径通配符匹配时执行该阶段例如when { branch master }。请注意这仅适用于多分支流水线。 可选参数比较器可以在属性后面添加以指定如何评估匹配的任何模式 EQUALS用于简单的字符串比较GLOB默认值用于ANT样式路径通配符与例如changeset相同REGEXP用于正则表达式匹配 例如when { branch pattern: release-\\d, comparator: REGEXP} buildingTag 当构建正在构建一个标签时执行该阶段。例如when { buildingTag() } changelog 如果构建的SCM更改日志包含给定的正则表达式模式则执行该阶段例如when { changelog .*^\\[DEPENDENCY\\] .$ } changeset 如果构建的SCM更改集包含一个或多个与给定模式匹配的文件则执行该阶段。示例when { changeset **/*.js } 可选参数比较器可以在属性后面添加以指定如何评估匹配的任何模式 EQUALS用于简单的字符串比较GLOB默认值用于ANT样式路径通配符不区分大小写可以使用caseSensitive参数关闭。REGEXP用于正则表达式匹配 例如when { changeset pattern: .TEST\\.java, comparator: REGEXP } 或 when { changeset pattern: */*TEST.java, caseSensitive: true } changeRequest 如果当前构建是一个“变更请求”在GitHub和Bitbucket上称为Pull Request在GitLab上称为Merge Request在Gerrit上称为Change等则执行该阶段。当没有传递参数时该阶段在每个变更请求上运行例如when { changeRequest() }。 通过在变更请求中添加带有参数的filter属性可以使该阶段仅在匹配的变更请求上运行。可能的属性有id、target、branch、fork、url、title、author、authorDisplayName和authorEmail。每个属性对应一个CHANGE_*环境变量例如when { changeRequest target: master }。 可选参数比较器可以在属性后面添加以指定如何评估匹配的任何模式 EQUALS用于简单的字符串比较默认值GLOB用于ANT样式路径通配符与changeset相同REGEXP用于正则表达式匹配 示例when { changeRequest authorEmail: [\\w_-.]example.com, comparator: REGEXP } environment 当指定的环境变量设置为给定值时执行该阶段例如when { environment name: DEPLOY_TO, value: production } equals 当期望值等于实际值时执行该阶段例如when { equals expected: 2, actual: currentBuild.number } expression 当指定的Groovy表达式求值为true时执行该阶段例如when { expression { return params.DEBUG_BUILD } } tag 如果TAG_NAME变量与给定的模式匹配则执行该阶段。例如when { tag release-* } 如果提供了空模式则该阶段将在TAG_NAME变量存在时执行与buildingTag()相同。 可选参数比较器可以在属性后面添加以指定如何评估匹配的任何模式 EQUALS用于简单的字符串比较默认值GLOB用于ANT样式路径通配符与changeset相同REGEXP用于正则表达式匹配 例如when { tag pattern: release-\\d, comparator: REGEXP} not 当嵌套条件为false时执行该阶段。必须包含一个条件。例如when { not { branch master } } allOf 当所有嵌套条件都为true时执行该阶段。必须至少包含一个条件。例如when { allOf { branch master; environment name: DEPLOY_TO, value: production } } anyOf 当至少一个嵌套条件为true时执行该阶段。必须至少包含一个条件。例如when { anyOf { branch master; branch staging } } triggeredBy 当当前构建由给定的参数触发时执行该阶段。例如 when { triggeredBy SCMTrigger } when { triggeredBy TimerTrigger } when { triggeredBy BuildUpstreamCause } when { triggeredBy cause: UserIdCause, detail: vlinde }多个条件 pipeline {agent anystages {stage(Example Build) {steps {echo Hello World}}stage(Example Deploy) {when {branch productionenvironment name: DEPLOY_TO, value: production}steps {echo Deploying}}} }嵌套条件 pipeline {agent anystages {stage(Example Build) {steps {echo Hello World}}stage(Example Deploy) {when {expression { BRANCH_NAME ~ /(production|staging)/ }branch productionanyOf {environment name: DEPLOY_TO, value: productionenvironment name: DEPLOY_TO, value: staging}}steps {echo Deploying}}} }四、Parallel并行 声明式Pipeline里面可以包含Parallel并行部分Parallel可以包含多个并行的stage。 此外您可以通过将failFast true添加到包含并行项的阶段中强制所有并行阶段在其中任何一个失败时都被中止。 添加failfast的另一种方法是向pipeline定义中添加一个选项parallelsAlwaysFailFast()。 Parallel StagesfailFast true pipeline {agent anystages {stage(Non-Parallel Stage) {steps {echo This stage will be executed first.}}stage(Parallel Stage) {when {branch master}failFast trueparallel {stage(Branch A) {agent {label for-branch-a}steps {echo On Branch A}}stage(Branch B) {agent {label for-branch-b}steps {echo On Branch B}}stage(Branch C) {agent {label for-branch-c}stages {stage(Nested 1) {steps {echo In stage Nested 1 within Branch C}}stage(Nested 2) {steps {echo In stage Nested 2 within Branch C}}}}}}} }parallelsAlwaysFailFast pipeline {agent anyoptions {parallelsAlwaysFailFast()}stages {stage(Non-Parallel Stage) {steps {echo This stage will be executed first.}}stage(Parallel Stage) {when {branch master}parallel {stage(Branch A) {agent {label for-branch-a}steps {echo On Branch A}}stage(Branch B) {agent {label for-branch-b}steps {echo On Branch B}}stage(Branch C) {agent {label for-branch-c}stages {stage(Nested 1) {steps {echo In stage Nested 1 within Branch C}}stage(Nested 2) {steps {echo In stage Nested 2 within Branch C}}}}}}} }五、script脚本 script步骤接受一个Scripted Pipeline的代码块并在Declarative Pipeline中执行该代码块。对于大多数用例Declarative Pipeline中不需要使用script步骤但它可以提供一个有用的“逃生口”。如果脚本块的大小和/或复杂性较大应将其移入共享库中。 Scripted Pipeline Scripted Pipeline和Declarative Pipeline一样都是基于底层的Pipeline子系统构建的。与Declarative不同Scripted Pipeline实际上是使用Groovy构建的通用DSL。Groovy语言提供的大多数功能都可以供Scripted Pipeline的用户使用这意味着它可以是一个非常表达力和灵活的工具用于编写持续交付流水线。 pipeline {agent anystages {stage(Example) {steps {echo Hello Worldscript {def browsers [chrome, firefox]for (int i 0; i browsers.size(); i) {echo Testing the ${browsers[i]} browser}}}}} }六、Flow Control流程控制 Scripted Pipeline从Jenkinsfile的顶部向下顺序执行就像Groovy或其他语言中的大多数传统脚本一样。因此提供流程控制依赖于Groovy表达式例如if/else条件语句例如 node {stage(Example) {if (env.BRANCH_NAME master) {echo I only execute on the master branch} else {echo I execute elsewhere}} }Scripted Pipeline的另一种流程控制方式是使用Groovy的异常处理支持。当步骤由于任何原因失败时它们会抛出异常。在错误处理中必须使用Groovy中的try/catch/finally块例如 node {stage(Example) {try {sh exit 1}catch (exc) {echo Something failed, I should sound the klaxons!throw}} }参考 https://www.jenkins.io/doc/book/pipeline/syntax
http://www.pierceye.com/news/265869/

相关文章:

  • 品牌网站建设目标vps怎么做多个网站
  • 普陀区建设工程质检网站网站建设 工作方案
  • 三河做网站开发公司虚列成本
  • 网站公司建设网站首页注册资本可以随便填吗
  • 网站做链接的意义是什么意思网站设计与制作
  • 快速开发网站的应用程序网站高中建设工具
  • 备案期间网站可以做竞价吗网站开发四川
  • 盐城网站app建设竣工验收备案查询
  • 河南省建设厅八大员网站相城网页设计
  • 建设电子商务网站要多少钱怎么自己开公司
  • 网站设计分析怎么写5年的室内设计师收入
  • 珠海网站建设服务谷歌关键词排名查询工具
  • 三网站合一系统优化最好的安卓手机
  • 那几个网站可以做h5产品经理培训哪个机构好
  • 吉林市做网站阿里巴巴国际站怎么运营
  • 中国网站排名100网站建设属于销售费用
  • 最新seo网站优化教程温州微网站
  • 网站双线选择昆明网站制作代理
  • 网站推广优化招聘织梦网站图片设置多大
  • 四川德充建设集团有限公司网站台州seo免费诊断
  • 农庄网站模板网站 文件夹 上传
  • 做长图文网站企业网站开发服务合同
  • 长椿街网站建设九江网站推广徽hyhyk1
  • 贴吧做网站wordpress不兼容ie
  • 上海万网网站建设网络工程专业是什么
  • 到国外建网站自己做的视频发什么网站吗
  • 高校网站平台建设快速网站排名
  • seo技术 如何优化网站内部结构用ps做网站方法
  • vi设计公司网站python做网站好处
  • 北京专业网站建设服务商枣庄建设工程管理局网站