Skip to content

Commit

Permalink
refactor README
Browse files Browse the repository at this point in the history
  • Loading branch information
KFERMercer committed Dec 9, 2019
1 parent c7a2425 commit 1d4a76d
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 41 deletions.
15 changes: 15 additions & 0 deletions README-en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[🇨🇳 中文](README-zh.md)

# OpenWrt CI - compile openwrt by GitHub Actions.

## [![Build](https://img.shields.io/github/workflow/status/KFERMercer/OpenWrt/OpenWrt-CI/master?)](https://github.com/KFERMercer/OpenWrt/actions?query=workflow%3AOpenWrt-CI) [![Release](https://img.shields.io/github/release/KFERMercer/OpenWrt-CI?color=blue)](https://github.com/KFERMercer/OpenWrt-CI/releases)

### Please read source code before use.

## Basic Usage:

Copy `openwrt-ci.yml` to your forked repository `/.github/workflows/openwrt-ci.yml`

### (!! Dangerous !!)self merging upstream branch:

Also copy `merge-upstream.yml` to `/.github/workflows/merge-upstream.yml`
65 changes: 24 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,62 @@
# 使用 GitHub Actions 的 OpenWrt 在线集成自动编译环境.
[🇬🇧 English](README-en.md)

## 12月4日更新: (!!自动更新代码!!) 直接把`merge-upstream.yml`放入`.github/workflows/`即可启动自动更新大雕代码.
# 借助 GitHub Actions 的 OpenWrt 在线集成自动编译.

## 自动定制固件, 自动生成配置文件, 无需上传配置, 依赖自动调整.
## [![Build](https://img.shields.io/github/workflow/status/KFERMercer/OpenWrt/OpenWrt-CI/master?)](https://github.com/KFERMercer/OpenWrt/actions?query=workflow%3AOpenWrt-CI) [![Release](https://img.shields.io/github/release/KFERMercer/OpenWrt-CI?color=blue)](https://github.com/KFERMercer/OpenWrt-CI/releases)

