feat: complete gitea action related
This commit is contained in:
@@ -146,4 +146,57 @@ runner使用的镜像只是一个守护进程,可以理解为用来和gitea保
|
||||
|
||||
至此,runner注册完成,应该可以在管理面板查看存在的runner
|
||||
|
||||
### 第二部:编写workflow
|
||||
### 第二步:编写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没配置好,这个要自己预先设置好
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user