我们都知道,前天 GitHub 突然出现了技术性的故障,在修改配置文件的时候,导致我们中国大陆的 IP 无法正常访问 GitHub 。
如果你是游客模式,没有登录 GitHub ,是会出现 403 访问错误的。
这次大陆 IP 无法访问 GitHub 事件大概持续了 19 小时,时间是 4 月 13 日 4 点左右到晚上 11 点左右。
对此,官方的回应是:
由于一次配置变更产生了意外影响,未登录用户在中国境内尝试访问 GitHub.com 时曾暂时无法访问该网站。已登录用户则可继续正常访问。
其实,这次事件,也引起了大家的恐慌,尤其是在目前关税战升级的大背景下,很多人以为要停止中国大陆用户的使用。
即使,这次官方回应是技术问题,但是,依旧有人质疑:
为什么此次配置文件变更出现问题的是中国大陆 IP 呢?是不是在针对中国大陆 IP 提前做一些配置操作,为未来屏蔽做准备呢?
其实,回归一下历史,这些担心并非毫无依据,在开源协作领域,类似的访问限制事件并非首次发生。此前,某国际知名代码托管平台也曾因政治因素,对特定国家和地区的 IP 实施访问限制,导致当地开发者无法正常参与平台上的开源项目,引起国际开源社区的强烈谴责。
其实,我感觉要想消除这种担忧,我们只有建立自己的开源码托管平台才能更安心。
这两天,我发现一个好东西,就是:腾讯云 CNB ,它不仅提供了代码仓库还是一个强大的云原生构建平台。
如果你是个人开发者或者你们的公司在使用 GitHub 仓库存放代码或者进行代码协作的话,可以试一试腾讯云 CNB 。我感觉完全可以平替 GitHub ,还可以避免焦虑担心被封的问题。
接下来我们一起看看,腾讯云 CNB 是什么?其实,功能还挺强大的。
CNB 其实就是云原生构建(Cloud Native Build)的缩写,它是基于 Docker 生态,对环境、缓存、插件进行抽象,通过声明式的语法,帮助开发者以更酷的方式构建软件,是一个强大的生产力工具。
具有三大特点:
- 声明式:声明式语法,可编程、易分享。
- 易管理:与代码一起,同源管理。
- 云原生:资源池化,屏蔽基础设施复杂性。
简单来讲就是云原生构建以仓库为主体,由配置文件描述在哪个分支下发生什么事件时执行什么任务。和咱们熟悉的 Git 工作流完美兼容,还额外配备了超多实用功能。
1、网络加速超给力:内置加速服务,不管是访问 GitHub,还是 DockerHub,速度都快到飞起。而且用的是腾讯云内网加速,不用额外花流量费,简直太贴心。以后再也不用担心因为网络问题,代码拉取、推送慢得让人抓狂了。
2、深度融入微信生态:支持微信登录,方便得很。项目还能直接分享到微信群聊,群友看到后能一键点赞。更绝的是,PR、Issue 等通知直接通过微信就能接收,沟通效率直线上升,那种被别人秒回的感觉,谁用谁知道。
3、开源社区超完善:代码托管、开源协作、代码评审,这些开源项目开发中常用的功能,cnb.cool 都有。在这里,能轻松和其他开发者交流合作,共同打造优质的开源项目,形成一个完整且活跃的开源社区生态。
4、云原生开发超强大:提供远程开发环境,像 DeepSeek、ComfyUI 这类大型项目,启动和开发都能又快又稳。就算本地设备配置一般,也能顺畅进行大型项目的开发工作。
5、云原生构建超高效:持续集成服务超给力,超大仓库克隆只要几秒。而且构建流程还有缓存加速,大大缩短了项目构建的时间,开发效率直接翻倍。
6、制品库功能丰富:不管是 Docker、Helm,还是 Maven、npm、ohpm 等制品,都能在这存储和分发,一站式满足各种项目的依赖管理需求。
7、任务集助力团队协作:团队协同功能很实用,能自动读取组织内仓库的 ISSUE 和合并请求,然后生成集中查阅、管理视图。团队成员能清楚了解项目进展,方便及时处理问题,提升团队协作效率。
8、腾讯云代码助手 AI 编程:支持腾讯云推出的 AI 编程工具腾讯云代码助手,让写代码变得智能、简单、方便。
举个例子,既然是以仓库为主体,所以肯定支持创建代码仓库供大家进行代码协作开发。
1、创建仓库
新建一个仓库,创建好后,可以点击「云原生开发」按钮快速创建一个开发环境。
再选择 WebIDE 进入开发界面,方便快捷。
2、配置文件
一个简单的流水线配置如下:
# 分支名
main:
  # 事件名
  push:
    # 要执行的任务
    - stages:
        - name: echo
          script: echo "hello world"
添加 CI 配置文件 .cnb.yml,将该内容复制进配置文件,提交并 push 到远端 main 分支。
这样就会触发流水线构建。
3、构建详情
在仓库页面点击 云原生构建 可以看到构建列表。
最新一条即是刚刚触发的 push 事件流水线,点进去可以看到构建详情。
下方那条有 loading icon 的记录是 云原生开发 对应的构建。
4、配置说明
日常需求
一个常见的CI需求是,主分支有Pull Request时,触发流水线进行 lint 和 test 检测,未通过则发出通知。
我们分析下这个需求,可以从中抽取一些要素:
- 主分支,比如main。
- 仓库事件,即pull_request事件。
- 流水线任务:
- lint
- test
- 失败时的任务
- notify
下面我们根据这些要素一步步编写 CI 配置文件。
配置编写
如下图:
总结下,一个流水线的执行过程是:
- 仓库发生事件
- 确定所属分支
- 确定事件名
- 执行流水线
- 执行任务
- 失败时的任务
具体的完整示例大家可以看官方文档介绍,官方提供了丰富的案例资源。
真的,你看,腾讯云的 CNB 不仅仅只是一个代码仓库,还是一个云原生构建平台,让开发变得非常高效灵活便捷。
最后,如果你想把 GitHub 上的仓库迁移到 cnb.cool,也非常简单。cnb.cool 专门提供了便捷的迁移工具。登录 cnb.cool 新建仓库后,在云原生开发环境里执行一条命令就行:
cnb-init-from https://github.com/your-repo.git这条命令会自动把你的 GitHub 仓库克隆到 cnb.cool 平台,轻松完成迁移。
大家赶紧去试一试吧。
地址:https://cnb.cool/
 
 
No comments:
Post a Comment