## 代码更新即自动编译, 兼容 coolsnowwolf/lede 以及 OpenWrt trunk
支持自动定制固件, 自动调整依赖及生成配置文件, 无需上传配置. 兼容 [coolsnowwolf/lede](https://github.com/coolsnowwolf/lede) 以及 OpenWrt trunk.

感谢[P3TERX](https://github.com/P3TERX/Actions-OpenWrt)珠玉在前.
同时支持自动合并推送上游提交 (也就是自动更新), 直接把`merge-upstream.yml`放入`.github/workflows/`即可 (默认上游为 coolsnowwolf/lede, 高级玩家请自行改写).

### 好消息! 好消息!
### 你还在使用别人编译的加料固件吗?!
### 你还在因为学不会Linux命令而苦苦挣扎吗?!
### 你还在用你那双核赛扬装虚拟机吗?!
### 你还在花费半辈子攒下的论坛币只为了下载别人编译好的附件吗?!
### 你还在因为自身原因导致的编译失败而发一些不知所云的issue吗?!
### 生命冇 take two! 我们浪费在编译上的时间已经够多了!
### 21世纪, 自己的才是最好的! 现在人人都可以定制自己的专属固件了! <sub><sub>(不包含三岁及以下儿童)</sub></sub>
感谢[P3TERX](https://github.com/P3TERX/Actions-OpenWrt)珠玉在前.

---

## 麻瓜级使用教程:

> ### 这个CI脚本和[P3TERX/Actions-OpenWrt](https://github.com/P3TERX/Actions-OpenWrt)的同样是云编译, 有什么不同?
这个 CI 脚本可以帮助你在你的 OpenWrt 分支下构建当前库的Op固件, 无需上传配置文件, 不依赖外挂配置脚本, 所以不会污染库文件树, 对Op开发者比较友好.

P3TERX/Actions-OpenWrt 的优势在于, 其可以独立于文件库存在, 可以快速搭建起可用的编译配置, 但是由于 OpenWrt make configure 自身机制的缘故, 生成的配置文件鲁棒性较差, 需要经常重新生成上传配置, 有形中加重了维护负担, 使得使用起来不是很`优雅`.
P3TERX/Actions-OpenWrt 的优势在于, 其可以独立于文件库存在, 可以快速搭建起可用的编译配置. 同时对新手及其友好. 但是由于 OpenWrt make configure 自身机制的缘故, 生成的配置文件鲁棒性较差, 需要经常重新生成上传配置, 有形中加重了维护负担, 使得使用起来不是很`优雅`, **但是强烈建议基础薄弱的玩家使用.**

> ### 这个CI脚本适合哪些人?
- 伸手党 (访问者可以每日下载到当日最新的固件)
- 正在维护自己的 OpenWrt 分支的大佬/初学者/玩家 (可以快速测试自己的代码)
- 没有精力维持一个专用编译机的佛系人士 (梯子到期了?)
- 伸手党
- 没有精力维持一个专用编译机的佛系人士

> ### 开始吧.
## 使用教程:

在一切开始前, 你需要的是:
### 在一切开始前, 你需要的是:

- GitHub 账号
- 申请使用 GitHub Actions
- 自己的OpenWrt分支(fork大雕源或者官方源)
- 识字能力以及基本电脑操作技能
- [基本的Git技能](https://www.liaoxuefeng.com/wiki/896043488029600)
- 自己的OpenWrt分支 ([Lean源](https://github.com/coolsnowwolf/lede)或者[官方源](https://github.com/openwrt/openwrt/))
- 脑子

你不需要的是:
### 相关文章: 作者-糖炒栗子

- Linux技能
- 对编译失败的处置能力 (脚本由我维护)
- 梯子
- [面向小白的Github_Action使用workflow自动编译lean_openwrt教程](https://zhuanlan.zhihu.com/p/94402324)
- [关于Github Action自动编译Lean_Openwrt的配置修改问题](https://zhuanlan.zhihu.com/p/94527343)

### 1. 注册GitHub账号并开启GitHub Actions (自行搜索方法).

### 2. fork [coolsnowwolf/lede](https://github.com/coolsnowwolf/lede) 或者[OpenWrt trunk](https://github.com/openwrt/openwrt).
### 2. fork [coolsnowwolf/lede](https://github.com/coolsnowwolf/lede) 或者 [OpenWrt trunk](https://github.com/openwrt/openwrt).

### (coolsnowwolf/lede已经合并此配置, 如果你pork了此库, 请忽略3. 4. 5.步)
### 3. 上传`openwrt-ci.yml``merge-upstream.yml``/.github/workflows/`下.

### 3. 点击页面上方的`Create new file`按钮, 打开后在文件名处填入`.github/workflows/openwrt-ci.yml`(github 会自动创建路径).
### 4. 定制固件:

### 4. 打开[这个链接](https://raw.githubusercontent.com/KFERMercer/OpenWrt-CI/master/openwrt-ci.yml), `Ctrl+a`选泽复制页面所有内容黏贴在刚才的下方的大文本框内.
> 如果你希望定制你的固件:
> ### 现在暂停一下, 代码里需要留意一些东西...
如果你只希望生成默认配置, 不经过任何修改的固件, 那你不需要对代码进行任何修改. 自动集成工具会在每次推送后自动编译出最新默认配置的固件.

如果你希望定制你的固件:\
代码里的注释部分详细介绍了如何在脚本中客制化你的固件. 简单来说, 你只需要解除注释相应行即可.

### 正确的定制固件脚本应该是长[这样的](https://github.com/KFERMercer/OpenWrt-by-lean/blob/CI-demo/.github/workflows/openwrt-ci.yml), 此配置基于大雕最新代码, 开启了所有预先写好的定制选项, 同时已经[经过测试](https://github.com/KFERMercer/OpenWrt-by-lean/commit/d31390d3e7b5f178d4e3456d401ded557c207398/checks?check_suite_id=334570354)可用. 悟性再高不如照葫芦画瓢, 如果你的配置一直编译失败, 抄, 请.

现在我们继续:
我已经准备一个[正确的编写示例](https://github.com/KFERMercer/OpenWrt-by-lean/blob/CI-demo/.github/workflows/openwrt-ci.yml), 此配置基于 Lean 最新代码, 开启了所有预先写好的定制选项, 同时已经[经过测试](https://github.com/KFERMercer/OpenWrt-by-lean/commit/d31390d3e7b5f178d4e3456d401ded557c207398/checks?check_suite_id=334570354)可用. 如果你缺乏对自己的信心, 可以随意借鉴.

### 5. 假设你已经完成了脚本修改, 现在点击页面最下方的绿色按钮. 你是色盲也没关系, 因为按钮上写着`Commit new file`.
### 5. 大功告成.

### 6. 大功告成, 集成编译环境会自动开始编译. 现在返回你的库首页, 点击页面上方的`Actions`按钮就可以查看进度.
集成编译环境会自动开始编译. 现在返回你的库首页, 点击页面上方的`Actions`按钮就可以查看进度.

> ### 如何下载到编译完成的固件?
进入`Actions`标签页后, 如果相应的集成活动全部完成 (打勾) , 点击页面右上方的`Artifacts`即可看到你的固件 (通常是一个压缩包). 点击压缩包即可开始下载. (别人也可以下载你的固件, 不可思议.)
进入`Actions`标签页后, 如果相应的集成活动顺利完成 (显示为绿色), 点击页面右上方的`Artifacts`即可看到你的固件 (通常是一个压缩包). 点击即可开始下载.

0 comments on commit 1d4a76d

Please sign in to comment.