即将推出的 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)

开发进展

https://github.com/go-gitea/gitea/issues/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 registerINFO 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://<your_gitea_instance> --token <my_runner_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 吧!

												

体验 Gitea Actions相关推荐

  1. App原型设计工具使用心得(上)

    源地址:http://www.cocoachina.com/applenews/devnews/2014/0123/7745.html 在开发的早期阶段,原型设计无疑是很重要的,这也是详查和分解应用最 ...

  2. Gitea 1.7.6 发布,一键部署的自助 Git 服务

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Gitea 发布 1.7.6 版本了.Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git ...

  3. Redux你的Angular 2应用--ngRx使用体验

    Angular2和Rx的相关知识可以看我的Angular 2.0 从0到1系列 第一节:Angular 2.0 从0到1 (一) 第二节:Angular 2.0 从0到1 (二) 第三节:Angula ...

  4. GitHub 新出的 Actions 是什么? 用他做自动测试?

    体验分享 本文一个尝鲜的体验分享, 并没有太复杂的技巧, 做了一个最少代码的例子展示, 让每个人都可以把action用起来, 如果路过的大牛有高级技巧请留言分享, 我会补充. 下面正文开始. 是什么? ...

  5. 使用 typescript ,提升 vue 项目的开发体验(1)

    此文已由作者张汉锐授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 前言:对于我们而言,typescript 更像一个工具 官方指南 从 vue2.5 之后,vue 对 ts ...

  6. 游戏用户体验指标_电子游戏如何超越游戏化的用户体验

    游戏用户体验指标 游戏UX (GAMES UX) During a time when the time spent on video games has reached record breakin ...

  7. 英国文化影响管理风格_文化如何影响用户体验

    英国文化影响管理风格 重点 (Top highlight) The Internet makes the world a smaller place. You can make money or ga ...

  8. zoom 用户被锁定_重新考虑Zoom的用户体验

    zoom 用户被锁定 Zoom is a household name now. It's weird, but a new reality for 2020. I've been able to r ...

  9. ucla ai_UCLA的可持续性:用户体验案例研究

    ucla ai Role: UX Researcher / UX Designer / Critical-thinker 角色: UX研究人员/ UX设计人员/批判性思维者 Scope: 4 week ...

最新文章

  1. centos7开启,关闭防火墙
  2. 计算机科学与技术年会,2017年全国理论计算机科学学术年会在武汉召开
  3. oracle bcp out,SQL Server利用bcp命令把SQL语句结果生成文本文件
  4. 大道至简:算法工程师须知的十个炼丹trick
  5. YUI Compressor
  6. freebsd运行php,FreeBSD学习笔记16-FreeBSD下安装PHP
  7. 阿里面试官常问的TCP和UDP,你真的弄懂了吗?
  8. windows server 2012 开始菜单
  9. Contest1874 - noip基础知识五:动态规划(背包、树dp、记忆化、递推、区间、序列dp、dp优化)...
  10. AttributeError: module ‘tensorflow._api.v2.train‘ has no attribute ‘Optimizer‘
  11. wps页眉怎么设置不同页码_wps页眉的页码和页脚的页码不同怎么设置?
  12. excel单元格内容拆分_Excel分列解决不了的问题,VBA轻松搞定之拆分单元格
  13. Java double value_Java Double doubleValue()用法及代码示例
  14. 横向导航条页面居中的方法
  15. 六祎-实现微信支付宝QQ钱包三块合一收款码
  16. 深度盘点:初学者必备这 15 个 Scikit-Learn 重要技能
  17. 微软开源自有云服务器专属 Linux 发行版 CBL-Mariner,可在 GitHub 免费下载!
  18. 物联网中常提到的M2M究竟是什么?
  19. JavaScript 实现表格隔行变色
  20. Opcua学习笔记1 opc介绍

热门文章

  1. oracle查看表有某字段类型,oracle查看某表字段类型
  2. muduo学习笔记:base部分之高性能日志库
  3. 4.30-5.1cf补题
  4. 易乐游无盘服务器虚拟内存,剑灵提示报错BladeSoul by bloodlust(此方法可解决大部分游戏兼容性问题)...
  5. ogr2ogr shp转换kml ERROR 4: Unable to open Contour_map.shx
  6. oracle里面concat函数用法,oracle wm_concat函数用法-Oracle
  7. 运营商重构IDC 微模块机房需求爆发
  8. PS发光眩光合成插件Glow Glare中文版(支持ps2020)
  9. 在线压缩html/css/js文件成一行
  10. python虚拟环境virtualenv