linux怎么查看本机内存大小
261
2022-10-25
.gitlab-ci.yml说明
Gitlab官方文档:CI通过YAML文件管理配置job,该文件存放于仓库的根目录, 默认名为.gitlab-ci.yml,定义了job应该如何工作。
pipeline:
一个pipeline就是一次完整的构建任务,里面可以包含多个阶段(stages)。
stage:
stages表示任务构建的阶段。一次pipeline中允许定义多个stages,这些stages 会有以下特点:
1. 所有 stages 会按照顺序运行,即当一个 stage 完成后,下一个 stage 才会开始 2. 只有当所有 stages 完成后,该构建任务 (pipeline) 才会成功 3. 如果任何一个 stage 失败,那么后面的 stages 不会执行,该构建任务 (pipeline) 失败
job:
jobs表示构建工作,表示某个stage里面执行的工作。 我们可以在stages里面定义多个jobs,这些jobs会有以下特点:
1. 相同stage中的jobs会并行执行 2. 相同stage中的jobs都执行成功时,该stage才会成功 3. 如果任何一个job失败,那么该stage失败,即该构建任务 (pipeline) 失败
jobs的定义:
1. 定义了在什么条件下执行它们的条件 2. 具有任意名称的顶级元素,并且必须至少包含script 3. 不受定义数量的限制
示例:
job1: script: "execute-script-for-job1"job2: script: "execute-script-for-job2"
上面包含两个单独的job,其中每个job执行不同的命令。
每个job都是独立运行的,可以直接执行命令./configure; make; make install或运行脚本sh test.sh。jobs由runners获取并在runners各自的环境中执行。
每个job必须有一个唯一的名称,但有几个保留的关键字不能用作job名称:
image services stages types before_script after_script variables cache
配置参数列表:
一个job被定义为一列参数,这些参数指定了job的行为。下表列出了可用的job参数:
值 | 是否必须 | 描述 |
---|---|---|
script | yes | 由Runner执行的shell脚本或命令 |
image | no | 使用的docker镜像 |
services | no | 使用的docker服务镜像 |
before_script | no | 在作业之前执行的脚本或命令 |
after_script | no | 在作业之后执行的脚本或命令 |
stages | no | 一个pipeline的各个阶段 |
stage | no | 一个job阶段,默认是test |
only | no | 限制job什么时候执行 |
except | no | 限制job什么时候不执行 |
rules | no | 指定条件列表去确定一个job的可选属性以及是否执行该job。不可与only/except 一起使用 |
tags | no | 指定job适用的runner,tags为runner标签 |
allow_failure | no | 允许job失败,如果失败将不会改变提交状态 |
when | no | 指定job什么时候执行,可以是on_success 、on_failure 、always 和manual |
environment | no | 指定job部署的环境名称 |
cache | no | 在后续运行之间应该缓存的文件列表 |
artifacts | no | 要附加到一个job上的文件和目录列表 |
dependencies | no | 通过提供要从中获取artifacts的job列表来限制将哪些artifacts传递给特定的job |
coverage | no | 设置一个给定job的代码覆盖率 |
retry | no | job失败后的自动重试次数 |
timeout | no | 设置优先于项目范围的job超时时间 |
parallel | no | 一个job并行运行的实例数量 |
trigger | no | 定义下游pipeline的触发器 |
include | no | 允许该job包含外部YAML文件 |
extends | no | 一个job将继承的配置项 |
pages | no | 上传job的结果与GitLab Pages一起使用 |
variables | no | 在job级别上定义变量 |
interruptible | no | 定义一个job在因为新的运行而变得多余时是否可以取消 |
设置默认参数:
可以使用default关键字将某些参数全局设置为所有job的默认值,特定于job的配置可以覆盖默认参数。
下面的job参数可以被设置为默认值:
image services before_script after_script cache
示例:
default: #指定默认参数 image: ruby:2.5rspec: #指定特定参数 script: bundle exec rspec rspec 2.6: image: ruby:2.6 script: bundle exec rspec
.gitlab-ci.yml示例:
stages: - pull_code_test - pull_code_production - install_deps - test - build - deploy_test - deploy_production variables: PHP_FPM_CONTAINER: lnmp-php-fpm WORK_DIR: /usr/share/nginx/html/ PROJECT: laravel-demo GIT_DIR: /mnt/lnmp-docker # 拉取代码pull_code_test: stage: pull_code_test only: - develop script: - cd ${GIT_DIR}/${PROJECT} - git pull origin develop pull_code_production: stage: pull_code_production only: - master script: - cd ${GIT_DIR}/${PROJECT} - git pull origin master # 安装依赖install_deps: stage: install_deps script: - docker exec -w ${WORK_DIR}/${PROJECT} ${PHP_FPM_CONTAINER} composer install build: stage: build script: # Run migrations - docker exec -w ${WORK_DIR}/${PROJECT} ${PHP_FPM_CONTAINER} php artisan migrate # Cache clearing - docker exec -w ${WORK_DIR}/${PROJECT} ${PHP_FPM_CONTAINER} php artisan cache:clear # Create a cache file for faster configuration loading - docker exec -w ${WORK_DIR}/${PROJECT} ${PHP_FPM_CONTAINER} php artisan config:cache # Create a route cache file for faster route registration - docker exec -w ${WORK_DIR}/${PROJECT} ${PHP_FPM_CONTAINER} php artisan route:clear deploy_test: stage: deploy_test script: - cd ${GIT_DIR} - docker-compose down && docker-compose build && docker-compose up -d deploy_production: stage: deploy_production script: - cd ${GIT_DIR} - docker-compose restart
更多.gitlab-ci.yml的说明请参考官方文档。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~