Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy OpwnWrt CI #2198

Merged
merged 2 commits into from
Nov 28, 2019
Merged

Deploy OpwnWrt CI #2198

merged 2 commits into from
Nov 28, 2019

Conversation

KFERMercer
Copy link
Contributor

@KFERMercer KFERMercer commented Nov 28, 2019

使用 GitHub Actions 的 OpenWrt 在线集成自动编译环境.
自动定制固件, 自动生成配置文件, 无需上传配置, 依赖自动调整.
每天凌晨四点自动编译 coolsnowwolf/lede, 兼容 OpenWrt trunk.
教程链接

@dpy013
Copy link
Contributor

dpy013 commented Nov 28, 2019

GitHub Actions可能会被玩坏!

@KFERMercer
Copy link
Contributor Author

21132

已经过测试可用.

@coolsnowwolf coolsnowwolf merged commit a42ddc5 into coolsnowwolf:master Nov 28, 2019
@KFERMercer KFERMercer deleted the dev branch November 28, 2019 15:07
@ElonH
Copy link
Contributor

ElonH commented Nov 28, 2019

使用CI进行编译确实可以极大方便在座各位,但同样会照成一些不良后果。

首先,需要承认这个项目比较热门,有5.3k个start、2.8k个fork。

第二,这个项目编译时间确实有点长,有点繁琐,这也是 @KFERMercer 想去使用 CI 进行编译。

基于上面这两点,同样可以分析出以下的现象。

  1. 2.8k个fork,截止到我写这个 comment 已经有 9 个 merge 这次提交或者 fork 这个项目。
    这也就意味着有10 次 CI 构建(包括该项目)会同时在凌晨四点开始。
    从目前的情况来说,没什么大不了,但是考虑都以后会有很多人fork,凌晨4点同时构建的人会越来越多。

  2. 还有的就是有绝大多数的fork都不会贡献代码,只是作为一种备份手段,这意味着 CI 构建会有极大多数的编译出来的固件都是一样的,

上面的这些现象,会给 github 造成极大不必要的资源浪费

所以并不是非常认同这次提交,或者说这个提交有些缺陷。

解决方案

  1. Initialization environment之前先加入一次判断规则。
    用来判断当前的 remote 是否为 https://github.com/coolsnowwolf/lede.git 或者 git@github.com:coolsnowwolf/lede.git
    这样可以被 fork 之后,在启动 CI 构建时,自动停止不必要的构建。别人 fork 或者 merge 之后,可以自行修改判断开启 CI 构建。

  2. 可以试着转成其它 CI,不去使用 github workflow. 比如 OpenWrt 官网使用的是 travis CI.

@KFERMercer
Copy link
Contributor Author

KFERMercer commented Nov 28, 2019

奶义务. 计算集群不会重复相同的计算. 同样的的编译器同样的架构同样的程序会被合并. 不然你以为双核e5怎么能在两个小时之内编完工具链和镜像?

@ghost
Copy link

ghost commented Nov 29, 2019

我也支持ElonH的看法,但我的想法更简单,默认使用push就好。
几乎没有人有通过schedule每天编译一份的需求,

而且ElonH提出的问题也可以通过这个解决:
默认配置的人下载大雕自动编译的就好(单这点就可以少一部分问您fork后怎么操作的人)。
用作备份的人也不会触发编译(虽然首次要确认才会启动)
同时还能帮大雕检查(虽然大雕每次pull前应该都会本地运行过的)

@ghost
Copy link

ghost commented Nov 29, 2019

额,刚看了下您的示例https://github.com/KFERMercer/OpenWrt-by-lean/blob/CI-demo/.github/workflows/openwrt-ci.yml
发现您也是用的push,但pull到大雕这边的是schedule.....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants