Github Actions 有人用么,求指导如何实现一个自动 release 的 workflow

2020-07-29 23:02:28 +08:00
 MajestySolor
当一个新的 tag push 到特定分支时自动 release,release 名字为该新 tag,并且将上一个 tag 到当前 tag 之间的 commit message 自动写入 release note

比如说远程代码库最新 tag 是 v2.0
当我将一个新的 v2.1 tag push 到 master 时 自动触发 release
release title 是新 tag 也就是 v2.1
release note 是 v2.0 到 v2.1 之间的 commit message

在 actions market 里逛了好久,各种相关的 action 都尝试了下,没有符合我心意的
想自己写,但那语法条件逻辑实在是太复杂了
求大佬指导
3234 次点击
所在节点    GitHub
13 条回复
vcheckzen
2020-07-29 23:49:46 +08:00
调调 API 就行了
uTOmOuk3L6sb4MSI
2020-07-29 23:59:57 +08:00
我记得大部分 action 都是 create-release 和 upload-release 都是分开的,我在 create-release 先写 note,之后 upload-release 再上传文件即可。
uTOmOuk3L6sb4MSI
2020-07-30 00:02:13 +08:00
imzcg2
2020-07-30 00:05:12 +08:00
目测 travis 可以轻松完成任务
MajestySolor
2020-07-30 00:12:16 +08:00
@ODD10 #2 请问你的脚本 create release 这一步里面的 ${{ env.useVersionInfo }} 这个环境变量是怎么来的呢,我就是不明白怎么设置这些变量
Trim21
2020-07-30 00:15:59 +08:00
这些环境变量有三个来源。一个你在 yaml 里面写的,一个是 actions 自带的一些 github.ref 之类的变量,还有一个是输出特定命令到 stdout 也可以设置环境变量。具体的 logging command 的格式我忘了,GitHub 的文档有写。
bitdust
2020-07-30 00:47:40 +08:00
提问:为什么这类 CI 的构建脚本都这么难用?
我理解作为一种 DSL,CI 系统需要解决的问题和一般的脚本语言不一样
但写 yml 描述构建过程实在是太坑爹了吧
makefile 都比这些玩意人性化一些,
以后会出现更好用的 CI 脚本语言吗?
uTOmOuk3L6sb4MSI
2020-07-30 02:54:45 +08:00
@MajestySolor #5
每个 steps 都有一个 env,你们看我在上面赋值吗?
https://i.loli.net/2020/07/30/2CskupRytUe9wjF.jpg
MintZX
2020-07-30 03:41:45 +08:00
我是 ruby 开发,我用的这个小工具 https://github.com/jstastny/publish-gem-to-github

你可以自己根据语言开发一个
wangxiaoer
2020-07-30 08:46:52 +08:00
这些 Action 的执行环境在哪里?跟 gitlab-runner 一样需要自己部署一个 runner 吗?
tyx1703
2020-07-30 09:24:41 +08:00
https://github.com/actions/create-release#example-workflow---create-a-release

这个 action 可以根据 tag 自动在 github release
MajestySolor
2020-07-30 17:21:21 +08:00
@bitdust #7 哈哈,确实难用,我这几天已经看晕了
MajestySolor
2020-07-30 17:25:32 +08:00
@ODD10 #8 太感谢了,终于学会怎么设置读取环境变量了,按你这个做法我可以直接设置读取 tag 和 message,感谢感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/694170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX