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

Go-wechaty Github Action optimization #8

Closed
dingdayu opened this issue May 29, 2020 · 13 comments
Closed

Go-wechaty Github Action optimization #8

dingdayu opened this issue May 29, 2020 · 13 comments
Assignees
Labels

Comments

@dingdayu
Copy link

dingdayu commented May 29, 2020

此次活动

开源软件供应链点亮计划

“开源软件供应链点亮计划-暑期2020”(以下简称 暑期2020)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。
根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2020”活动奖金和奖杯。
官网:https://isrc.iscas.ac.cn/summer2020 官方新闻:http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html

Wechaty

Wechaty 是一个开源聊天机器人框架SDK,具有高度封装、高可用的特性,支持NodeJs, Python, Go 和Java 等多语言版本。在过去的4年中,服务了数万名开发者,收获了 Github 的 8000 Star。同时配置了完整的DevOps体系并持续按照Apache 的方式管理技术社区。

Go-wechaty Github Action optimization

项目需求

Github Action 已经发布有段时间了,在 go-wechaty单元测试代码检测代码评级均有已有所落地。但是 Github Action 的玩法远非于此,如果你对 Github 平台很有兴趣,我想你可以基于此学到更多的玩法。在这里你可以获得相应的技术指导,可以获得项目的持续集成等知识。

项目难度

中(奖金:9000元)

你需要有一定的 Git 操作技能,有一定的英文阅读能力(或者善用翻译),愿意尝试一些自动化的技能。
最最主要的是你要有一定的主动学习能力。

导师联系

在这里,你将会获得以下三位老师的指导:

项目产出目标

为了让任务更加的切实可行,我们准备了一个明确的任务目标,希望你能基于这个 核心任务 能够收获更多的实用技能。

核心目标

  • 自动更新 go-wechaty-getting-started 依赖到最新版本
  • 完成 win 平台下 ding-dong 编译测试
  • 完成 ding-dong 的 docker 并推送到 Github Packages

项目技术栈

  • Git
  • Github Action
  • Go (可选)

相关资料

Link to #3 (Wechaty 社区暑期2020项目单)

@dingdayu dingdayu changed the title Go-wechaty Github Action optimization Go-wechaty Github Action optimization May 29, 2020
@huan huan added the Go label May 29, 2020
@kocoler
Copy link

kocoler commented Jun 4, 2020

我想更详细的问一下这个项目的细节问题,题目中有提到他的单元测试和代码检测都已经落地了,是已经写好了的,那么这个项目是只用Github Actions完成“核心目标”么?还是要我自己去想到更多的场景,去寻找更多可以用到Github Actions的地方?我不是很清楚这一点,希望您能帮我解答一下,谢谢您!

@ax4
Copy link
Member

ax4 commented Jun 4, 2020

我想更详细的问一下这个项目的细节问题,题目中有提到他的单元测试和代码检测都已经落地了,是已经写好了的,那么这个项目是只用Github Actions完成“核心目标”么?还是要我自己去想到更多的场景,去寻找更多可以用到Github Actions的地方?我不是很清楚这一点,希望您能帮我解答一下,谢谢您!

@kocoler 嗨!你好!

就我刚才阅读了一下项目需求的理解,建议阅读核心目标一栏:

核心目标

在 go-wechaty 仓库,创建 Tag 时,执行 wechaty/go-wechaty-getting-started 仓库的更新依赖包操作。

因为这是一个学习项目,所以完成的过程中应该也会涉及到git/go/gh actions之间三者结合的知识。核心目标可以理解为对于现有仓库的gh action与跨仓库的gh action部署之间的配置优化问题。在完成核心目标之外,如果有其他的构想,可以联系项目导师来沟通你们之间的想法。

Edit: 在活动相关的解释权,和项目需求相关的解释权问题上,应该更建议咨询项目导师和活动方。

@dingdayu
Copy link
Author

dingdayu commented Jun 5, 2020

感谢 @ax4 的回答,核心目标可以理解为对于现有仓库的gh action与跨仓库的gh action部署之间的配置优化问题,是核心目标的准确解答,当然我们会继续完善核心目标。

这里不再介绍 Github Action,如果有需要,可以在任务说明的相关资料中获取。

现状

wechaty/go-wechaty 已经实现一部分自动化,目前的方案是基于 Github Action,原因是满足需求且与 Github 配合更佳;当然也会通过一些三方服务来优化扩充,比如已经引用的 Codeclimate,类似的还有 codecov.ioappveyor.comtravis-ci等。

已实现的自动化:

  • 提交和合并请求时触发一个 Go Task,Task 会 拉取依赖,单元测试,编译ding-dong,GoLint 套件检查
  • master 分支的提交时触发 Codeclimate Task,检出高复杂度代码和重复代码等

Codeclimate 是一套代码质量平台,可以通过单元测试覆盖率以及配合多套开源组件(GoLint,Gofmt,Govent) 实现代码检测
可以通过 wechaty/go-wechaty/.github/workflows 查看项目最新自动化

核心目标

这个任务的出发点是基于为社区项目寻找一个在当前最佳自动化的方案,也可以看做努力的方向。核心目标是为了让参与者更容易的参与到项目中来,我们始终相信每个人宝贵的灵感,开源社区的魅力也在于:只要你可以说服大多数人,你就可以团结很多人的力量。

上面的话是想说:

  • Github Action 是当前导师在实践后给出的最优方案
  • 不要被核心目标限制灵感,核心目标是为了让你更好的入门

核心目标会被优化,稍后我会在本周末整理新的内容,以使给与参与者更好的引导。

自动化

