构建流水线yaml, 返回json
This commit is contained in:
parent
790a7eeb8c
commit
8c077ef9a8
|
@ -10,7 +10,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
size = Action::Pipeline.where(pipeline_name: params[:pipeline_name], project_id: @project.id).size
|
||||
tip_exception("已经存在#{params[:pipeline_name]}流水线!") if size > 0
|
||||
@pipeline = Action::Pipeline.new(pipeline_name: params[:pipeline_name], project_id: @project.id)
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yaml"
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yml"
|
||||
@pipeline.branch = params[:branch] || @project.default_branch
|
||||
@pipeline.json = params[:pipeline_json].to_json
|
||||
pipeline_yaml = build_pipeline_yaml(params[:pipeline_name], params[:pipeline_json])
|
||||
|
@ -26,7 +26,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
|
||||
def save_yaml
|
||||
@pipeline = Action::Pipeline.new(pipeline_name: params[:pipeline_name], project_id: @project.id)
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yaml"
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yml"
|
||||
@pipeline.branch = params[:branch] || @project.default_branch
|
||||
@pipeline.json = params[:pipeline_json].to_json
|
||||
pipeline_yaml = build_pipeline_yaml(params[:pipeline_name], params[:pipeline_json])
|
||||
|
@ -35,22 +35,23 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
sha = get_pipeline_file_sha(@pipeline.file_name, @pipeline.branch)
|
||||
interactor = sha.present? ? Gitea::UpdateFileInteractor.call(current_user.gitea_token, @owner.login, content_params("update").merge(sha: sha)) : Gitea::CreateFileInteractor.call(current_user.gitea_token, @owner.login, content_params("create"))
|
||||
tip_exception(interactor.error) unless interactor.success?
|
||||
render_ok
|
||||
render_ok({ pipeline_yaml: pipeline_yaml })
|
||||
end
|
||||
|
||||
def build_yaml
|
||||
if params[:pipeline_json].present?
|
||||
@pipeline_yaml = build_pipeline_yaml(params[:pipeline_name], params[:pipeline_json])
|
||||
pipeline_yaml = build_pipeline_yaml(params[:pipeline_name], params[:pipeline_json])
|
||||
else
|
||||
@pipeline_yaml = build_test_yaml
|
||||
pipeline_yaml = build_test_yaml
|
||||
end
|
||||
render plain: @pipeline_yaml
|
||||
# render plain: pipeline_yaml
|
||||
render_ok({ pipeline_yaml: pipeline_yaml })
|
||||
end
|
||||
|
||||
def update
|
||||
@pipeline = Action::Pipeline.find(params[:id])
|
||||
@pipeline.pipeline_name = params[:pipeline_name]
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yaml"
|
||||
@pipeline.file_name = ".gitea/workflows/#{@pipeline.pipeline_name}.yml"
|
||||
@pipeline.branch = params[:branch] || @project.default_branch
|
||||
@pipeline.json = params[:pipeline_json].to_json
|
||||
pipeline_yaml = build_pipeline_yaml(params[:pipeline_name], params[:pipeline_json])
|
||||
|
@ -87,11 +88,11 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
@steps_nodes = build_nodes(params_nodes)
|
||||
yaml = ERB.new(File.read(File.join(Rails.root, "app/views/api/v1/projects/pipelines", "build_pipeline.yaml.erb"))).result(binding)
|
||||
# 删除空行内容
|
||||
@pipeline_yaml = yaml.gsub(/^\s*\n/, "")
|
||||
pipeline_yaml = yaml.gsub(/^\s*\n/, "")
|
||||
else
|
||||
@pipeline_yaml = params[:pipeline_yaml]
|
||||
pipeline_yaml = params[:pipeline_yaml]
|
||||
end
|
||||
@pipeline_yaml
|
||||
pipeline_yaml
|
||||
end
|
||||
|
||||
def build_test_yaml
|
||||
|
@ -128,10 +129,10 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
Rails.logger.info "@@on_nodes===#{@on_nodes.to_json}"
|
||||
Rails.logger.info "@steps_nodes===#{@steps_nodes.to_json}"
|
||||
yaml = ERB.new(File.read(File.join(Rails.root, "app/views/api/v1/projects/pipelines", "build_pipeline.yaml.erb"))).result(binding)
|
||||
@pipeline_yaml = yaml.gsub(/^\s*\n/, "")
|
||||
pipeline_yaml = yaml.gsub(/^\s*\n/, "")
|
||||
Rails.logger.info "========================="
|
||||
Rails.logger.info @pipeline_yaml
|
||||
@pipeline_yaml
|
||||
Rails.logger.info pipeline_yaml
|
||||
pipeline_yaml
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -149,7 +150,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
|
||||
def content_params(opt)
|
||||
{
|
||||
filepath: ".gitea/workflows/#{@pipeline.pipeline_name}.yaml",
|
||||
filepath: ".gitea/workflows/#{@pipeline.pipeline_name}.yml",
|
||||
branch: @pipeline.branch,
|
||||
new_branch: @pipeline.branch,
|
||||
content: Base64.encode64(@pipeline.yaml),
|
||||
|
|
Loading…
Reference in New Issue