rt,我看到的 runner 目前好像只能是拉取某分支最新的一次 commit 进行构建,或者通过 tag 来标记,想知道是否可以指定构建某个分支的某一次提交来 run 一个 pipline ?
1
AngryPanda 2019-10-30 09:30:47 +08:00 via Android
意义何在?你能提前预知自己的 comnmit id 的话,就可以在 script 里面写脚本。
|
2
Chaos11 2019-10-30 09:33:57 +08:00
可以吧如果我没理解错,可以指定自动执行的 step,最后的发布由你来触发
|
3
Kontinue OP @AngryPanda 就是我开发还在继续迭代,但是我部署的时候只需要部署到之前的某个提交就可以了
|
4
zhuowenli 2019-10-30 09:39:21 +08:00 via Android
gitlab environment 应该可以满足你的需求
|
5
Kontinue OP @AngryPanda 在哪个位置上运行 pipline 不是 gitlab 指定的嘛,怎么在 script 里写? script 写的不是每个 stage 的构建脚本
|
6
nothingnodust 2019-10-30 09:40:14 +08:00
gitlab 里可以操作啊,你想构建哪次提交都可以啊
但是我不是很明白你到底是想重新构建某一次 pipeline 还是某一个流程 建议说清楚使用场景 |
7
airfling 2019-10-30 09:42:07 +08:00
你的想法是可以的,gitlab 有个 pipeline 的列表,你指定哪次提交都可以,我觉得与其想,不如自己实际操作下
|
8
zhuowenli 2019-10-30 09:43:04 +08:00 via Android
话说如果只是版本迭代的需要,为什么不切分支出来,通过分支来控制版本
|
9
KuroNekoFan 2019-10-30 09:45:55 +08:00
` .gitlab-ci.yml`
``` build: stage: xxx tags: - xxx only: #- $branch_name variables: - $CI_COMMIT_MESSAGE =~ /\[do\-some\-task\]/ ``` |
10
Rwing 2019-10-30 09:46:05 +08:00
可以,那个输入框可以直接输入 commit 的 hash
|
11
Kontinue OP @nothingnodust
https://i.bmp.ovh/imgs/2019/10/899ba5ecf69a0a5d.png 目前自动的 Auto DevOps 会在每次 commit 都执行一条 pipline,但是我们现在不需要,我们现在关注的是 CD 流程。现在的需求是这样的:开发肯定是在不停的 commit 的,但是发布测试的时候可能只需要发布到具体的某一次 commit,不一定是最新的,就现在创建的 pipline 选项上只能指定是某条分支或者 tag,不能从指定的分支下的某次 commit 拉取代码执行构建。 |
12
Kontinue OP |
14
mxalbert1996 2019-10-30 09:48:47 +08:00 via Android
你们开发时难道不分 branch 的么?分 branch 的话你设置仅某 branch 触发 CI 然后定期 merge 不就行了。
|
15
KuroNekoFan 2019-10-30 09:49:21 +08:00 via iPhone
gitlab 的网站上有详细说明 ci 配置的文档,可以看看
|
16
gunjianpan 2019-10-30 09:52:09 +08:00 1
@Kontinue Tag 不就是来解决你这个需求的吗? Hash 值难道比 tag 更好记?
|
18
Kontinue OP @gunjianpan 目前我也只这么想的,就是想问一下
|
19
lincolnhuang 2019-10-30 09:56:48 +08:00
看来用 gitlab-ci 的兄弟还是蛮多的嘛
|
21
jackleeforce3615 2019-10-30 10:05:09 +08:00 1
gitlab-ci.yml 里面的 stage 可以指定某些分支或者 tag 做指定的事情,比如配置当分支名字是 release-xxx 的时候执行发布。
你可以把某次提交 checkout 出来成为一个新的分支 release-xxx。 这样就触发了发布动作。 |
22
zuoakang 2019-10-30 10:15:36 +08:00
gitlab 可以手动提交某个 stage
|
23
HangoX 2019-10-30 10:17:12 +08:00
通过 trigger 可以指定某个提交构建
|
24
NauxLiu 2019-10-30 10:20:58 +08:00
可以将你的 Pipeline 部署的 Job 设置 `when: manual`, 这样你可以回去找到历史的 pipeline 手动 trigger deploy job.
|
25
pljhonglu 2019-10-30 10:26:38 +08:00
通过 trigger 出发一次 pipeline 啊
|
28
Kontinue OP @HangoX 通过 trigger 触发的前提是 auto devops 需要开着,让每个 commit 都有一个对应的 pipline 是吧。然后可以通过 trigger 触发历史的 pipline,是不是这个么意思?
|
29
sunzongzheng 2019-10-30 10:50:43 +08:00
script:
- git reset --hard {hash} ... |
30
lewinlan 2019-10-30 11:20:31 +08:00
用 tag 触发,或者用正则表达式去搜索 commit-message (前面已经有人说了)
only: variables: - $CI_COMMIT_MESSAGE =~ /pls test/i - $CI_COMMIT_REF_NAME == "release" |