|
|
|
@@ -22,6 +22,23 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
render_ok({ id: @pipeline.id }) |
|
|
|
end |
|
|
|
|
|
|
|
def build_yaml |
|
|
|
# pipeline = params[:pipeline] |
|
|
|
# @name = params[:name] |
|
|
|
# params_nodes = JSON.parse(pipeline)["nodes"].select { |node| !["on-push", "on-schedule"].include?(node["component_name"]) } |
|
|
|
# on_nodes = JSON.parse(pipeline)["nodes"].select { |node| ["on-push", "on-schedule"].include?(node["component_name"]) } |
|
|
|
# @on_nodes = build_nodes(on_nodes) |
|
|
|
# @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 = build_test_yaml |
|
|
|
render plain: @pipeline_yaml |
|
|
|
# respond_to do |format| |
|
|
|
# format.text { render yaml: @pipeline_yaml } |
|
|
|
# end |
|
|
|
end |
|
|
|
|
|
|
|
def update |
|
|
|
@pipeline = Action::Pipeline.find(params[:id]) |
|
|
|
@pipeline.update!(pipeline_name: params[:pipeline_name]) |
|
|
|
@@ -42,7 +59,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
|
|
|
|
def show |
|
|
|
@pipeline = Action::Pipeline.find_by(id: params[:id]) |
|
|
|
@pipeline = Action::Pipeline.new(id: 0, pipeline_name: "test-ss", yaml: build_yaml) if @pipeline.blank? |
|
|
|
@pipeline = Action::Pipeline.new(id: 0, pipeline_name: "test-ss", yaml: build_test_yaml) if @pipeline.blank? |
|
|
|
end |
|
|
|
|
|
|
|
def build_pipeline_yaml(pipeline) |
|
|
|
@@ -61,7 +78,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
@pipeline_yaml |
|
|
|
end |
|
|
|
|
|
|
|
def build_yaml |
|
|
|
def build_test_yaml |
|
|
|
@name = "love me" |
|
|
|
params_nodes = JSON.parse(demo.to_json)["nodes"].select { |node| !["on-push", "on-schedule"].include?(node["component_name"]) } |
|
|
|
on_nodes = JSON.parse(demo.to_json)["nodes"].select { |node| ["on-push", "on-schedule"].include?(node["component_name"]) } |
|
|
|
@@ -71,16 +88,23 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
# Rails.logger.info "input_node=====0===#{input_node["component_name"]}======#{input_node["in_parameters"]}" |
|
|
|
node = Action::Node.find_by(name: input_node["component_name"]) |
|
|
|
node.cust_name = input_node["component_label"] if input_node["component_label"].present? |
|
|
|
run_values = {} |
|
|
|
input_values = {} |
|
|
|
if input_node["in_parameters"].present? |
|
|
|
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}" |
|
|
|
input_node["in_parameters"].each_key do |input_key| |
|
|
|
# Rails.logger.info "@in_parameters.input_key===#{input_key}" |
|
|
|
# Rails.logger.info "@in_parameters.input_value===#{input_node["in_parameters"][input_key]["value"]}" |
|
|
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
if input_key.to_s.gsub("--", "") == "run" |
|
|
|
run_values = run_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
else |
|
|
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
end |
|
|
|
end |
|
|
|
node.run_values = run_values |
|
|
|
node.input_values = input_values |
|
|
|
# Rails.logger.info "@input_values node===#{node.input_values.to_json}" |
|
|
|
# Rails.logger.info "@input_values run_values===#{node.run_values.to_json}" |
|
|
|
# Rails.logger.info "@input_values input_values===#{node.input_values.to_json}" |
|
|
|
end |
|
|
|
@steps_nodes.push(node) |
|
|
|
end |
|
|
|
@@ -124,14 +148,20 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
params_nodes.each do |input_node| |
|
|
|
node = Action::Node.find_by(name: input_node["component_name"]) |
|
|
|
node.cust_name = input_node["component_label"] if input_node["component_label"].present? |
|
|
|
run_values = {} |
|
|
|
input_values = {} |
|
|
|
if input_node["in_parameters"].present? |
|
|
|
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}" |
|
|
|
input_node["in_parameters"].each_key do |input_key| |
|
|
|
# Rails.logger.info "@in_parameters.input_key===#{input_key}" |
|
|
|
# Rails.logger.info "@in_parameters.input_value===#{input_node["in_parameters"][input_key]["value"]}" |
|
|
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
if input_key.to_s.gsub("--", "") == "run" |
|
|
|
run_values = run_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
else |
|
|
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" }) |
|
|
|
end |
|
|
|
end |
|
|
|
node.run_values = run_values |
|
|
|
# Rails.logger.info "@input_values node1===#{input_values}" |
|
|
|
node.input_values = input_values |
|
|
|
# Rails.logger.info "@input_values node===#{node.input_values.to_json}" |
|
|
|
@@ -362,6 +392,29 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "git-clone-245734ab", |
|
|
|
"category_id": 1, |
|
|
|
"component_name": "shell", |
|
|
|
"component_label": "执行shell命令", |
|
|
|
"working_directory": "", |
|
|
|
"command": "", |
|
|
|
"in_parameters": { |
|
|
|
"--run": { |
|
|
|
"type": "str", |
|
|
|
"item_type": "", |
|
|
|
"label": "代码仓库地址", |
|
|
|
"require": 1, |
|
|
|
"choice": [], |
|
|
|
"default": "", |
|
|
|
"placeholder": "私有仓库填写ssh地址,公有仓库填写https git地址", |
|
|
|
"describe": "代码仓库地址", |
|
|
|
"editable": 1, |
|
|
|
"condition": "", |
|
|
|
"value": "echo env" |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
"id": "git-clone-245734ab", |
|
|
|
"category_id": 1, |
|
|
|
@@ -370,7 +423,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
"working_directory": "", |
|
|
|
"command": "", |
|
|
|
"in_parameters": { |
|
|
|
"--run": { |
|
|
|
"--host": { |
|
|
|
"type": "str", |
|
|
|
"item_type": "", |
|
|
|
"label": "代码仓库地址", |
|
|
|
@@ -381,7 +434,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController |
|
|
|
"describe": "代码仓库地址", |
|
|
|
"editable": 1, |
|
|
|
"condition": "", |
|
|
|
"value": "service nginx restart" |
|
|
|
"value": "192.168.1.114" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|