fixed 图形化流水线构建细节调整
This commit is contained in:
parent
ddaa6f7aec
commit
785869d48a
|
@ -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}"
|
||||
|
@ -365,8 +395,8 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
{
|
||||
"id": "git-clone-245734ab",
|
||||
"category_id": 1,
|
||||
"component_name": "scp",
|
||||
"component_label": "scp",
|
||||
"component_name": "shell",
|
||||
"component_label": "执行shell命令",
|
||||
"working_directory": "",
|
||||
"command": "",
|
||||
"in_parameters": {
|
||||
|
@ -381,7 +411,30 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
|||
"describe": "代码仓库地址",
|
||||
"editable": 1,
|
||||
"condition": "",
|
||||
"value": "service nginx restart"
|
||||
"value": "echo env"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "git-clone-245734ab",
|
||||
"category_id": 1,
|
||||
"component_name": "scp",
|
||||
"component_label": "scp",
|
||||
"working_directory": "",
|
||||
"command": "",
|
||||
"in_parameters": {
|
||||
"--host": {
|
||||
"type": "str",
|
||||
"item_type": "",
|
||||
"label": "代码仓库地址",
|
||||
"require": 1,
|
||||
"choice": [],
|
||||
"default": "",
|
||||
"placeholder": "私有仓库填写ssh地址,公有仓库填写https git地址",
|
||||
"describe": "代码仓库地址",
|
||||
"editable": 1,
|
||||
"condition": "",
|
||||
"value": "192.168.1.114"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class Action::Node < ApplicationRecord
|
|||
|
||||
belongs_to :user, optional: true
|
||||
|
||||
attr_accessor :cust_name, :input_values
|
||||
attr_accessor :cust_name, :run_values, :input_values
|
||||
|
||||
|
||||
def content_yaml
|
||||
|
|
|
@ -45,11 +45,18 @@ jobs:
|
|||
steps:
|
||||
<%@steps_nodes.each do |node| %>
|
||||
- name: <%=node.cust_name || node.name %>
|
||||
<% if node.name !="shell" %>
|
||||
uses: <%=node.full_name %>
|
||||
<% end %>
|
||||
<%if node.input_values.present? %>
|
||||
with:
|
||||
<% node.input_values.each_key do |key| %>
|
||||
<%=key %>: <%=node.input_values[key] %>
|
||||
<%=key %>: '<%=node.input_values[key] %>'
|
||||
<%end %>
|
||||
<%end %>
|
||||
<%if node.run_values.present? %>
|
||||
<% node.run_values.each_key do |key| %>
|
||||
<%=key %>: '<%=node.run_values[key] %>'
|
||||
<%end %>
|
||||
<%end %>
|
||||
<% end %>
|
||||
|
|
|
@ -129,7 +129,9 @@ defaults format: :json do
|
|||
end
|
||||
end
|
||||
end
|
||||
resources :pipelines
|
||||
resources :pipelines do
|
||||
get :build_yaml, on: :collection
|
||||
end
|
||||
resources :pulls, module: 'pulls' do
|
||||
resources :versions, only: [:index] do
|
||||
member do
|
||||
|
|
Loading…
Reference in New Issue