Lewati ke konten utama

Step Priority dan Ordering

Step Priority dan Ordering

28 Ordered Steps

Pahami 28 priority entries Custy dan cara entries tersebut menormalisasi merged profile sequence.

CommandSTEP_ORDER

Category

Pipeline Reference

Quick Command

lower priority number -> earlier merged-profile position

phase prioritydeduplicationstable sorting

Ringkasan​

STEP_ORDER adalah global sort-key map yang digunakan saat Custy menggabungkan dua atau lebih profiles. Lower values ditempatkan lebih awal. Gaps antar-phase memberi ruang untuk future steps tanpa renumber seluruh pipeline.


Kapan Sorting Diterapkan

Resolver Rules

Single Profile

Expand nested profile references dan pertahankan declared order. STEP_ORDER tidak diterapkan ulang.

Multiple Profiles

Expand setiap profile, gabungkan results, hapus repeated names, lalu sort unique steps berdasarkan priority.

Repeated Step

Pertahankan first occurrence saja sebelum sorting agar shared validation atau preparation tidak berjalan dua kali.

Unknown Priority

Step yang tidak tersedia dalam STEP_ORDER menerima priority 999 dan ditempatkan setelah known steps.

Merged-Profile Algorithm

Normalization Order

1
Validate each profile name
Tolak unknown resolver profile sebelum execution dimulai.
completed
2
Expand nested profiles
Ganti validation subprofiles dan nested references lain dengan concrete step definitions.
completed
3
Append expanded definitions
Kumpulkan steps dari selected profiles berdasarkan input order.
completed
4
Deduplicate by step name
Pertahankan first definition untuk setiap unique name.
completed
5
Sort by STEP_ORDER
Terapkan numeric priorities dengan stable sort dan gunakan 999 untuk missing names.
current

Complete Priority Reference

STEP_ORDER

Lower values diurutkan lebih awal ketika beberapa profiles digabungkan.

0 — Initialization_custy_stepInitialization. Buat atau refresh project-owned Custy resources.
10 — ensure_git_repo_stepValidation. Wajibkan execution di dalam Git repository.
11 — ensure_staged_changes_stepValidation. Periksa staged-change requirement untuk commit work.
12 — ensure_commit_validation_provider_stepValidation. Resolve built-in, Commitizen, atau Git-policy message validation.
13 — ensure_commit_hook_policy_stepValidation. Resolve native hooks atau safe direct pre-commit execution.
14 — ensure_commit_message_file_stepValidation. Validasi configured commit-message file setting.
15 — ensure_commit_message_file_exists_stepValidation. Wajibkan commit-message file tersedia.
16 — ensure_version_file_stepValidation. Validasi configured version file.
17 — ensure_tag_message_file_stepValidation. Validasi configured tag-message file setting.
18 — ensure_tag_message_file_exists_stepValidation. Wajibkan tag-message file tersedia.
19 — ensure_remote_exists_stepValidation. Wajibkan resolved Git remote destinations.
30 — prepare_version_stepPreparation. Resolve version dan tag context untuk later stages.
31 — workflow_init_stepPreparation. Initialize branch workflow state dan services.
32 — prepare_tag_message_stepPreparation. Siapkan tag-message content untuk resolved version.
40 — generate_artifacts_stepGeneration and editing. Generate configured release artifacts.
41 — edit_files_stepGeneration and editing. Buka generated files untuk user review dan editing.
42 — validate_edited_stepGeneration and editing. Validasi files setelah editing stage.
43 — apply_version_stepGeneration and editing. Terapkan resolved version ke configured project files.
44 — generate_changelog_stepGeneration and editing. Jalankan conditional changelog generation.
50 — backup_commit_message_files_stepBackup and cleanup. Backup commit-message content.
51 — backup_tag_message_files_stepBackup and cleanup. Backup tag-message content.
52 — cleanup_backup_stepBackup and cleanup. Terapkan configured backup retention cleanup.
70 — stage_stepGit execution. Stage files yang dipilih workflow.
71 — commit_stepGit execution. Buat local Git commit.
72 — tag_stepGit execution. Buat local Git tag.
73 — push_stepGit execution. Push HEAD dan eligible tag ke resolved remotes.
80 — cleanup_branches_stepBranch cleanup. Jalankan configured branch cleanup behavior.
90 — finalize_stepFinalization. Invoke experimental post-release workflow transitions.

Worked Example: push + commit

custy run push commit dan custy run commit push saat ini dinormalisasi menjadi 19 steps yang sama. CLI input order tidak memindahkan push_step sebelum validation, preparation, atau commit_step.

Normalized merged order
text
01  ensure_git_repo_step                  priority 10
02  ensure_staged_changes_step            priority 11
03  ensure_commit_validation_provider_step priority 12
04  ensure_commit_hook_policy_step         priority 13
05  ensure_commit_message_file_step        priority 14
06  ensure_commit_message_file_exists_step priority 15
07  ensure_remote_exists_step              priority 19
08  prepare_version_step                   priority 30
09  workflow_init_step                     priority 31
10  generate_artifacts_step                priority 40
11  edit_files_step                        priority 41
12  validate_edited_step                   priority 42
13  apply_version_step                     priority 43
14  generate_changelog_step                priority 44
15  backup_commit_message_files_step       priority 50
16  cleanup_backup_step                    priority 52
17  stage_step                             priority 70
18  commit_step                            priority 71
19  push_step                              priority 73

Lanjutkan