宁睿 发表于 2024-10-5 12:40:02

Github Actions自动发布release

说明

GitHub Actions 是 GitHub 的连续集成服务,于2018年10月推出。通过Github Actions可以实现诸多自动化功能,比如自动打包,自动发布Release等等。除此之外,GitHub Actions完全免费。
GitHub Actions 文档:
https://i-blog.csdnimg.cn/direct/66934d0d08ad4ce682890245f6cd8af0.png
正文

1.设置仓库密钥

GitHub Actions多数时候会调用一个叫做github-actions的呆板人进行工作,这意味着我们必须为仓库添加Token才能让GitHub Actions正常工作。
访问你的settings页面,找到Developer settings,选中Personal access tokens,选中子选项Token (classic),点击右上角Generate后再次选择classic,在密钥的设置界面取个名字,设置日期,勾选框图中的三个权限即可。
https://i-blog.csdnimg.cn/direct/8c2e206b01124db3924ddf70acee9213.png
https://i-blog.csdnimg.cn/direct/a199eef658f14f21bf094decdf4e7878.png
https://i-blog.csdnimg.cn/direct/f05aa65b8f60427d9ea436e0491cabd6.png
https://i-blog.csdnimg.cn/direct/8487808a07e940e5930b19db0774188f.png
拉到最下方点击generate后,复制密钥信息:
https://i-blog.csdnimg.cn/direct/62ac0bdd182d41b19e19f69f0c079611.png
打开你的项目标settings页面,找到Secrets选项卡,选中Actions,选中下方New secret,名字不重要可以任意取,填入刚刚的密钥后保存即可。
https://i-blog.csdnimg.cn/direct/300ccc997a45454aad22e115ee681337.png
https://i-blog.csdnimg.cn/direct/6af3fbe9ab88440eb17655c3944599ff.png
2.打开仓库权限

由于Release涉及文件读取,因此要把setings-Action-general中的读写权限开启:
https://i-blog.csdnimg.cn/direct/22cc5a5b31fd43e989e65b6b1ab8f66c.png
3.配置自动化文件

GitHub Actions的自动化信息来自项目根目次下.github/workflows文件夹下后缀为.yml的文件(其文件格式遵循yaml)
Yaml文件在GitHub Actions中具有条件判断本领,你可以设置多个文件来满足差别的必要。
新建一个Release文件,填入以下内容即可:
name: Build and Release

on:
push:
    tags:
      - "v*"

jobs:
build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
      uses: actions/checkout@v2

      - name: Install gcc
      run: sudo apt install -y gcc

      - name: Make Build dir
      run: mkdir build

      - name: Build
      run: gcc a.c -o ./build/release

      - name: Release
      uses: softprops/action-gh-release@v2
      with:
          token: ${{ secrets.123dsa }}
          body_path: ./CHANGELOG.md
          files: |
            ./build/**
            ./CHANGELOG.md

我不会过细地解释为什么如许写,在说明的文档超链接里有所有内容。
name:这个自动化的名称,会在GitHub Actions中作为分别选项卡进行区分
on:执行条件。由于支持通配符,这里的设置为当此push的标签为v开头时执行
jobs:很显然是做些什么
build:其中的runs-on指定在最新的ubuntu体系上运行
steps:执行内容,其中name指名称(不是很重要),run指定执行的代码。必要注意的是所有run命令的工作目次都是项目根目次
第一步为通用步骤,复制源代码并查抄哈希值。
二三四步为一个简朴的gcc构建。
第五步为构建发布,使用了GH Release这个Action,with指定了参数,token指定给呆板人用的token,与上文添加的同等(实在你不加这一行都可以),body_path指定从根目次的CHANGELOG.md文件读取内容作为Release的内容(不加这一行也可以),files指定Release的文件,|为Yaml的特定符号,其下可以使用多行笔墨。通配符**代表build目次下所有文件。
效果:
https://i-blog.csdnimg.cn/direct/7b487c90c59046b7b845a2c28dd099c2.png
https://i-blog.csdnimg.cn/direct/a817b1f3db4a4cd3b988bc41673afe0d.png
https://i-blog.csdnimg.cn/direct/78ac7f5edcb0456da40c701a3ae470a7.png
4.写在最后

GitHub Actions自带有很多的参数,例如github.ref代表本次执行时传入的标签,并且GH Release这个Action还具有设置pre-release等等功能,可以自定义出相当实用的自动化。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Github Actions自动发布release