Skip to content

Commit 903503b

Browse files
committed
✨ feat: 新增gitea文档及相关图片
1 parent 4a0077e commit 903503b

4 files changed

Lines changed: 147 additions & 0 deletions

File tree

docs/main/CI-CD/gitea.md

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
2+
3+
gitea 有着轻量化的 git仓库和工作流程序,满足小团队进行自动化和代码私有化部署
4+
5+
## docker 安装 gitea
6+
```yml
7+
version: "3"
8+
9+
networks:
10+
gitea:
11+
external: false
12+
13+
services:
14+
server:
15+
image: docker.gitea.com/gitea:1.25.3
16+
container_name: gitea
17+
environment:
18+
- USER_UID=1000
19+
- USER_GID=1000
20+
restart: always
21+
networks:
22+
- gitea
23+
volumes:
24+
- ./gitea:/data
25+
- /etc/timezone:/etc/timezone:ro
26+
- /etc/localtime:/etc/localtime:ro
27+
ports:
28+
- "9999:3000"
29+
- "9998:22"
30+
```
31+
其中9999 是 外部访问gitea 的端口,
32+
gitea 的文件映射是存储在当前 文件夹下的 `gitea` 文件
33+
34+
创建完成后,可以访问 9999端口进行初始化操作
35+
36+
可以设置存储的数据源,有sqllit,pg,mysql ,
37+
完成后就可以进入到git仓库页面了
38+
39+
40+
41+
## 配置工作流
42+
要运行工作流需要单独的执行器容器,执行器和gitea 仓库是单独运行的
43+
首先需要先去gitea 仓库设置页找到添加工作流
44+
![alt text](./runner-image.png)
45+
复制密钥
46+
47+
```shell
48+
docker run -d \
49+
--name=gitea-runner \
50+
--restart=always \
51+
-v /var/run/docker.sock:/var/run/docker.sock \
52+
-v ./act_runner_data:/data \
53+
-e GITEA_INSTANCE_URL=http://127.0.0.1:9999/ \
54+
-e GITEA_RUNNER_REGISTRATION_TOKEN=lms3AptwrMx1afLSVzfPWDAEogrkjYBAosxro2Sm \
55+
-e GITEA_RUNNER_NAME=my-docker-runner \
56+
-e GITEA_RUNNER_LABELS=ubuntu-latest,docker \
57+
gitea/act_runner:latest
58+
```
59+
其中 `GITEA_RUNNER_REGISTRATION_TOKEN` 的值就是上述图片复制的密钥
60+
`GITEA_INSTANCE_URL` 是gitea 的访问路径
61+
62+
63+
## action 插件迁移
64+
gitea 的工作流插件是和github 使用的同一套,为了避免去github 拉取插件导致工作流卡住,我们需要迁移一些常用的action 到我们的gitea 私有仓库中
65+
1。 首先去gitea 注册一个账号 https://gitea.com/actions
66+
67+
这个页面存储了官方的action 插件
68+
69+
我们需要去个人设置页面找到添加 应用令牌 https://gitea.com/user/settings/applications
70+
申请一个 Access Token
71+
72+
然后复制一个自己需要的action 插件的 git 地址,例如 https://gitea.com/actions/checkout.git
73+
74+
然后在自己私有仓库,点击迁移仓库
75+
![alt text](./qianyi.png)
76+
选择从gitea 导入
77+
78+
![alt text](./image-1.png)
79+
80+
点击迁移就可以 导入插件了
81+
82+
83+
## 使用本地仓库的插件
84+
85+
```yml
86+
name: Analyze Risk
87+
88+
on:
89+
push:
90+
branches:
91+
- '**'
92+
93+
jobs:
94+
analyze-risk:
95+
runs-on: ubuntu-latest
96+
container:
97+
image: node-python-env
98+
steps:
99+
- name: 检出代码
100+
uses: http://10.254.91.129:9999/zhangtengfei/checkout@main
101+
102+
- name: 设置 Python 环境
103+
uses: http://10.254.91.129:9999/zhangtengfei/setup-python@main
104+
105+
- name: 安装依赖
106+
run: |
107+
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
108+
109+
- name: 执行 analyze_risk.py
110+
run: |
111+
python3 多因子/analyze_risk.py
112+
113+
- name: 保存导出文件
114+
uses: http://10.254.91.129:9999/zhangtengfei/upload-artifact@v3
115+
with:
116+
name: 风险统计分析
117+
path: 多因子/
118+
119+
```
120+
这里给了一个案例
121+
需要在uses 这里的插件名称使用http/https 开头的全路径即可访问内部仓库的插件,就不会被网络卡住了
122+
123+
124+
工作流文件需要存储在`.gitea/workflows/main.yml` 中
125+
126+
## 结尾
127+
由于拉取的系统 没有包含常用的语言依赖,就会在每次都需要写一个apt 去安装各种依赖,浪费很多时间
128+
129+
可以自己构建一个镜像,使用本地镜像把常用的语言依赖 构建器都存入,
130+
```yml
131+
FROM node:20-bullseye
132+
133+
# 更换为阿里云 Debian 源,加速依赖安装
134+
RUN sed -i 's@deb.debian.org@mirrors.aliyun.com@g' /etc/apt/sources.list && \
135+
apt-get update && \
136+
apt-get install -y python3 python3-pip && \
137+
rm -rf /var/lib/apt/lists/*
138+
139+
WORKDIR /workspace
140+
141+
CMD [ "bash" ]
142+
```
143+
构建这么一个镜像,接着在工作流中声明使用即可
144+
```yml
145+
container:
146+
image: node-python-env
147+
```

docs/main/CI-CD/image-1.png

76.7 KB
Loading

docs/main/CI-CD/qianyi.png

12.6 KB
Loading

docs/main/CI-CD/runner-image.png

73.2 KB
Loading

0 commit comments

Comments
 (0)