From b51bccc27500cae5de06987e67d663fa0b56f70d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AF=92=E5=AF=92?= <2596194220@qq.com> Date: Sun, 10 May 2026 22:23:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .onedev-buildspec.yml | 58 ++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml index b88b87a..82a308a 100644 --- a/.onedev-buildspec.yml +++ b/.onedev-buildspec.yml @@ -1,34 +1,40 @@ version: 43 jobs: - - name: 构建项目 + - name: 构建项目 # 任务名称 steps: - # 步骤1:从代码仓库拉取源代码 - - type: CheckoutStep - name: 拉取代码 + # ========== 步骤1:拉取代码 ========== + - type: CheckoutStep # 步骤类型:检出代码 + name: 拉取代码 # 步骤名称 cloneCredential: - type: DefaultCredential # 使用默认凭证(当前用户权限) - withLfs: false # 不拉取 LFS 大文件 - withSubmodules: false # 不拉取子模块 - checkoutPath: '@project_path@' # 检出到项目路径变量指定的位置 - condition: SUCCESSFUL # 当前置步骤成功时执行 - optional: false # 此步骤不可跳过 + type: DefaultCredential # 使用默认凭证(当前用户权限) + withLfs: false # 不拉取 Git LFS 大文件 + withSubmodules: false # 不拉取子模块 + checkoutPath: '@project_path@' # 代码检出路径(OneDev 内置变量) + condition: SUCCESSFUL # 执行条件:前置步骤成功时执行 + optional: false # 不可跳过(必须执行) - # 步骤2:构建并推送 Docker 镜像 - - type: BuildImageStep - name: 构建docker镜像 - buildPath: '@project_path@' # 构建上下文路径(项目根目录) + # ========== 步骤2:构建并推送 Docker 镜像 ========== + - type: BuildImageStep # 步骤类型:构建 Docker 镜像 + name: 构建docker镜像 # 步骤名称 + buildPath: '@project_path@' # 构建上下文路径(项目根目录) output: - type: RegistryOutput # 输出类型:推送到镜像仓库 - tags: '@server@/recipe_tool/recipe_tool:latest' # 镜像标签格式:服务器地址/项目名/镜像名:版本 - registryLogins: # 镜像仓库登录配置 + type: RegistryOutput # 输出类型:推送到镜像仓库 + tags: '@server@/recipe_tool/recipe_tool:latest' # 镜像标签(服务器地址/项目名/镜像名:版本) + registryLogins: # 镜像仓库登录配置 - registryUrl: https://git.hanhan.ltd # 仓库地址(带协议) - userName: '@job_token@' # 用户名使用内置任务令牌 - passwordSecret: docker-push # 密码使用自定义密钥(需提前在 Job Secrets 中创建) - condition: SUCCESSFUL # 当前置步骤成功时执行 - optional: false # 此步骤不可跳过 + userName: '@job_token@' # 用户名:使用内置任务令牌 + passwordSecret: docker-push # 密码:使用自定义密钥(需在 Job Secrets 中创建) + condition: SUCCESSFUL # 执行条件:前置步骤成功时执行 + optional: false # 不可跳过(必须执行) - jobExecutor: docker # 使用 Docker 执行器运行此任务 - retryCondition: never # 失败时不自动重试 - maxRetries: 3 # 最大重试次数(因 retryCondition: never 实际无效) - retryDelay: 30 # 重试间隔时间(秒) - timeout: 14400 # 任务超时时间(4小时) \ No newline at end of file + # ========== 任务级别配置 ========== + jobExecutor: docker # 使用 Docker 执行器运行此任务 + triggers: # 触发器配置 + - type: BranchUpdateTrigger # 触发器类型:分支更新触发 + branches: main # 监听的分支(只有 main 分支更新时触发) + userMatch: anyone # 任何人提交都触发 + projects: recipe_tool # 监听的项目 + retryCondition: never # 失败时不自动重试 + maxRetries: 3 # 最大重试次数(因 retryCondition: never 实际无效) + retryDelay: 30 # 重试间隔时间(秒) + timeout: 14400 # 任务超时时间(14400秒 = 4小时) \ No newline at end of file