Github Actions自动发布release

news2024/9/22 15:49:51

目录

  • 说明
  • 正文
    • 1.设置仓库密钥
    • 2.打开仓库权限
    • 3.配置自动化文件
    • 4.写在最后

说明

GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。通过Github Actions可以实现诸多自动化功能,比如自动打包,自动发布Release等等。除此之外,GitHub Actions完全免费。

GitHub Actions 文档:

在这里插入图片描述

正文

1.设置仓库密钥

GitHub Actions多数时候会调用一个叫做github-actions的机器人进行工作,这意味着我们必须为仓库添加Token才能让GitHub Actions正常工作。

访问你的settings页面,找到Developer settings,选中Personal access tokens,选中子选项Token (classic),点击右上角Generate后再次选择classic,在密钥的设置界面取个名字,设置日期,勾选框图中的三个权限即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拉到最下方点击generate后,复制密钥信息:

在这里插入图片描述

打开你的项目的settings页面,找到Secrets选项卡,选中Actions,选中下方New secret名字不重要可以随便取,填入刚刚的密钥后保存即可。

在这里插入图片描述
在这里插入图片描述

2.打开仓库权限

因为Release涉及文件读取,因此要把setings-Action-general中的读写权限开启:

在这里插入图片描述

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目录下所有文件。

效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.写在最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2043282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实验10-3 递归计算Ackermenn函数

本题要求实现Ackermenn函数的计算,其函数定义如下: 函数接口定义: int Ack( int m, int n ); 其中m和n是用户传入的非负整数。函数Ack返回Ackermenn函数的相应值。题目保证输入输出都在长整型范围内。 输入样例: 2 3输出样例&am…

8 个最佳 Java IDE 和文本编辑器

从 2024 年使用的最佳 Java IDE 和代码编辑器中进行选择,并提高您的 Java 生产力。 Java 是世界上最流行的编程语言之一,于 1995 年首次推出,它确实践行了“编写一个,随处运行”的座右铭。该语言用途广泛,可用于构建从…

浅谈物理集中式数据中台架构在数据开发中的不足

在传统数据开发和生产领域,企业面临的问题主要源于数据规模的急剧增长,多源异构数据的不断扩张,以及数据消费端看数、用数的人员越来越多。初期,数据仓库的主要功能聚焦于支持经营仪表盘的视图构建,旨在为企业提供直观…

ubuntu:最新安装使用docker

前言 系统:ubuntu 22.04 desktop 目的:安装使用docker 安装小猫猫 没有安装包的,可以自己去瞅瞅,这里不提供下载方式 sudo dpkg -i ./cat-verge_1.7.5_amd64.deb 在应用里,打开这个软件,并开启系统猫猫 配…

单元训练08:外部中断的基本操作

蓝桥杯 小蜜蜂 单元训练08:外部中断的基本操作 #include "stc15f2k60s2.h"#define LED(x) \{ \P0 x; \P2 P2 & 0x1f | 0x80; \P2 & 0x1f; \}#define L1 0xFE; // 定义L1亮…

SpringBoot集成MyBatis和FlyWay

一、什么是FlyWay 一个开源的数据库迁移工具,用于管理和执行数据库结构的版本变更。通俗来说,它帮助开发者跟踪和应用数据库中的更改,比如表的创建、列的修改等。主要的功能为: 数据库版本控制: Flyway 使用一组迁移…

硬件I2C和软件I2C(模拟I2C)的区别

硬件I2C和软件I2C是两种不同的实现I2C(Inter-Integrated Circuit,集成电路间)通信协议的方式,它们在实现方式、性能特点以及应用场景上存在显著差异。 一、实现方式 硬件I2C:通过专门的硬件电路实现,这些…

泛交通领域的可视化大屏作品欣赏,各个都相当惊艳。

各位新老朋友大家好,本次给大家带来泛交通领域的可视化大屏,供大家鉴赏。 泛交通领域是指综合利用各种交通方式和资源,提供全方位、多元化的出行选择和服务的交通体系。 它包括以下几个方面: 1. 公共交通:包括地铁、…

