gitlink-forgeplus/app/models/action/node.rb

75 lines
2.4 KiB
Ruby

# == Schema Information
#
# Table name: action_nodes
#
# id :integer not null, primary key
# name :string(255)
# full_name :string(255)
# description :string(255)
# icon :string(255)
# action_node_types_id :integer
# is_local :boolean default("0")
# local_url :string(255)
# yaml :text(65535)
# sort_no :integer default("0")
# use_count :integer default("0")
# user_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# label :string(255)
# node_type :string(255)
# is_mutil_link :boolean
# link_type :string(255)
#
# Indexes
#
# by_name (name)
# index_action_nodes_on_action_types_id (action_node_types_id)
# index_action_nodes_on_user_id (user_id)
#
class Action::Node < ApplicationRecord
self.table_name = 'action_nodes'
default_scope { order(sort_no: :asc) }
has_many :action_node_inputs, :class_name => 'Action::NodeInput', foreign_key: "action_nodes_id"
has_many :action_node_selects, :class_name => 'Action::NodeSelect', foreign_key: "action_nodes_id"
belongs_to :action_node_type, :class_name => 'Action::NodeType', foreign_key: "action_node_types_id"
belongs_to :user, optional: true
attr_accessor :cust_name, :run_values, :input_values, :parent_node_id, :sub_nodes, :link_type_array, :node_id
validates :name, presence: { message: "不能为空" }
validates :full_name, length: { maximum: 200, too_long: "不能超过200个字符" }
validates :label, length: { maximum: 200, too_long: "不能超过200个字符" }
validates :description, length: { maximum: 65535, too_long: "不能超过65535个字符"}
def content_yaml
"foo".to_yaml
<<~YAML
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
YAML
end
def node
self
end
def build_yaml
yaml = ERB.new(File.read(File.join(Rails.root, "app/views/api/v1/projects/pipelines", "build_node.yaml.erb"))).result(binding)
# 删除空行内容
yaml = yaml.gsub(/^\s*\n/, "")
# Rails.logger.info "========================="
# Rails.logger.info yaml
yaml
end
end