我的研究成果,有类似需求的可以直接用,push新tag后自动create release,release title为新tag,release note为commit log,不是太复杂的个人小项目用起来还是不错的
https://gist.github.com/Solor/da3b80c5c7532d967356af9770e971cc
name: Release
on:
push:
tags:
- '*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Generate changelog
id: changelog
uses: metcalfc/[email protected]
with:
myToken: ${{ secrets.GITHUB_TOKEN }}
- name: Create Release
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body: ${{ steps.changelog.outputs.changelog }}
draft: false
prerelease: false
1
vcheckzen 2020-07-29 23:49:46 +08:00 via Android
调调 API 就行了
|
2
uTOmOuk3L6sb4MSI 2020-07-29 23:59:57 +08:00 via iPhone
我记得大部分 action 都是 create-release 和 upload-release 都是分开的,我在 create-release 先写 note,之后 upload-release 再上传文件即可。
|
3
uTOmOuk3L6sb4MSI 2020-07-30 00:02:13 +08:00 via iPhone 1
|
4
imzcg2 2020-07-30 00:05:12 +08:00 via Android
目测 travis 可以轻松完成任务
|
5
MajestySolor OP @ODD10 #2 请问你的脚本 create release 这一步里面的 ${{ env.useVersionInfo }} 这个环境变量是怎么来的呢,我就是不明白怎么设置这些变量
|
6
Trim21 2020-07-30 00:15:59 +08:00 via Android
这些环境变量有三个来源。一个你在 yaml 里面写的,一个是 actions 自带的一些 github.ref 之类的变量,还有一个是输出特定命令到 stdout 也可以设置环境变量。具体的 logging command 的格式我忘了,GitHub 的文档有写。
|
7
bitdust 2020-07-30 00:47:40 +08:00
提问:为什么这类 CI 的构建脚本都这么难用?
我理解作为一种 DSL,CI 系统需要解决的问题和一般的脚本语言不一样 但写 yml 描述构建过程实在是太坑爹了吧 makefile 都比这些玩意人性化一些, 以后会出现更好用的 CI 脚本语言吗? |
8
uTOmOuk3L6sb4MSI 2020-07-30 02:54:45 +08:00 via iPhone 1
|
9
MintZX 2020-07-30 03:41:45 +08:00
|
10
wangxiaoer 2020-07-30 08:46:52 +08:00
这些 Action 的执行环境在哪里?跟 gitlab-runner 一样需要自己部署一个 runner 吗?
|
11
tyx1703 2020-07-30 09:24:41 +08:00
https://github.com/actions/create-release#example-workflow---create-a-release
这个 action 可以根据 tag 自动在 github release |
12
MajestySolor OP @bitdust #7 哈哈,确实难用,我这几天已经看晕了
|
13
MajestySolor OP @ODD10 #8 太感谢了,终于学会怎么设置读取环境变量了,按你这个做法我可以直接设置读取 tag 和 message,感谢感谢。
|