diff --git a/README.md b/README.md index 48fd21106..7b56e51b1 100644 --- a/README.md +++ b/README.md @@ -2599,6 +2599,14 @@ http://localhost:3000/api/jasder/forge/update_trustie_pipeline.json | jq |owner |是|string |用户登录名 | |repo |是|string |project's identifier | |ref |否|string |分支名称、tag名称或是提交记录id,默认为master分支 | +|filepath |是|string |文件相对于仓库的路径(或修改后的文件路径) | +|from_path |是|string |原文件相对于仓库的路径, 只有当需要修改原文件名称时,才需要该参数 | +|sha |是|string |文件的sha标识值 | +|content |是|string |内容 | +|message |否|string |提交说明 | +|branch |否|string |分支名称, branch和new_branch必须存在一个,且只能存在一个 | +|new_branch |否|string |新的分支名称 | +|ci_language_id |否|string |新的分支名称 | *返回参数说明:* @@ -2729,6 +2737,16 @@ curl -X GET \ http://localhost:3000/api/Jason/forge/builds | jq ``` +*请求参数说明:* + +|参数名|必选|类型|说明| +|-|-|-|-| +|owner |是|string |项目拥有者 | +|repo |是|string |项目identifier | +|page |否|string |页数,第几页 | +|limit |否|string |每页多少条数据,默认20条 | +|search |是|string |构建状态条件过滤; 值说明:pending: 准备中,failure: 构建失败,running: 运行中,error:构建失败(.trustie-pipeline.yml文件错误),success: 构建成功 | + *返回参数说明:* |参数名|类型|说明| diff --git a/app/helpers/ci/builds_helper.rb b/app/helpers/ci/builds_helper.rb index 41c92229a..02707bec3 100644 --- a/app/helpers/ci/builds_helper.rb +++ b/app/helpers/ci/builds_helper.rb @@ -1,10 +1,12 @@ module Ci::BuildsHelper def format_utc_time(unix_time) Rails.logger.info "00000000000000 #{unix_time}" + return nil if unix_time.blank? DateTime.strptime(unix_time.to_s,'%s').strftime("%Y-%m-%d %H:%M") end def render_duartion_time(end_time, start_time) - (end_time - start_time) / 10000 + return nil if end_time == 0 + game_spend_time(end_time - start_time) end end diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index b119c9d98..e1d1832f4 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -3,4 +3,11 @@ class Ci::Build < Ci::RemoteBase belongs_to :repo, foreign_key: :build_repo_id has_many :stages, foreign_key: "stage_build_id", dependent: :destroy + + scope :successed, ->{ by_status('success') } + scope :failed, -> { by_status('failure') } + scope :running, -> { by_status('running') } + scope :errored, -> { by_status('error') } + scope :pending, -> { by_status('pending') } + scope :by_status, ->(status) { where(build_status: status) } end diff --git a/app/models/ci/repo.rb b/app/models/ci/repo.rb index 83092d9cd..8c82f4227 100644 --- a/app/models/ci/repo.rb +++ b/app/models/ci/repo.rb @@ -16,4 +16,11 @@ class Ci::Repo < Ci::RemoteBase [user, repo] end + def enable + update_column(:repo_config, '.trustie-pipeline.yml') + end + + def activate + + end end diff --git a/app/queries/ci/builds/list_query.rb b/app/queries/ci/builds/list_query.rb index b86fbd7da..4577045f6 100644 --- a/app/queries/ci/builds/list_query.rb +++ b/app/queries/ci/builds/list_query.rb @@ -11,8 +11,23 @@ class Ci::Builds::ListQuery < ApplicationQuery end def call - course_lists = @repo.builds + scope = @repo.builds - custom_sort(course_lists, params[:sort_by], params[:sort_direction]) + scope = + case params[:search] + when 'success' + scope.successed + when 'pending' + scope.pending + when 'error' + scope.errored + when 'running' + scope.running + when 'failure' + scope.failed + else + scope + end + custom_sort(scope, params[:sort_by], params[:sort_direction]) end end diff --git a/app/views/ci/builds/_author.json.jbuilder b/app/views/ci/builds/_author.json.jbuilder new file mode 100644 index 000000000..280f7ef98 --- /dev/null +++ b/app/views/ci/builds/_author.json.jbuilder @@ -0,0 +1,4 @@ +json.id user.id +json.name user.real_name +json.login user.login +json.image_url url_to_avatar(user) diff --git a/app/views/ci/builds/_build.json.jbuilder b/app/views/ci/builds/_build.json.jbuilder index 9a90a09f1..b54d64c5e 100644 --- a/app/views/ci/builds/_build.json.jbuilder +++ b/app/views/ci/builds/_build.json.jbuilder @@ -6,7 +6,9 @@ json.event build.build_event json.action build.build_action # json.link build.build_link json.message build.build_message -json.author build.build_author +json.author do + json.partial! 'author', user: current_user +end json.started format_utc_time build.build_started json.finished format_utc_time build.build_finished json.created format_utc_time build.build_created diff --git a/app/views/ci/builds/_stage.json.jbuilder b/app/views/ci/builds/_stage.json.jbuilder index c2a079915..3a1eca9db 100644 --- a/app/views/ci/builds/_stage.json.jbuilder +++ b/app/views/ci/builds/_stage.json.jbuilder @@ -11,7 +11,7 @@ json.exit_code stage.stage_exit_code json.os stage.stage_os json.arch stage.stage_arch json.started format_utc_time(stage.stage_started) -json.stopped format_utc_time(stage.stage_stoped) +json.stopped format_utc_time(stage.stage_stopped) json.created format_utc_time(stage.stage_created) json.updated format_utc_time(stage.stage_updated) json.version stage.stage_version