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 })
|
render_ok({ id: @pipeline.id })
|
||||||
end
|
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
|
def update
|
||||||
@pipeline = Action::Pipeline.find(params[:id])
|
@pipeline = Action::Pipeline.find(params[:id])
|
||||||
@pipeline.update!(pipeline_name: params[:pipeline_name])
|
@pipeline.update!(pipeline_name: params[:pipeline_name])
|
||||||
|
@ -42,7 +59,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@pipeline = Action::Pipeline.find_by(id: params[:id])
|
@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
|
end
|
||||||
|
|
||||||
def build_pipeline_yaml(pipeline)
|
def build_pipeline_yaml(pipeline)
|
||||||
|
@ -61,7 +78,7 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
||||||
@pipeline_yaml
|
@pipeline_yaml
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_yaml
|
def build_test_yaml
|
||||||
@name = "love me"
|
@name = "love me"
|
||||||
params_nodes = JSON.parse(demo.to_json)["nodes"].select { |node| !["on-push", "on-schedule"].include?(node["component_name"]) }
|
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"]) }
|
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"]}"
|
# 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 = Action::Node.find_by(name: input_node["component_name"])
|
||||||
node.cust_name = input_node["component_label"] if input_node["component_label"].present?
|
node.cust_name = input_node["component_label"] if input_node["component_label"].present?
|
||||||
|
run_values = {}
|
||||||
input_values = {}
|
input_values = {}
|
||||||
if input_node["in_parameters"].present?
|
if input_node["in_parameters"].present?
|
||||||
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}"
|
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}"
|
||||||
input_node["in_parameters"].each_key do |input_key|
|
input_node["in_parameters"].each_key do |input_key|
|
||||||
# Rails.logger.info "@in_parameters.input_key===#{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"]}"
|
# Rails.logger.info "@in_parameters.input_value===#{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"]}" })
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" })
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
node.run_values = run_values
|
||||||
node.input_values = input_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
|
end
|
||||||
@steps_nodes.push(node)
|
@steps_nodes.push(node)
|
||||||
end
|
end
|
||||||
|
@ -124,14 +148,20 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
||||||
params_nodes.each do |input_node|
|
params_nodes.each do |input_node|
|
||||||
node = Action::Node.find_by(name: input_node["component_name"])
|
node = Action::Node.find_by(name: input_node["component_name"])
|
||||||
node.cust_name = input_node["component_label"] if input_node["component_label"].present?
|
node.cust_name = input_node["component_label"] if input_node["component_label"].present?
|
||||||
|
run_values = {}
|
||||||
input_values = {}
|
input_values = {}
|
||||||
if input_node["in_parameters"].present?
|
if input_node["in_parameters"].present?
|
||||||
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}"
|
# Rails.logger.info "@in_parameters=====11===#{input_node["component_name"]}======#{input_node["in_parameters"]}"
|
||||||
input_node["in_parameters"].each_key do |input_key|
|
input_node["in_parameters"].each_key do |input_key|
|
||||||
# Rails.logger.info "@in_parameters.input_key===#{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"]}"
|
# Rails.logger.info "@in_parameters.input_value===#{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"]}" })
|
input_values = input_values.merge({ "#{input_key.gsub("--", "")}": "#{input_node["in_parameters"][input_key]["value"]}" })
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
node.run_values = run_values
|
||||||
# Rails.logger.info "@input_values node1===#{input_values}"
|
# Rails.logger.info "@input_values node1===#{input_values}"
|
||||||
node.input_values = input_values
|
node.input_values = input_values
|
||||||
# Rails.logger.info "@input_values node===#{node.input_values.to_json}"
|
# 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",
|
"id": "git-clone-245734ab",
|
||||||
"category_id": 1,
|
"category_id": 1,
|
||||||
"component_name": "scp",
|
"component_name": "shell",
|
||||||
"component_label": "scp",
|
"component_label": "执行shell命令",
|
||||||
"working_directory": "",
|
"working_directory": "",
|
||||||
"command": "",
|
"command": "",
|
||||||
"in_parameters": {
|
"in_parameters": {
|
||||||
|
@ -381,7 +411,30 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController
|
||||||
"describe": "代码仓库地址",
|
"describe": "代码仓库地址",
|
||||||
"editable": 1,
|
"editable": 1,
|
||||||
"condition": "",
|
"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
|
belongs_to :user, optional: true
|
||||||
|
|
||||||
attr_accessor :cust_name, :input_values
|
attr_accessor :cust_name, :run_values, :input_values
|
||||||
|
|
||||||
|
|
||||||
def content_yaml
|
def content_yaml
|
||||||
|
|
|
@ -45,11 +45,18 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
<%@steps_nodes.each do |node| %>
|
<%@steps_nodes.each do |node| %>
|
||||||
- name: <%=node.cust_name || node.name %>
|
- name: <%=node.cust_name || node.name %>
|
||||||
|
<% if node.name !="shell" %>
|
||||||
uses: <%=node.full_name %>
|
uses: <%=node.full_name %>
|
||||||
|
<% end %>
|
||||||
<%if node.input_values.present? %>
|
<%if node.input_values.present? %>
|
||||||
with:
|
with:
|
||||||
<% node.input_values.each_key do |key| %>
|
<% 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 %>
|
<%end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -129,7 +129,9 @@ defaults format: :json do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
resources :pipelines
|
resources :pipelines do
|
||||||
|
get :build_yaml, on: :collection
|
||||||
|
end
|
||||||
resources :pulls, module: 'pulls' do
|
resources :pulls, module: 'pulls' do
|
||||||
resources :versions, only: [:index] do
|
resources :versions, only: [:index] do
|
||||||
member do
|
member do
|
||||||
|
|
Loading…
Reference in New Issue