前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还不会Github Actions自动构建?一起来看看吧

还不会Github Actions自动构建?一起来看看吧

作者头像
ACM算法日常
发布2022-05-09 12:46:32
2.6K0
发布2022-05-09 12:46:32
举报
文章被收录于专栏:ACM算法日常

还不会使用Github自动构建Actions?这么好用的功能实在是忍不住写一篇文章推广一下。如果你没使用过,那么就来看看吧。

Github被微软收购之前就有自动构建工具,比如Travis CI,自动构建可以让代码自动构建起来,甚至自动打包、自动发布,我也是在编写我的笔记程序时想让Github自动发布新版本才开始使用这个功能。

我的项目是private类型的,AppVeyor免费版本只支持public的项目,后来发现Github的Actions可以支持private并且功能异常强大,几乎所有的程序(Windows、Linux、安卓、IOS等)都可以使用Actions进行自动化。Actions标签如下图所示,点击即可进入操作界面。

Actions里面支持非常多的构建类型,通常你可以找到一个可以用的模板,如下:

比如我是windows开发,那么就选择了MSBuild based projects这个。点击Configure会创建一个msbuild.yml文件,默认会给你提供VS编译工具。

由于yml的内容非常多,可以参考官方文档,这里我列一下我构建时遇到的问题。

1 如何使用git submodule?

通常一个项目不会是由一个git项目组成,而是包含了很多外部模块,那么如何checkout其他项目源码呢?

如上图,在uses中使用checkout,with使用submodules为recursive,那么git会自动下载.gitmodules文件里面的子模块。注意如果是private项目,需要使用token,这个token是在如下页面设置的(用户Setting,然后点击最下面的Developer settings):

2 如何使用python?

我在处理版本号时需要读取源码中的版本字符串,这个是用python写的脚本,如上图中,直接使用uses就可以了,可以指定python版本。这样可以在系统中非常方便的写python了!

3 如何执行多行命令?

默认run只会执行一条命令,如果写成run: |,那么可以写任意多行的命令,这样非常适合在yml中写shell脚本,而无需调用bat文件。

4 如何使用打包工具nsis?

我是直接将nsis放在工程中,这样减少了nsis版本和插件等一堆问题。类似的可以将很多工具exe直接放到工程中,便于直接调用。

5 Github Actions可以上传文件到国内?

答案是可以,不过上传有一定概率失败,可能是速度有点慢容易超时。我打包后的文件是29MB,因此需要做超时处理。

6 使用这个有限制吗?

从上面可以看出,我们完全可以把Github看成是我们自己的电脑,至少我使用的时候感觉不到任何限制,上传下载编译构建打包无所不能,唯一的限制是每个月只有2000分钟的构建时间,如果是Windows只有1000分钟,平均每天33分钟,但是对于一般的个人开发来说是够用的了。据说这个功能可以用来挖矿,现在估计严了,恶意操作小心封号。

由于我的笔记程序需要支持全平台,后面打包的事情貌似都可以使用Actions完成,刚搞定Windows的,后面再处理安卓的,不管你是开发什么程序,都可以使用构建工具做一些事情。安利完毕,看到这里相信你已经有大概印象了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ACM算法日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 如何使用git submodule?
  • 2 如何使用python?
  • 3 如何执行多行命令?
  • 4 如何使用打包工具nsis?
  • 5 Github Actions可以上传文件到国内?
  • 6 使用这个有限制吗?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档