docs(cutejava): 重构项目文档结构

- 将各种数据库和中间件的配置文档移至 cutejava/docs/dockerenv 目录下
- 更新 README 中的组件截图路径
- 删除旧的控制器命名规范和警告文档
- 新增 @Validated 常用注解文档
This commit is contained in:
2025-07-29 20:04:08 +08:00
parent cbb5223c0e
commit 8a55d79efe
45 changed files with 76 additions and 150 deletions
+4 -4
View File
@@ -74,13 +74,13 @@ https://github.com/odboy-tianjun/cutejava
- CuteProductLineSelect 产品线选择框 - CuteProductLineSelect 产品线选择框
- CuteProductLineSelectPro 产品线级联选择框 - CuteProductLineSelectPro 产品线级联选择框
- CuteUserSelect 用户多选框 - CuteUserSelect 用户多选框
![CuteBusiness](./doc/images/CuteBusiness.png) ![CuteBusiness](./cutejava-front/docs/images/CuteBusiness.png)
- CuteFileUpload 上传文件到OSS, 必须结合Minio使用(上传完成后必须销毁组件) - CuteFileUpload 上传文件到OSS, 必须结合Minio使用(上传完成后必须销毁组件)
![CuteFileUpload](./doc/images/CuteFileUpload.png) ![CuteFileUpload](./cutejava-front/docs/images/CuteFileUpload.png)
- CuteFileDragUpload 支持拖拽上传文件到OSS, 必须结合Minio使用(上传完成后必须销毁组件) - CuteFileDragUpload 支持拖拽上传文件到OSS, 必须结合Minio使用(上传完成后必须销毁组件)
![CuteFileDragUpload](./doc/images/CuteFileDragUpload.png) ![CuteFileDragUpload](./cutejava-front/docs/images/CuteFileDragUpload.png)
- CutePipelineNode 流水线节点组件 - CutePipelineNode 流水线节点组件
![CutePipelineNode](./doc/images/CutePipelineNode.png) ![CutePipelineNode](./cutejava-front/docs/images/CutePipelineNode.png)
#### 系统模块 #### 系统模块

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

