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

网站开发工资高吗人才网网站开发手册

网站开发工资高吗,人才网网站开发手册,建设网站费用如何做账,申请网站就是做网站吗工作原理 1、将代码托管在git 2、在项目根目录创建ci文件.gitlan-ci.yml 在文件中指定构建#xff0c;测试和部署脚本 3、gitlab将检测到他并使用名为git Runner的工具运行脚本 4、脚本被分组为作业#xff0c;他们共同组成了一个管道gitlab-ci的脚本执行#xff0c;需要自… 工作原理 1、将代码托管在git 2、在项目根目录创建ci文件.gitlan-ci.yml 在文件中指定构建测试和部署脚本 3、gitlab将检测到他并使用名为git Runner的工具运行脚本 4、脚本被分组为作业他们共同组成了一个管道gitlab-ci的脚本执行需要自定义按照对应的gitlab-runner来执行代码push之后 webhook检测到代码变化就会触发gitlan-ci分配到各个Runner来运行相应的脚本script gitlab Runner 类型 ​ shared 共享类型运行整个平台项目的作业gitlab ​ group 项目组类型运行特定group下的所有项目的作业group ​ sprcific 项目类型运行指定的项目作业project 状态 ​ locked 锁定状态无法运行项目作业 ​ paused 暂停状态暂时不会接收新的作业 流水线语法 job作业 在每个项目中使用名为.gitlab-ci.yml的YML文件配置Gitlab CL/CD管道在文件中可以定义一个或多个作业job每个作业必须具有唯一名称不能使用关键字每个作业是独立运行的作业定义了在约束条件下进行相关操作每个作业至少要包含一个script. 例 job1   script: execute-script-for-job1 job2:   script: execute-script-for-job2 这里定义了两个作业每个作业运行不同命令命令可以是shell或脚本 script (运行shell或者脚本 列 job1:   script:     - uname -a     - bundle exec rspec 注意有时script命令需要用单引号或双引号引起来例如包含冒号命令:需要加引号以便被包裹的YAML解析器知道来解释整个事情作为一个字符串而不是一个“键值”对,使用特殊字符是消息:,{,},[,],,,*,#,?,|,-,,,,!,%,, before_script 用于定义一个命令在该命令在每个作业之前运行。必须是一个数组。知道的scripy与脚本中知道的任何脚本串联在一起并在单个shell中一起执行 before_script失败导致整个作业失败其他作业将不再执行。作业失败不会影响after_script after_script 用于定义将每个作业包括失败的作业之后运行的命令 这必须是一个数组 指定的脚本在新的shell中执行与任何before_script或script脚本分开 before_script或script执行失败不影响after_script执行 stages 用于定义作业可以使用的阶段并且是全局定义 同一阶段的作业并行运行不同阶段按顺序执行 stages:     - build     - test     - codescan     - deploy .pre.post .pre始终是整个管道的第一运行阶段.post始终是整个管道的最后一个运行阶段。用户定义的阶段都在两者之间运行。.pre和.post的顺序无法更改。如果管道仅包含.pre或.post阶段的作业则不会创建管道 codescan:   stage: .pre   tags:       - build   only:       - master   script:       - echo codescan stage 按job定义的并且依赖与全局定义的stages。它允许将作业分为不同的阶段并且统一stage作业可以并行执行 varibales 定义变量pipeline变量、job变量。job变量优先级最大 tags 指定runner 用于从允许该项目的所有Runner列表中选择指定的Runner,在Runner注册期间你可以指定Runner的标签 windows job:   stage:       - build   tags:       - windows   script:       - echo Hello,%$USERNAME%:     osx job:   stage:       - build   tags:       - osx   script:       - echo Hello, $USER: allow_failure允许失败 allpw_failure允许作业失败默认值为false启用后如果作业失败改作业将在用户界面显示橙色警告但是管道的逻辑流程将任务作业成功/通过并且不会被阻塞。假设所有其他作业均成功则改作业的阶段及其管道将显示相同的橙色警告。但是管理的提交将被标记为通过而不会发出警告。 windows job:   stage:       - build   tags:       - windows   script:       - echo Hello,%$USERNAME%:   allow_failure: true when(控制作业允许) on_success    前面阶段中的所有作业都成功时才执行作业默认值 on_failure    当前面阶段出现失败时执行 always    总是执行作业 manual    手动执行作业 delayed    延迟执行作业 retry(重试) 配置在失败的情况下重试作业的次数 当作也失败并配置了retry将再次处理该作业直到达到retry关键字指定的次数 如果当retry设置为2斌却作业在第二次允许成功第一次重试则不会再次重试retry值必须是一个正整数等于或大于0小于或等于2最多两次重试总共允许三次 retry-重试-精确匹配错误 默认情况下在失败情况下重试作业max最大重试次数 when重试失败的错误类型 always 在发生任何故障时重试默认. unknown_failure 当失败原因未知时。 script_failure 脚本失败时重试。 api_failure API失败重试。 stuck_or_timeout_failure 作业卡住或超时时。 runner_system_failure 运行系统发生故障。 missing_dependency_failure: 如果依赖丢失。 runner_unsupported Runner不受支持。 stale_schedule 无法执行延迟的作业。 job_execution_timeout 脚本超出了为作业设置的最大执行时间。 archived_failure 作业已存档且无法运行。 unmet_prerequisites 作业未能完成先决条件任务。 scheduler_failure 调度程序未能将作业分配给运行scheduler_failure。 data_integrity_failure 检测到结构完整性问题。 例 unittest:   stage: test   tags:     - build   only:     - master   script:     - ech run test   retry:     max: 2     when:       - script_failure timeout-超时 作业级别的超时可以超过项目级别超时但不能超过Runner特定的超时 build:   script: build.sh   timeout: 3hours 30minutes test:   script: rspec   timeout: 3h 30m timeout-超时-runner超时 如果小于项目定义超时时间将具有优先权此功能可用于通过设置大超时例如一个星期来防止Shared Runner被项目占用。未配置时 Runner将不会覆盖项目超时 示列1运行程序超时大于项目超时 runner超时设置为24小时项目的CI/CD超时设置为2小时。 该工作将在2小时后超时 示例2未配置运行程序超时 runner不设置超时时间项目的CI/CD超时设置为2小时 该工作将在2小时后超时 示例3运行程序超时小于项目超时 runner超时设置为30分钟项目的CI/CD超时设置为2小时 工作在30分钟后超时 parallel-并行作业 配置要并行运行的作业实例数此值必须大于或等于2并且小于或等于50 这将创建n个并行运行的同一作业实例、他们从job_name 1/n到job_name n/n依次命名 onlyecxept限制分支标签 only和ecxept用分支策略来限制jobs构建 ​ only定义那些分支和标签的git项目将会被job执行 ​ ecxept定义那些分支和标签的git项目将不会被job执行 job:   #use regexp   only:     - /^issue-.*$/   #use specli keyword   ecxept:       - branches rules-构建规则 rules允许按顺序苹果单个规则直到匹配并为作业动态提供属性 rules不能与only/except组合使用 可用规则 if    如果条件匹配 changes    指定文件发生变化 exists    指定文件存在 列rules-if-条件匹配 如果DOMAIN的值匹配则需要手动运行 不匹配on_success 条件判断从上到下匹配即停止 多条件匹配可以使用|| variables:   DOMAIN: example.com    codescan:   stage: codescan   tags:     - build   script:     - echo codescan     - sellp 5;     #parallel:5     rules:       - if:$DOMAIN example.com         when: manual       when: on_success rules-changes-文件变化 接受文件路径数组 如果提交jenkinsfile文件发送的变化则为true codescan:   stage: codescan   tags:     - build   script:     - echo codescan     - sleep 5;     #parallel5     rules:       - changes:         - jenkinsfile         when: manual       - if:$DOMAIN example.com         when: on_success       - when: on_success rules-allow_failure-允许失败 使用rules-allow_failure: true rules:在不停止管道本身的情况虚啊允许作业失败或手动作业等待操作 job:   script echo Hello,Rules   rules:     - if:$CI_meRGE_REQUEST_TARGET_BRABCH_NAME master       when: manual       allow_failure workflow-rules-管道创建 定价workflow关键字适用于整个管道并将确定是否创建管道 when可以三个字为always或never如果未提供则默认值未always variables:   DOMAIN: example.com    workflow:   rules:     - if: $DOMAIN example.com     - when: always cache-缓存 存储编译项目所需运行时的依赖项指定项目工作空间钟需要在job之间缓存吃的文件目录 全局cache定义在job之外针对所有job生效。job钟cache优先于全局 cache:paths 在job build中定义缓存将会缓存target目录下的所有jar文件 挡在全局定义了cachepaths会被job覆盖一下实例将缓存target build:   script: test   cache:     paths:       - target/*.jar cache:   paths:     - my/files      build:   script: echo Hello   cache:     key: build     paths:       - target/ 由于缓存是在job之间共享的如果不同的job使用不同的路径就出现了缓存覆盖的问题 如何让不同的job缓存不同的cache呢 设置不同的cachekey cachekey-缓存标记 为缓存做个标记可以配置job、分支为key来实现分支、作业特定的缓存 为不同job定义了不同的cachekey时会为每个job分配一个独立的cache cachekey变量可以使用任何预定义变量默认default 从gitlab9.0开始 默认情况下所有内容都在管道和作业之间共享 按分支设置缓存 cache:   key: ${CI_COMMIT_REF_SLUG} cache:keyfiles-文件变化自动创建缓存 files: 文件发送变化自动重新生成缓存files最多指定两个文件提交的时候检查指定的文件 根据指定的文件生成密钥计算sha校验和如果文件未改变值为default cache:   key:     files:       - Gemfile.lock       - package.json     paths:       - endor/ruby       - node_modules cache:keyprefix-组合生成sha校验和 prefix: 允许给定prefix的值与指定文件生成的密钥组合 在这里定义了全局的cache如果文件发送变化则值未repec-xxx11122211如未发生变化未rspec-default cache:   key:     files:       - Gemfile.lock     prefix: $(CI_JOB_NAME)   path:     - vendor/ruby      rspec:   script:     - bundle exec rspec cache:policy-缓存策略 默认在执行开始下载文件并在结束时重新上传文件 policypull跳过下载步骤policypush跳过上传步骤 artifacts-制品 用于指定在作业成功或者失败是应附加到作业的文件或目录的列表作业完成后工件将被发送到gitlab并可在gitlab ui中下载 artifacts:   paths:     - target/ 例 default-job:   script:     - mvn test -U   except:     - tags      release-job:   script:     - mvn package -U   artifacts:     path:       - target/*.war     oniy:       - tags artifacts:expose_as-MR展示制品 关键字expose_as可用于在合并请求UI中公开作业工件 每个合并请求最多可以公开10个作业工件 列 test:   script:     - echo 1   aritifacts:     expose_as:artifact 1     patchs:       - path/to/file.txt artifacts:name-制品名称 通过name指令定义所创建的弓箭存档的名称可以为每个档案使用唯一的名称 artifacts:name默认名称是artifacts下载artifacts改为artifacts.zip 列 job:   artifacts:     name: $CI_JOB_NAME     patchs:       - binaries/        job:   artifacts:     name: $CI_COMMIT_REF_NAME     paths:       - binaries/ artifacts:when-制品创建条件 用于在作业失败时或成功上传工件 ​ on_success仅在作业成功时上载工件 默认值 ​ on_failure仅在作业失败时上传工件 ​ always 上传工件无论作业状态如何 例 job1:   artifacts:     when: on_failure      job2:   artifacts:     when: on_success      job3:   artifacts:     when: always artifacts:expire_in-制品保留时间 制品的有效期从上传和存储到gitlab的时间算起如果未定义过期时间则默认为30天 expire_in的值以秒为单位的警告时间除非提供了单位 例 job:   artifacts:     expire_in: 1 week artifacts:reports:junit-单元测试报告 收集junit单元测试报告收藏JUnit报告将作为工作上传到gitlab并将自动显示在合并请求中 列 build:   stage: build   tags:     - build   only:     - master   script:     - mvn test     - mvn cobertura:cobertura     - ls target   artifacts:     name: $CI_JOB_NAME-$CI_COMMIT_REF_NAME     when: on_success     expose_api: artifact 1     paths:       - target/*,jar     reports       junit: target/surefire-reports/TEST-*.xml dependencies-获取制品 定义要获取工件的作业列表只能从当前阶段之前执行的阶段定义作业定义一个空数组将跳过下载该作业的任何工件将不会考虑先前作业的状态因此如果它失败或是未运行的手动作业则不会发生错误。如果设置未依赖项的工作工件已过期或删除那么依赖项作业将失败。 列 unittest:   dependencies:     - build needs-阶段并行 可无序执行作业无需按阶段顺序运行某些作业可以让多个阶段同时运行。 如果needs设置为指向因only/except规则而未实例化的作业或者不存在则创建管道时会出现YML错误 列 module-a-test:   stage: test   script:     - echo Hello     - sleep 10   needs:     - job: module-a-build needs-制品下载 在使用needs可通过artifacts: true或artifacts: false来控制工件下载默认不知道为true 列 module-a-test:   stage: test   script:     - echo Hello     - sleep 10   needs:     - job: module-a-build       artifacts: true include:local-引入本地配置 可以允许引入外部YAML文件文件具有扩展名.yml或yaml 使用合并功能可以自定义和覆盖包含本地定义的CI/CD配置 引入同一存储库中得文件使用相对于根目录得完整路径进行引用与配置文件在同一分支上使用 列 ci/localci.yml stages:   - deploy    deployjob:   stage: deploy   script:     - echo deploy include:   local: ci/localci.yml include:file-引入其他项目配置 引入另外项目master分支的.gitlab-ci.yml配置 include:   - project: 项目名称     ref: master     file: .gitlab-ci.yml include-template-引入官方配置 https://gitlab.com/gitlab-org/gitlab/tree/master/lib/gitlab/ci/templates include:   - template: AUTO-DevOps.gitlab-ci.yml include:remote-引入远程配置 用于通过HTTP/HTTPS包含来自其他位置的文件并使用完整URL进行引用远程文件必须可以通过简单的GET请求公开访问因为不支持远程URL中的身份验证 include:   - remote: https://gitlab.com/awesome-project/raw/master/.gitlan-ci-template.yml extends-继承作业配置 .tests:   script: mvn test   stage: test   only:     refs:       - tags        testjob:   extends: .tests   script: mvn clent test   only:     cariables:       - $RSPEC         testjob:   stage: test   script: mvn clent test   only:     variables:       - $RSPEC     refs:       - tags extendsinclude 这将运行名为useTenplate的作业该作业运行echo Hello 如.template作业中所定义并使用本地作业中所定义的apline Docker映射 aa.yml .template:   script:     - echo Hello include: aa.yml useTemplate:   image: alpine   extends: .template trigger管道触发 当gitlab从trigger定义创建的作业启动时将创建一个下游管道允许创建多项目管道和子项目管道将trigger于whenmonual一起使用会导致报错 多项目管道跨多个项目设置流水线以便一个项目中的管道可以触发另一个项目中的管道 父子管道在同一项目管道可以触发一组同时运行的子管道子管道仍然按照阶段顺序执行其每个作业但是可以自由地继续执行各个阶段而不必等待父管道中无关的作业完成 image 默认在注册runner的时候需要填写一个基础的镜像请记住一点只要使用执行器为docker类型的runner所以的操作运行都会在容器中运行如果全局指定了images则所以作业使用此image创建容器并在其中运行全局未指定image再次查看job中是否有指定如果有此job按照指定镜像创建容器并运行没有则使用注册runner时指定的默认镜像 build:   image: 镜像名称:标签   stage: build   tags:     - aws     - docker   script:     - ls     - sleep 2     - mvn clen package     - sleep 10    depal:   stage: deplay   tags:     - aws   script:     - echo deplay services 工作期间运行的另一个docker镜像并link到image关键字定义的docker镜像。这样就可以在构建期间访问服务映像 服务映像可以运行任何程序但是最常见的用例是运行数据库容器例如mysql与每次按照项目时都安装mysql相比 使用现有的映像并将其作为附加容器运行更容易更快捷 services:   - name: mysql:latest     alias: mysql-1  #别名 environment 工作期间运行的另一个docker映像并link到image关键字定义的docker映像这样在构建期间访问服务映像 deolay to production:   stage: deplay   script: git push production HEAD:master   environment:     name: production  #部署环境名称     url: http://prod.example.com  #部署环境地址 inherit 使用或禁用全局定义的环境变量variables或默认值default 使用true、false觉得是否使用默认为true inherit:   default: false   variables: false 继承其中的一部分变量或默认值使用list inherit:   default:      - parameter1     - parameter1   variables: false     - VARIABLE1     - VARIABLE2 创建CI模板库 1.创建一个git仓库用于存放模版 2.创建一个template目录存放所有pipeline的模版 3.创建一个jobs目录存放job模版 这样我们可以将一些mavenant,gradle,npm工具通过一个job模版和不同的构建命令实现templates的好处时我们在其中定义了模版流水线这些流水线可以直接让项目使用当遇到个性化项目的时候就可以在当前姓名创建.gitlab-ci.yml文件来引用模版文件再进一步实现个性化需要 工具链集成 后端项目Maven集成 环境基础配置 首先在jobs目录创建一个build.yml然后在里面编写build作业模版 .build:   stages: build   tags:     - build   script:     - $BUILD_SHELL     - ls 然后在template目录中创建maven流水线模版。templates/java-pipeline.yml include:   - project: demo/demo-gitlabci-service     ref: master     file: jobs/build.yml      variables:   BUILD_SHELL: mvn clean package -DskipTests   #构建命令   TEST_SHELL: mvn test     #测试命令   CACHE_DIR: target/        #构建缓存    cache:   paths:     - ${CACHE_DIR}      stages:   - build build:   stage: build   extends: .build 工具链集成-代码质量管理平台集成 SonarQube自动扫描 安装sonarscanner https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
http://www.hkea.cn/news/14304639/

