From 9ae57e56929ea1e5289fc16a02fe2ef2356c8752 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 20 Oct 2025 11:29:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E7=BA=BFenv=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/pipelines_controller.rb | 16 ++++++++++++++-- app/models/action/node.rb | 2 +- .../api/v1/projects/pipelines/_jobs.yaml.erb | 6 ++++++ .../projects/pipelines/build_pipeline.yaml.erb | 6 ++++++ 4 files changed, 27 insertions(+), 3 deletions(-) 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| %>