-3
View File
@@ -1,3 +0,0 @@
### 注意事项
long、bigdecimal放回前端时,字段尽量设置为String,否则会出现精度丢失问题
-12
View File
@@ -1,12 +0,0 @@
### MinIO
https://min.io
```shell
docker-compose -f docker-compose-minio.yml -p minio20250422 up -d
```
> tips: 不要用`127.0.0.1`或`localhost`访问,用`ip`
访问地址:[`ip地址:9090/minio`](http://192.168.101.88:9090/minio)
登录账号密码:`admin/password`
@@ -1,38 +0,0 @@
# 网桥mongo -> 方便相互通讯
#networks:
# mongo:
services:
# mongodb
mongodb:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mongo:4.4.6 # 原镜像`mongo:4.4.6`
restart: unless-stopped
#container_name: mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456
MONGO_DATA_DIR: /data/db
MONGO_LOG_DIR: /data/logs
volumes:
- ./mongodb/db:/data/db
- ./mongodb/log:/data/log
ports:
- "27017:27017"
#networks:
# - mongo
# 可视化图形工具
#adminmongo:
# image: registry.cn-hangzhou.aliyuncs.com/zhengqing/adminmongo # 原镜像`mrvautin/adminmongo`
# restart: unless-stopped
# container_name: adminmongo
# environment:
# - HOST=0.0.0.0
#depends_on:
# - 'mongodb'
# links:
# - mongodb
#ports:
# - "1234:1234"
#networks:
# - mongo
-8
View File
@@ -1,8 +0,0 @@
### MongoDB - 基于文档的通用分布式数据库
```shell
docker-compose -f docker-compose-mongodb.yml -p mongodb up -d
```
访问地址:[`http://ip地址:1234`](http://127.0.0.1:1234)
Connection string:`mongodb://admin:123456@ip地址:27017`
@@ -1,21 +0,0 @@
# 可参考: https://hub.docker.com/_/mysql
version: '3'
services:
mysql:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:8.0 # 原镜像`mysql:8.0`
container_name: mysql8 # 容器名为'mysql8'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./mysql/my.cnf:/etc/mysql/my.cnf"
- "./mysql/data:/var/lib/mysql"
# - "./mysql/conf.d:/etc/mysql/conf.d"
- "./mysql/mysql-files:/var/lib/mysql-files"
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
MYSQL_ROOT_PASSWORD: lm,101208..,. # 设置root用户密码
MYSQL_DATABASE: demo # 初始化的数据库名称
privileged: true
user: root
ports: # 映射端口
- "23306:3306"
-5
View File
@@ -1,5 +0,0 @@
### MySQL
```shell
docker-compose -f docker-compose.yml -p mysql8 up -d
```
-15
View File
@@ -1,15 +0,0 @@
### Redis
```shell
# 当前目录下所有文件赋予权限(读、写、执行)
chmod -R 777 ./redis
# 运行 -- 单机模式
docker-compose -f docker-compose-redis.yml -p redis7 up -d
```
###### 连接redis
```shell
# 密码为123456
docker exec -it redis redis-cli -a 123456
```
@@ -3,11 +3,11 @@ services:
# MinIO 社区版在 2025 年 5 月 24 日的更新中移除了 Web 管理控制台功能 # MinIO 社区版在 2025 年 5 月 24 日的更新中移除了 Web 管理控制台功能
image: minio/minio:RELEASE.2025-04-22T22-12-26Z # 原镜像`minio/minio:latest` image: minio/minio:RELEASE.2025-04-22T22-12-26Z # 原镜像`minio/minio:latest`
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./minio/data:/data" - "./minio/data:/data"
- "./minio/minio:/minio" - "./minio/minio:/minio"
- "./minio/config:/root/.minio" - "./minio/config:/root/.minio"
environment: # 设置环境变量,相当于docker run命令中的-e environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai TZ: Asia/Shanghai
LANG: en_US.UTF-8 LANG: en_US.UTF-8
#MINIO_PROMETHEUS_AUTH_TYPE: "public" #MINIO_PROMETHEUS_AUTH_TYPE: "public"
@@ -18,7 +18,7 @@ services:
driver: "json-file" driver: "json-file"
options: options:
max-size: "50m" max-size: "50m"
ports: # 映射端口 ports: # 映射端口
- "9000:9000" # 文件上传&预览端口 - "9000:9000" # 文件上传&预览端口
- "9001:9001" # 控制台访问端口 - "9001:9001" # 控制台访问端口
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-minio.yml -p minio20250422 up -d
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-minio.yml -p minio20250422 down
@@ -0,0 +1,15 @@
services:
mongodb:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mongo:4.4.6 # 原镜像`mongo:4.4.6`
restart: unless-stopped
container_name: mongodb446
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: 123456
MONGO_DATA_DIR: /data/db
MONGO_LOG_DIR: /data/logs
volumes:
- ./mongodb/db:/data/db
- ./mongodb/log:/data/log
ports:
- "27017:27017"
@@ -1,8 +1,9 @@
### 创建数据库和用户 ### 创建数据库和用户
> 一定要用admin用户执行
```sql ```sql
use use cutejava
cutejava
db.createUser({ db.createUser({
user: "cutejava", user: "cutejava",
pwd: "123456", pwd: "123456",
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-mongodb.yml -p mongodb446 up -d
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-mongodb.yml -p mongodb446 down
@@ -2,19 +2,20 @@
version: '3' version: '3'
services: services:
mysql: mysql:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:mysql-8.0 # 原镜像`mysql:8.0` image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:8.0 # 原镜像`mysql:8.0`
container_name: mysql8 # 容器名为'mysql8' container_name: mysql8 # 容器名为'mysql8'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./mysql/my.cnf:/etc/mysql/my.cnf" - "./mysql/my.cnf:/etc/mysql/my.cnf"
- "./mysql/data:/var/lib/mysql" - "./mysql/data:/var/lib/mysql"
# - "./mysql/conf.d:/etc/mysql/conf.d"
- "./mysql/mysql-files:/var/lib/mysql-files" - "./mysql/mysql-files:/var/lib/mysql-files"
environment: # 设置环境变量,相当于docker run命令中的-e environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai TZ: Asia/Shanghai
LANG: en_US.UTF-8 LANG: en_US.UTF-8
MYSQL_ROOT_PASSWORD: root # 设置root用户密码 MYSQL_ROOT_PASSWORD: lm,101208..,. # 设置root用户密码
MYSQL_DATABASE: demo # 初始化的数据库名称 MYSQL_DATABASE: demo # 初始化的数据库名称
privileged: true privileged: true
user: root user: root
ports: # 映射端口 ports: # 映射端口
- "3306:3306" - "23306:3306"
@@ -9,6 +9,8 @@ default-authentication-plugin=mysql_native_password
max_connections=1000 # 允许最大连接数 max_connections=1000 # 允许最大连接数
max_connect_errors=100 # 最大错误连接数 max_connect_errors=100 # 最大错误连接数
#sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql] [mysql]
default-character-set=utf8mb4 default-character-set=utf8mb4
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-mysql8.yml -p mysql8 up -d
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-mysql8.yml -p mysql8 down
@@ -4,11 +4,11 @@ services:
image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:7.0.5 # 镜像'redis:7.0.5' image: registry.cn-hangzhou.aliyuncs.com/zhengqing/redis:7.0.5 # 镜像'redis:7.0.5'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器 restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
command: redis-server /etc/redis/redis.conf # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置 command: redis-server /etc/redis/redis.conf # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置
environment: # 设置环境变量,相当于docker run命令中的-e environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai TZ: Asia/Shanghai
LANG: en_US.UTF-8 LANG: en_US.UTF-8
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./redis/data:/data" - "./redis/data:/data"
- "./redis/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf` - "./redis/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
ports: # 映射端口 ports: # 映射端口
- "26379:6379" - "26379:6379"
@@ -377,7 +377,7 @@ logfile ""
# Set the number of databases. The default database is DB 0, you can select # Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where # a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1 # dbid is a number between 0 and 'databases'-1
databases 100 databases 10
# By default Redis shows an ASCII art logo only when started to log to the # By default Redis shows an ASCII art logo only when started to log to the
# standard output and if the standard output is a TTY and syslog logging is # standard output and if the standard output is a TTY and syslog logging is
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-redis.yml -p redis7 up -d
+2
View File
@@ -0,0 +1,2 @@
#!/bin/bash
docker-compose -f docker-compose-redis.yml -p redis7 down
@@ -11,7 +11,7 @@
Target Server Version : 80025 (8.0.25) Target Server Version : 80025 (8.0.25)
File Encoding : 65001 File Encoding : 65001
Date: 25/07/2025 23:17:17 Date: 29/07/2025 15:23:06
*/ */
SET NAMES utf8mb4; SET NAMES utf8mb4;
@@ -146,6 +146,27 @@ CREATE TABLE `pipeline_instance` (
-- ---------------------------- -- ----------------------------
-- Records of pipeline_instance -- Records of pipeline_instance
-- ---------------------------- -- ----------------------------
INSERT INTO `pipeline_instance` VALUES (1949734313813725184, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949735698189889536, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949736689417097216, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949747709548179456, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949747726652551168, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949747780465471488, '2025-07-28 15:30:59', 'System', '2025-07-28 15:30:59', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_master', 'success', 'success', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949750592566050816, '2025-07-28 16:35:41', 'System', '2025-07-28 16:35:41', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949753030152871936, '2025-07-28 16:35:41', 'System', '2025-07-28 16:35:41', '流水线测试', 'daily', 'cuteops', NULL, 'node_build_android', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949753101254713344, '2025-07-28 16:35:41', 'System', '2025-07-28 16:35:41', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_master', 'success', 'success', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949753315009028096, '2025-07-28 16:46:30', 'System', '2025-07-28 16:46:30', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949753384575754240, '2025-07-28 16:46:30', 'System', '2025-07-28 16:46:30', '流水线测试', 'daily', 'cuteops', NULL, 'node_build_android', 'running', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949753461297963008, '2025-07-28 16:46:30', 'System', '2025-07-28 16:46:30', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_master', 'success', 'success', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949760102374367232, '2025-07-28 17:13:28', 'System', '2025-07-28 17:13:28', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949760122016292864, '2025-07-28 17:13:28', 'System', '2025-07-28 17:13:28', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949760155839160320, '2025-07-28 17:13:28', 'System', '2025-07-28 17:13:28', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_master', 'success', 'success', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949761136794591232, '2025-07-28 17:17:34', 'System', '2025-07-28 17:17:34', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_master', 'success', 'success', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949762706709995520, '2025-07-28 17:23:49', 'System', '2025-07-28 17:23:49', '流水线测试', 'daily', 'cuteops', NULL, 'node_sign_android_apk', 'running', 'running', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949763094402060288, '2025-07-28 17:23:49', 'System', '2025-07-28 17:23:49', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949763512100212736, '2025-07-28 17:27:01', 'System', '2025-07-28 17:27:01', '流水线测试', 'daily', 'cuteops', NULL, 'node_init', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949764704150851584, '2025-07-28 17:31:45', 'System', '2025-07-28 17:31:45', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
INSERT INTO `pipeline_instance` VALUES (1949765134918455296, '2025-07-28 17:33:28', 'System', '2025-07-28 17:33:28', '流水线测试', 'daily', 'cuteops', NULL, 'node_merge_branch', 'fail', 'fail', 21, 'mobile', '[{\"code\":\"node_init\",\"type\":\"service\",\"name\":\"初始化\"},{\"code\":\"node_merge_branch\",\"type\":\"service\",\"name\":\"合并代码\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_build_android\",\"type\":\"service\",\"name\":\"构建\",\"click\":\"true\",\"retry\":\"true\",\"detailType\":\"gitlab\",\"parameters\":{\"pipeline\":\"pipeline-android-test\"},\"buttons\":[{\"type\":\"qrCodeDialog\",\"title\":\"查看APK二维码\",\"code\":\"openQrCode\",\"parameters\":{}}]},{\"code\":\"node_upload_android_apk\",\"type\":\"service\",\"name\":\"Android APK上传\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_reinforce_android_apk\",\"type\":\"service\",\"name\":\"Android APK加固\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_sign_android_apk\",\"type\":\"service\",\"name\":\"签名\",\"click\":\"true\",\"retry\":\"true\"},{\"code\":\"node_merge_confirm\",\"type\":\"service\",\"name\":\"合并确认\",\"click\":\"false\",\"retry\":\"false\",\"buttons\":[{\"type\":\"execute\",\"title\":\"通过\",\"code\":\"agree\",\"parameters\":{}}]},{\"code\":\"node_merge_master\",\"type\":\"service\",\"name\":\"合并回Master\",\"click\":\"false\",\"retry\":\"true\"}]');
-- ---------------------------- -- ----------------------------
-- Table structure for pipeline_template -- Table structure for pipeline_template
+3
View File
@@ -0,0 +1,3 @@
### 注意事项
long、bigdecimal返回前端时,字段尽量设置为String,否则会出现精度丢失问题
-3
View File
@@ -1,3 +0,0 @@
port: 13306
username: root
password: root
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
docker-compose -f docker-compose-mysql.yml -p mysql8 up -d
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
docker-compose -p mysql8 down
-16
View File
@@ -1,16 +0,0 @@
version: '3'
services:
redis:
image: registry.cn-shanghai.aliyuncs.com/odboy/ops:redis-7.0.5 # 镜像'redis:7.0.5'
container_name: redis7 # 容器名为'redis'
restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
command: redis-server /etc/redis/redis.conf --requirepass 123456 --appendonly no # 启动redis服务并添加密码为:123456,默认不开启redis-aof方式持久化配置
# command: redis-server --requirepass 123456 --appendonly yes # 启动redis服务并添加密码为:123456,并开启redis持久化配置
environment: # 设置环境变量,相当于docker run命令中的-e
TZ: Asia/Shanghai
LANG: en_US.UTF-8
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "./redis/data:/data"
- "./redis/config/redis.conf:/etc/redis/redis.conf" # `redis.conf`文件内容`http://download.redis.io/redis-stable/redis.conf`
ports: # 映射端口
- "6379:6379"
-2
View File
@@ -1,2 +0,0 @@
port: 16379
password: 123456
-5
View File
@@ -1,5 +0,0 @@
#!/bin/bash
# 当前目录下所有文件赋予权限(读、写、执行)
chmod -R 777 ./redis
# 运行 -- 单机模式
docker-compose -f docker-compose-redis.yml -p redis7 up -d
-1
View File
@@ -1 +0,0 @@
docker-compose -p redis7 down