相关文章:

  • 做网站时图片的分辨率是多少毕业设计成品网站
  • 网站开发建设合同范本个性化网站成功的案例
  • 做外贸常用的网站有哪些ip切换工具
  • 做网站建设的基本步骤seo的全称是什么
  • 自己做视频类网站用哪个cmswordpress里面主题文档怎么编辑
  • 摄影比赛投稿网站淘宝城购物中心
  • 时尚大气的网站设计北京论坛网站建设
  • 网站设计师对应的专业网络文化经营许可证全国有多少张
  • 男女怎么做那个视频网站天津招投标天津建设工程信息网
  • 网站建设方向wordpress物流插件
  • wordpress主题站世界街景地图怎么退订
  • 商城网站的psd模板免费下载怎么可以创建网站
  • 营销型网站建设核心要素邵阳做网站价格
  • 自己怎么申请免费网站实时热搜
  • 南京模板建站哪家好推广整合营销
  • 网站后台文本编辑器公司网站实名制
  • 0基础学网站设计重庆电商网站建设费用
  • 管理系统网站模板湖南关键词优化首选
  • 在百度上怎么建网站甘肃多元网络
  • 做棋牌网站多少钱国产crm
  • 福建省住房和城乡建设厅网站电话虚拟主机价格一般多少钱
  • 只做恐怖片的网站医院网站建设规划
  • 学生做兼职哪个网站阿里网站怎么建设
  • 网站设计的关键爱情动做网站推荐
  • 建设厅网站查询三类人员wordpress文章前台看不到
  • 上海网站快速排名优化网站是指什么
  • 建设银行网站-个人业务photoshop制作网站海报
  • 网站的建设目标有哪些代理服务器地址怎么填
  • 洛阳网站建设好做不搭建公司网站多少钱
  • 一般小型教育网站的建设和开发做网站开发的公司