自动化是代码工程中一个十分重要的过程,与 devops,工程效能 有着异曲同工之妙,不同点在于社区开源项目和内部项目间会有不同的实现流程和需求。

开源项目在一定程度上更需要自动化,多人协同中,代码的一致性,风格的检测,语法检查等,会大大提高效率,特别是跨项目间配合,会减少人工操作的失误率。

稍后,我尽量整理出一份博文,希望有所帮助。

@dingdayu
Copy link
Author

最近工作上有些紧手的任务,所以社区跟进比较少,也很少有时间去整理文章,不过在 一盒粽子的推动下,我整理了一份质量不高的文字: <Github Action 入门> 把欠的博文补上。

自己是不满意这篇文字的,也希望后面能抽出时间重新整理,不过万一有读者能提炼出有用的东西呢 😉

@Nebell
Copy link

Nebell commented Jul 27, 2020

[Go-wechaty Github Action optimization] 进度报告

日期:07-27

本周完成的成果

核心任务基本完成,还在完善 Docker 方面的推送。

本周遇到的困难和需要配合的地方

后来给的 Token 一度无法使用,已经自己使用服务器搭建环境。
需要 Github Packages 中 Docker 镜像的命名格式。

下周的开发计划和预计成果

尝试将 example 自动部署到服务器。

其他需要说明和同步的事项

暂无

@Nebell
Copy link

Nebell commented Jul 28, 2020

[Go-wechaty Github Action optimization] 进度报告

日期:07-19

本周完成的成果

完成 dingdongbot 在 Windows 平台下的测试,此测试以相关依赖更新为基础。

本周遇到的困难和需要配合的地方

下周的开发计划和预计成果

实现 Docker 相关的核心目标。

其他需要说明和同步的事项

@Nebell
Copy link

Nebell commented Aug 3, 2020

[Go-wechaty Github Action optimization] 进度报告

日期:08-03

本周完成的成果

核心任务基本完成。

本周遇到的困难和需要配合的地方

暂无

下周的开发计划和预计成果

发现 renovate 工具可能更适合自动更新 go-wechaty-getting-started 依赖到最新版本,计划进行测试。

其他需要说明和同步的事项

暂无

@dingdayu
Copy link
Author

dingdayu commented Aug 6, 2020

[Go-wechaty Github Action optimization] 导师评分

日期:07-19/08-03

本周进度报告的评分

  • 1: Deliverable not acceptable
  • 2: Deliverable is below expectations
  • 3: Deliverable is OK
  • 4: Deliverable is above expectations
  • 5: Deliverable is perfect

其他需要说明和同步的事项

很抱歉两次报告合为一个评分,在 07-19 的报告中,并没有看到相关的进度成果,所以没有进行评分。

在微信沟通中,得知你已经找到通过Webhook的方式跨项目触发Action,这是一个很简单很直接的方法,我也很赞成你使用这个方法去实现,或者先实现第一个版本。

08-03 的报告中看到你有提到 renovate 工具,也去了解了一番,和 Github Beta 的 Dependabot 有些类似,也很高兴你能找到更多的工具,不过我更推荐先使用简单的工具满足需求。

Docker 的编译和 win 平台或 darwin 平台的 ding-dong 也是两个可以很快上手的任务,期待着你的成功。

在 Action 的调试中,如果放在 go-wechaty 中可以能会遇到一些权限问题,你可以在自己 fork 的项目中调试,然后合并进主干,如果你开始了调试,期待着你的项目链接。

@dingdayu
Copy link
Author

[Go-wechaty Github Action optimization] 导师评分

日期:08-16

本周进度报告的评分

  • 1: Deliverable not acceptable
  • 2: Deliverable is below expectations
  • 3: Deliverable is OK
  • 4: Deliverable is above expectations
  • 5: Deliverable is perfect

其他需要说明和同步的事项

中期评审已提交,根据中期报告中了解,目前已经具有一定的成果,建议提交到仓库中,可以进一步完善。

相应的进度报告有所缺失,希望能够如期的进行,以便更好的完成参赛任务。

@Nebell

@Nebell
Copy link

Nebell commented Aug 25, 2020

[Go-wechaty Github Action optimization] 进度报告

日期:08-23

本周完成的成果

完善 go-wechaty-getting-started 更新依赖的方式。

本周遇到的困难和需要配合的地方

暂无

下周的开发计划和预计成果

继续完善。

其他需要说明和同步的事项

暂无

@Nebell
Copy link

Nebell commented Sep 1, 2020

[Go-wechaty Github Action optimization] 进度报告

日期:09-01

本周完成的成果

调整更新依赖为条件执行。

本周遇到的困难和需要配合的地方

暂无

下周的开发计划和预计成果

继续完善 Dockerfile。

其他需要说明和同步的事项

暂无

@dingdayu
Copy link
Author

[Go-wechaty Github Action optimization] 导师评分

日期:08-23/09-01

本周进度报告的评分

  • 1: Deliverable not acceptable
  • 2: Deliverable is below expectations
  • 3: Deliverable is OK
  • 4: Deliverable is above expectations
  • 5: Deliverable is perfect

其他需要说明和同步的事项

wechaty/go-wechaty-getting-started#8 已完成合并。

wechaty/go-wechaty#68 正在处理过程中,很快即将完成。

加油,即将看到成功的曙光!

@huan huan added the summer2020 label Jan 4, 2021
@huan
Copy link
Member

huan commented Jan 10, 2021

@dingdayu Thanks for the mentoring!

@Nebell Thank you very much for joining the Wechaty open source project and finished Summer 2020 successfully!

@huan huan closed this as completed Jan 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants