diff --git a/app/controllers/api/v1/projects/pipelines_controller.rb b/app/controllers/api/v1/projects/pipelines_controller.rb index efe085de0..28470d4fd 100644 --- a/app/controllers/api/v1/projects/pipelines_controller.rb +++ b/app/controllers/api/v1/projects/pipelines_controller.rb @@ -258,16 +258,22 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController node.node_id = input_node["id"] if input_node["id"].present? run_values = {} input_values = {} + env_input_values = {} if input_node["data"]["inputs"].present? input_node["data"]["inputs"].each do |input| if input["name"].to_s.gsub("--", "") == "run" run_values = run_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) else - input_values = input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + if input["type"] == "Action::NodeInputs::Env" + env_input_values = env_input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + else + input_values = input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + end end end node.run_values = run_values node.input_values = input_values + node.env_input_values = env_input_values end steps_nodes.push(node) end @@ -291,16 +297,22 @@ class Api::V1::Projects::PipelinesController < Api::V1::BaseController node.node_id = input_node["id"] if input_node["id"].present? run_values = {} input_values = {} + env_input_values = {} if input_node["data"]["inputs"].present? input_node["data"]["inputs"].each do |input| if input["name"].to_s.gsub("--", "") == "run" run_values = run_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) else - input_values = input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + if input["type"] == "Action::NodeInputs::Env" + env_input_values = env_input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + else + input_values = input_values.merge({ "#{input["name"].gsub("--", "")}": "#{input["value"]}" }) + end end end node.run_values = run_values node.input_values = input_values + node.env_input_values = env_input_values end node end diff --git a/app/models/action/node.rb b/app/models/action/node.rb index de5687145..6e2842bef 100644 --- a/app/models/action/node.rb +++ b/app/models/action/node.rb @@ -38,7 +38,7 @@ class Action::Node < ApplicationRecord belongs_to :user, optional: true - attr_accessor :cust_name, :run_values, :input_values, :parent_node_id, :sub_nodes, :link_type_array, :node_id + attr_accessor :cust_name, :run_values, :input_values, :env_input_values, :parent_node_id, :sub_nodes, :link_type_array, :node_id validates :name, presence: { message: "不能为空" }, uniqueness: true validates :full_name, length: { maximum: 200, too_long: "不能超过200个字符" } diff --git a/app/views/api/v1/projects/pipelines/_jobs.yaml.erb b/app/views/api/v1/projects/pipelines/_jobs.yaml.erb index 4f54cdc0a..95d3eb842 100644 --- a/app/views/api/v1/projects/pipelines/_jobs.yaml.erb +++ b/app/views/api/v1/projects/pipelines/_jobs.yaml.erb @@ -13,6 +13,12 @@ jobs: <% if node.name !="shell" %> uses: <%=node.full_name %> <% end %> + <%if node.env_input_values.present? %> + env: + <% node.env_input_values.each_key do |key| %> + <%=key %>: '<%=node.env_input_values[key] %>' + <%end %> + <%end %> <%if node.input_values.present? %> with: <% node.input_values.each_key do |key| %> diff --git a/app/views/api/v1/projects/pipelines/build_pipeline.yaml.erb b/app/views/api/v1/projects/pipelines/build_pipeline.yaml.erb index 41908c8f5..036fe446e 100644 --- a/app/views/api/v1/projects/pipelines/build_pipeline.yaml.erb +++ b/app/views/api/v1/projects/pipelines/build_pipeline.yaml.erb @@ -46,6 +46,12 @@ jobs: <% if node.name !="shell" %> uses: <%=node.full_name %> <% end %> + <%if node.env_input_values.present? %> + env: + <% node.env_input_values.each_key do |key| %> + <%=key %>: '<%=node.env_input_values[key] %>' + <%end %> + <%end %> <%if node.input_values.present? %> with: <% node.input_values.each_key do |key| %>