体验 Gitea Actions
即将推出的 Gitea Actions 致力于打造一个 CI/CD 工具的标准协议,第三方 CI 系统可以基于actions 协议与 Gitea 平台集成,提供一站式管理方案。Gitea Actions 为此走出了第一步。
学习 GitHub Actions
GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行任务、测试和部署。用户可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。
GitHub Actions 不仅仅是 DevOps,还允许用户在存储库中发生其他事件时运行工作流程。 例如,可以运行工作流程,以便在有人创建新问题时自动添加相应的标签。
GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者在自有的数据中心或云基础架构中托管运行器。
Gitea 的 DevOps 生态
得益于广大开源社区的支持,目前 Gitea 可以良好适配以下 DevOps 工具。
- Agola
- AppVeyor
- AWS Cloud Integration(webhook-to-s3)
- buildbot-gitea
- buildkite-connector
- Concourse
- Dex
- Drone
- Ghorg
- gickup
- Jenkins
- 建木 CI
- Metroline
- Monitoring mixin
- mvoCI
- Renovate
- Tea Runner
- Woodpecker
经过长期的社区互动,我们获得了大量第三方CI系统的集成方案。但我们始终发现,独立搭建并运维一整套CI系统只是一小部分极客的专长,对于更广泛的用户而言这并不是个简单的工作,于是我们开始尝试为此努力,让工具更好地为人服务。
打造 Gitea Actions
不可否认 GitHub Actions 打造了一套很棒的工作环境,它的设计理念使仓库与 CI 工具之间有了更加紧密的集成,实现了代码即配置,同时平台用户为整套系统提供了丰富的应用扩展,相比传统模式来说,易用性上更胜一筹。如果能将它的优点移植到 Gitea 将是件很棒的事情。
好消息是,经过两年的调研与讨论,我们终于将 Gitea 内置CI/CD系统的开发任务提上了日程。(#13539)
开发进展
Gitea Actions 实现了一个内置的 CI/CD 系统框架,兼容 GitHub Actions 的 YAML 工作流编排格式,兼容 GitHub Marketplace 中大部分现有的 Actions 插件。
系统由三部分组成:
- Gitea Actions 协议的定义和 Golang实现
- Actions Runner: 基于 nektos/act 实现的任务子系统
- 在 Gitea 主程序上实现 Runner 任务管理和调度模块
运行截图
1.系统管理员可以访问 Runners 管理界面,创建、编辑和删除 Runner。
2.通过仓库顶部的导航打开 Actions,查看 CI 构建信息。
3.点击某个 CI 构建结果,查看日志。
尝鲜体验
⚠ 实验性功能,请勿用于生产环境
准备环境
- 内存:至少 4GB,用于编译 Gitea
- Docker:可执行 docker 命令,用于拉取和运行容器
搭建
1.编译运行 Gitea
下载带有 Actions 模块的 Gitea 源代码:
# 目前可以从 @wolfogre 的开发分支克隆带有 Actions 模块的源代码到本地编译。 git clone https://github.com/wolfogre/gitea.git --branch=feature/bots cd gitea
编译方法可以参考从源代码安装。这里我们需要准备开发环境 Node.js LTS (nvm instal --lts
) 和 Golang。
以下是推荐的打包方法(带有SQLite,方便本地测试)
TAGS="bindata sqlite sqlite_unlock_notify" make build
启动 Gitea 主程序。这里先走完初始化步骤,会生成一个配置文件,位于当前目录下的
./custom/conf/app.ini
编辑上述配置文件,打开 Actions 功能。
[actions] ENABLED = true
重新启动程序:./gitea web
2.启动 Runner
首先编译 act_runner
程序
git clone https://gitea.com/gitea/act_runner.git cd act_runner make build
然后将 Runner 注册到 Gitea 服务器。
- 方法一:使用交互命令配置
$ ./act_runner register INFO Registering runner, arch=amd64, os=linux, version=0.1.5. WARN Runner in user-mode. INFO Enter the Gitea instance URL (for example, https://gitea.com/): [输入服务器地址] INFO Enter the runner token: [输入 Runner 令牌] INFO Enter the runner name (if set empty, use hostname:ubuntu ): [输入 Runner 名称] INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster): [输入 Runner 标签] ... DEBU Successfully pinged the Gitea instance server INFO Runner registered successfully.
- 方法二:非交互式命令
--no-interactive
--instance
填写服务器地址--token
填写管理员从服务器获取的 Actions 令牌(/admin/runners
)
./act_runner register --instance http:// --token --no-interactive
启动程序
./act_runner daemon
3.为仓库启用 Actions 功能
您可以新建一个仓库并手动开启仓库设置中的 Actions 功能。
刷新页面后,我们可以发现仓库的顶部功能导航栏中多了一个 Actions 功能,点击 Actions 进入可以看到目前为空的 All Workflows 任务列表。
4.上传 Workflows 配置到仓库目录 .gitea/workflows/build.yaml
。由于 Gitea Actions 兼容 GitHub Actions,因此您可以从 GitHub 文档中复制示例。开始学习使用 Gitea Actions 吧!
🚀 阅读文档 https://docs.github.com/en/actions/quickstart
以下是一个示例,将它保存到 .gitea/workflows/build.yaml
时会触发 CI 工作:
name: Gitea Actions Demo run-name: ${{ github.actor }} is testing out Gitea Actions 🚀 on: [push] jobs: Explore-Gitea-Actions: runs-on: ubuntu-latest steps: - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event." - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!" - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}." - name: Check out repository code uses: actions/checkout@v3 - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner." - run: echo "🖥️ The workflow is now ready to test your code on the runner." - name: List files in the repository run: | ls ${{ github.workspace }} - run: echo "🍏 This job's status is ${{ job.status }}."
与此同时,我们再次导航到 Actions 功能面板,可以看到刚刚创建 Workflow 已经执行并且记录下了运行日志。
5.检查 CI 执行过程产生的日志。不难看出 Gitea Runner 拉取了 Docker 镜像作为 CI 构建过程所需的基础环境。
6.从 GitHub 文档中了解更多 Actions 用法,同时可以为我们提出改进意见!
🤖 Implement actions https://github.com/go-gitea/gitea/pull/21937 🔧 GitHub Actions https://docs.github.com/zh/actions/using-workflows

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Deno 1.29 发布,支持自定义 registry、提升质量
Deno 1.29 已正式发布。 主要变化 改进 npm 兼容性 REPL 变更 改进项目质量 DenoAPIs变更 将附带的 TypeScript 升级到 4.9 标准库模块变更 改进 npm 兼容性 自 1.28.0 以来,此版本具有多项 npm 兼容性改进和 30 多个错误修复。 通过环境变量以实现对自定义registry 的支持 Deno 现在会遵守NPM_CONFIG_REGISTRY环境变量,允许指定自定义 npm registry。 # change this to a custom registry NPM_CONFIG_REGISTRY=https://registry.npmjs.org deno run main.ts 在未来的版本中,将支持在每个包范围内使用不同的 registry,并能够设置凭据。 支持deno install npm 说明符现在可以与deno install搭配使用: > deno install -A npm:cowsay@1.5.0 ✅ Successfully installed cowsay C:\Users\da...
- 下一篇
文末福利 | openKylin积分商城上线,超全贡献攻略等你来~
10月21日,openKylin社区成长体系上线运行,许多小伙伴通过这段时间的贡献已经累积到了一定的积分,今天,在大家的热切期待中,openKylin积分商城正式上线!超多礼品等你发掘~ 同时,还有许多小伙伴对如何参与社区贡献还存有一定疑问,为此,我们为大家准备了以下社区贡献攻略,快来一起看看吧~(文末有小福利哦) 01 新手小白如何参与社区贡献 大多数小伙伴认为,openKylin作为一个开源的桌面操作系统根社区,为它做贡献的方式就是贡献代码。实际上,openKylin社区的运作包含很多层面,贡献的途径也很多样化。如果您还是新手小白,那么可以从以下几个方面先了解openKylin社区,并参与基础的社区贡献。 浏览社区新闻动态,可以通过openKylin官网或公众号了解; 了解社区活动信息,积极报名参与线上线下活动和讨论; 下载并安装openKylin操作系统,反馈使用中遇到的问题; 在openKylin社区论坛发表帖子,或解答别人的问题。 帮助社区完善文档或翻译文档。 社区贡献前准备 签署完成openKylin贡献者许可协议(CLA),即可参与社区贡献。如若未签署,则所做贡献不会计入...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启