From 37e446812d59c63d951a918a5655842940186d07 Mon Sep 17 00:00:00 2001 From: merlin Date: Wed, 22 Oct 2025 17:11:29 +0800 Subject: [PATCH] feat: complete gitea action related --- 配置gitea的action用来执行ci操作.md | 55 +++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/配置gitea的action用来执行ci操作.md b/配置gitea的action用来执行ci操作.md index c755672..6fc56be 100644 --- a/配置gitea的action用来执行ci操作.md +++ b/配置gitea的action用来执行ci操作.md @@ -146,4 +146,57 @@ runner使用的镜像只是一个守护进程,可以理解为用来和gitea保 至此,runner注册完成,应该可以在管理面板查看存在的runner -### 第二部:编写workflow \ No newline at end of file +### 第二步:编写workflow + +先上代码: + +``` +name: Docker Image CI +on: + push: + branches: + - main + +jobs: + build: + runs-on: gitea-official-runner + container: + image: harbor.merlin.xin/testing/merlin/builder:v0.0.0 + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: see ls + run: ls +``` + +**关键** + +on:触发条件,push、pull等,再加上branches,就像例子中的层级关系一样 + +jobs:任务列表,可以写多个,会根据第一步中的配置判断是否并行 + +重点是jobs里面操作的container,多数情况下,我们会使用第三方镜像去构建docker镜像,但是要注意可能需要node环境执行脚本 + +如果你的steps里面包含了github action的官方脚本比如actions/checkout@v4,那么就要求container镜像里面得包含node环境 + +gitea不像gitlab,gitea action不会自动把代码拉取到运行环境,所以目前actions/checkout@v4这个脚本基本上必须要有 + +你自己运行git clone也行,但是要自己处理私有仓库的认证问题,很麻烦;脚本会自己生成临时token,与gitea配合拉取代码 + +所以后面你想用三方镜像,要么镜像自带node,要么自己打包一个node进去 + +### 第三步:触发action + +通过推送代码触发ci,观察一下日志的输出结果 + +有报错的话做一下细微的调整就好 + + + +### 注意事项/容易踩坑 + +**构建容器的容器网络联通性** + +如果出现steps里面的操作无法上网,那就是coontainer.network没配置好,这个要自己预先设置好 + +