官方文档
通用示例
stages: #定义步骤列表类型,从上往下执行
- build
- release
build: #job名字
stage: build #和stages对应的名字
image: i.harbor.xxxx.com/public/node:10-alpine-node-sass #使用的镜像,如果不写,就是注册runner默认镜像
script: #镜像执行命令,这里我构建node的东西
- npm install && npm run build
- ls -al
artifacts: #构建完成后,构建的产物(目录或者文件),丢给后面的步骤
paths:
- .nuxt/
- .
tags: #选择runner的tag
- rancher
- dev
only: #构建选择,如下,只选择develop的分支构建
- develop
release:
stage: release
before_script: #执行前执行
- eval $(ssh-agent -s)
- echo "$HIFIVE_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
image: i.harbor.xxxx.net/public/ssh-client:rsync
script:
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "pm2 del openmusic-web|true"
- rsync -azP --exclude=".gitignore" --exclude=".git" --delete ./ root@1.1.1.1:/data/wwwroot/openmusic-web/
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "ls -al /data/wwwroot/hifive-openmusic-web/"
- ssh -p 22 -o StrictHostKeyChecking=no root@1.1.1.1 -- "cd /data/wwwroot/openmusic-web/ && pm2 start npm --watch --name openmusic-web -- run start "
tags:
- rancher
- dev
only:
- develop
when: on_success #只有当上一个job成功才执行,默认就是on_success关键词 | 描述 |
由Runner执行的Shell脚本。 | |
使用docker镜像。 image: centos:7 | |
使用docker services图像。 | |
覆盖在作业之前执行的一组命令。 | |
覆盖作业后执行的一组命令。 | |
定义管道中的阶段。列表 | |
定义作业阶段(默认值:) test。 | |
创建作业时限制(常用于分支选择)。 常见用法: only: - branches #所有分支 - tags - /^issue-.*$/ #正则匹配issue-的分支 - master #master分支 | |
在未创建作业时限制(常用于排除分支)。 | |
用于选择Runner的标签列表 常用范例: tags: - runner - dev | |
让工作失败。失败的作业无助于提交状态。 | |
什么时候开始工作。 参数: on_success:只有当前一个阶段的所有工作都成功时,默认值。 on_failure:仅当前一阶段的至少一个作业失败时才执行作业。 always:无论先前阶段的工作状态如何,都可以执行工作。 manual:手动执行作业(在GitLab 8.10中添加)。 | |
作业部署到的环境的名称。 也可用:environment:name,environment:url, environment:on_stop,和environment:action。 | |
后续运行之间应缓存的文件列表。 也可用:cache:paths,cache:key, cache:untracked,和cache:policy。 | |
构建完成后,构建的产物(目录或者文件),丢给后面的步骤 常用范例: artifacts: paths: - .nuxt/ | |
作业所依赖的其他作业,以便您可以在它们之间传递工件。 | |
给定作业的代码覆盖率设置。 | |
在发生故障的情况下,可以自动重试作业的次数和次数。 | |
应该并行运行多少个作业实例。 | |
定义下游管道触发器。 | |
允许此作业包含外部YAML文件。 | |
此作业将继承的配置条目。 | |
上传作业结果以用于GitLab Pages。 | |
在作业级别定义作业变量。 |

评论区