Github Actions 有人用么,求指导如何实现一个自动 release 的 workflow - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MajestySolor

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

  •  
  •   MajestySolor 2020 年 7 月 29 日 3980 次点击
    这是一个创建于 2092 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当一个新的 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 都尝试了下,没有符合我心意的
    想自己写,但那语法条件逻辑实在是太复杂了
    求大佬指导
    第 1 条附言    2020 年 8 月 2 日

    我的研究成果,有类似需求的可以直接用,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 
    13 条回复    2020-07-30 17:25:32 +08:00
    vcheckzen
      &bsp; 1
    vcheckzen  
       2020 年 7 月 29 日 via Android
    调调 API 就行了
    uTOmOuk3L6sb4MSI
        2
    uTOmOuk3L6sb4MSI  
       2020 年 7 月 29 日 via iPhone
    我记得大部分 action 都是 create-release 和 upload-release 都是分开的,我在 create-release 先写 note,之后 upload-release 再上传文件即可。
    imzcg2
        4
    imzcg2  
       2020 年 7 月 30 日 via Android
    目测 travis 可以轻松完成任务
    MajestySolor
        5
    MajestySolor  
    OP
       2020 年 7 月 30 日
    @ODD10 #2 请问你的脚本 create release 这一步里面的 ${{ env.useVersionInfo }} 这个环境变量是怎么来的呢,我就是不明白怎么设置这些变量
    Trim21
        6
    Trim21  
       2020 年 7 月 30 日 via Android
    这些环境变量有三个来源。一个你在 yaml 里面写的,一个是 actions 自带的一些 github.ref 之类的变量,还有一个是输出特定命令到 stdout 也可以设置环境变量。具体的 logging command 的格式我忘了,GitHub 的文档有写。
    bitdust
        7
    bitdust  
       2020 年 7 月 30 日
    提问:为什么这类 CI 的构建脚本都这么难用?
    我理解作为一种 DSL,CI 系统需要解决的问题和一般的脚本语言不一样
    但写 yml 描述构建过程实在是太坑爹了吧
    makefile 都比这些玩意人性化一些,
    以后会出现更好用的 CI 脚本语言吗?
    uTOmOuk3L6sb4MSI
        8
    uTOmOuk3L6sb4MSI  
       2020 年 7 月 30 日 via iPhone   1
    @MajestySolor #5
    每个 steps 都有一个 env,你们看我在上面赋值吗?
    https://i.loli.net/2020/07/30/2CskupRytUe9wjF.jpg
    MintZX
        9
    MintZX  
       2020 年 7 月 30 日
    我是 ruby 开发,我用的这个小工具 https://github.com/jstastny/publish-gem-to-github

    你可以自己根据语言开发一个
    wangxiaoer
        10
    wangxiaoer  
       2020 年 7 月 30 日
    这些 Action 的执行环境在哪里?跟 gitlab-runner 一样需要自己部署一个 runner 吗?
    unsized
        11
    unsized  
       2020 年 7 月 30 日
    https://github.com/actions/create-release#example-workflow---create-a-release

    这个 action 可以根据 tag 自动在 github release
    MajestySolor
        12
    MajestySolor  
    OP
       2020 年 7 月 30 日
    @bitdust #7 哈哈,确实难用,我这几天已经看晕了
    MajestySolor
        13
    MajestySolor  
    OP
       2020 年 7 月 30 日
    @ODD10 #8 太感谢了,终于学会怎么设置读取环境变量了,按你这个做法我可以直接设置读取 tag 和 message,感谢感谢。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5589 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 07:03 PVG 15:03 LAX 00:03 JFK 03:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86