Class: Pindo::TaskSystem::NugetBuildTask
- Defined in:
- lib/pindo/module/task/model/nuget/nuget_build_task.rb
Instance Attribute Summary
Attributes inherited from NugetTask
Attributes inherited from PindoTask
#callbacks_setup, #context, #created_at, #dependencies, #error, #finished_at, #id, #max_retry_count, #metadata, #name, #priority, #result, #retry_count, #retry_delay, #retry_mode, #skip_count, #started_at, #status, #task_key, #task_manager, #type
Class Method Summary collapse
Instance Method Summary collapse
- #do_work ⇒ Object
-
#initialize(project_path:) ⇒ NugetBuildTask
constructor
A new instance of NugetBuildTask.
Methods inherited from NugetTask
#required_resources, task_type
Methods inherited from PindoTask
#before_retry, #cancel, #cancelled?, #check_cancelled!, #data_param, default_retry_count, default_retry_delay, default_retry_mode, #do_task, #execution_time, #finished?, #get_all_data_params, #get_all_data_params_by_key, #get_all_dependencies_results, #get_data_param, #get_data_param_by_key, #get_dependency_result, #get_dependency_task, #on, #primary_data_param, #release_resource, #release_resources, #required_resources, #reset_for_retry, #retryable?, #running?, #should_retry?, task_type, #validate, #with_resource, #with_resources
Constructor Details
#initialize(project_path:) ⇒ NugetBuildTask
Returns a new instance of NugetBuildTask.
12 13 14 |
# File 'lib/pindo/module/task/model/nuget/nuget_build_task.rb', line 12 def initialize(project_path:) super("NugetBuild", project_path: project_path) end |
Class Method Details
.task_key ⇒ Object
8 9 10 |
# File 'lib/pindo/module/task/model/nuget/nuget_build_task.rb', line 8 def self.task_key :nuget_build end |
Instance Method Details
#do_work ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/pindo/module/task/model/nuget/nuget_build_task.rb', line 16 def do_work puts puts "📦 [Task] 开始执行 Nuget 打包..." # 1. 初始化检查 (同步 package.json 和 .nuspec) puts "🔍 执行初始化检查..." Pindo::Unity::NugetHelper.nuget_init(@project_path) puts # 2. 获取 nuspec 文件 nuspec_file = Pindo::Unity::NugetHelper.find_nuspec_file(@project_path) unless nuspec_file raise Informative, "未找到 .nuspec 文件,打包无法继续" end # 3. 生成 Release Notes puts "📝 生成 Release Notes..." release_notes = Pindo::Unity::NugetHelper.generate_release_notes_from_git(@project_path) if release_notes && !release_notes.empty? Pindo::Unity::NugetHelper.update_nuspec_release_notes(nuspec_file, release_notes) puts "✅ 已更新 .nuspec 的 releaseNotes 字段" else puts "⚠️ 未生成 Release Notes,将使用 .nuspec 中已有的内容" end puts # 4. 执行打包 nupkg_file = Pindo::Unity::NugetHelper.pack_nupkg(@project_path) # 5. 返回结果 (生成的 nupkg 文件路径) { nupkg_file: nupkg_file } end |