花钱买不到系列之—linux系统调用

关于系统调用是什么,为什么用系统调用? 也是通过生活的例子来说明白。 我们生活中有一种东西叫银行,银行是不是有存钱的仓库对不对?好银行有存钱的仓库,银行有桌椅板凳啊,银行还有电脑,设备啊,…

文华财经期货DK多空提示指标源码

N1:40; A:(COHL)/4; AA0:MA(A,N1),LINETHICK3;//中 MA1:MA(CLOSE,5), NODRAW; MA2:MA(CLOSE,10), NODRAW; MA3:MA(C,60), NODRAW,LINETHICK1; 转折线:MA3, NODRAW,COLORCYAN; 顺势线:MA(CLOSE,10), NODRAW; MA20:MA(C,20), NODRAW; MA30:MA(C,30), NODRAW; ZD:MA3>…

网络 基础

目录 1、协议: 2、OSI 七层 模型: 3、TCP/IP 五层 / 四层 协议 3.1、为什么要有TCP / IP 协议? 3.1.1、主机之间变远产生的问题: 3.1.2、TCP/IP协议于操作系统的关系 4、局域网 4.1、Mac 4.1.1 在Linux内使用指令 …

leetCode - - - 哈希表

目录 1.模拟行走机器人(LeetCode 874) 2.数组的度(LeetCode 697) 3.子域名访问次数(LeetCode 811) 4.字母异位词分组(LeetCode 49) 5.小结 1.常见的哈希表实现 2.遍历Map 1.模…

基于Java中的SSM框架实现医院收费系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现医院收费系统演示 摘要 随着医疗体制改革的不断深入,医院收费系统成为医院信息化建设的重点内容。医院收费系统是利用计算机、网络技术和数据库技术,实现病人在医疗机构的诊疗信息的电子化存储、传递和分析,从而提高…

[Meachines] [Medium] Mango PHP弱比较绕过+MongoDB注入+TRP00F自动化权限提升+JJS权限提升

信息收集 IP AddressOpening Ports10.10.10.162TCP:22,80,443 $ nmap -p- 10.10.10.162 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-host…

<数据集>快递识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:5382张 标注数量(xml文件个数):5382 标注数量(txt文件个数):5382 标注类别数:1 标注类别名称:[Box-Packet] 序号类别名称图片数框数1Box-Packet53828965 使用标注工…

8.15-配置mysql5.7环境+使用python管理数据库+使用中间件mycat配置读写分离

一、配置mysql5.7的环境 1.基础配置 # 将mysql5.7的包拖入xshell [rootmysql_5 ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ​ # 解压 [rootmysql_5 ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ​ # 备份文件 [rootmysql_5 ~]# cp…

短说V4.2.0测试版发布|字体更换、小名片及个人中心UI更换

Hi 大家好, 我是给你们带来惊喜的运营小番茄。 本期更新为短说V4.2.0测试版,本次更新涉及平台有H5、App、微信小程序。 4.2.0版本除功能优化外,新增了如下功能: 一、新增功能 通用版: ①全站默认字体全部更换为…

淘宝到一个墨水屏,成功实现显示经历记录

一,淘一个墨水屏的原因 在一些小的PCB设计和编程中发现,许多程序控制运行情况如果能够显示出来,会很完美。大学时期使用LCD1602(经典)显示了一个称重传感器的课程设计,后来尝试OLED显示。在过程中发现墨水…

【嵌入式linux开发】智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派)

智能家居入门5(QT、微信小程序、HTTP协议、ONENET云平台、旭日x3派) 前言一、QT界面设计二、云平台产品创建与连接三、下位机端QT代码总览:四、微信小程序端代码总览五、板端测试 前言 前四篇智能家居相关文章都是使用STM32作为主控&#xf…

报表的多行业应用!用工具做报表省了我不少事...

一、什么是报表? 说起报表,你不会还停留在Excel报表的层面上吧? 传统的报表一般都是基于Excel制作的,主要面向业务人员、开发人员等,也有一些公司会自己去开发设计,只不过周期较长,耗费人力多。…