Skip to content

Commit 348c9c5

Browse files
authored
AzLocal.UpdateManagement v0.8.6: Step.3 cycle-calendar enrichment + 6 v0.8.5 pipeline regression fixes (#75)
* AzLocal.UpdateManagement v0.8.6: Step.3 cycle-calendar enrichment + 6 v0.8.5 pipeline regression fixes + 11 regression-guard tests NEW (Step.3 cycle calendar) - Get-AzLocalApplyUpdatesScheduleCycleCalendar: opt-in -CronFiringsByDate (per-day UTC CRON firing times) and -WindowMatchByRingAndDate (per-ring window-coverage >=95% indicator). - Export-AzLocalApplyUpdatesScheduleAudit auto-wires both via Read-AzLocalApplyUpdatesYamlCrons + ConvertFrom-AzLocalUpdateWindow. Pure render-time contract preserved. FIX (v0.8.5 thin-YAML port regressions) - Step.0 Export-AzLocalAuthValidationReport: @() wrap on unary-comma Invoke-AzResourceGraphQuery collapsed cluster count to 1 - switched to direct assignment + variable-level @() coerce. - Step.3 Test-AzLocalApplyUpdatesScheduleCoverage: array-level .MatchingCrons enumeration crashed under strict mode on empty $segmentStatuses - guarded with Count check. - Step.4 Get-AzLocalFleetConnectivityStatus: single-cluster RG crashed because if-as-expression silently unwrapped @() to scalar - now $matchedList -> $matched = @($matchedList) at variable level. - Step.6 Get-AzLocalClusterUpdateReadiness: $cluster.NotFound strict-mode error - 3 builder paths missing the key, all now set NotFound=$false. - Step.9 Export-AzLocalFleetHealthStatusReport: @() wrap on both Get-AzLocalFleetHealthFailures and Get-AzLocalFleetHealthOverview collapsed row sets - switched to direct assignment. - Step.2 Set-AzLocalClusterUpdateRingTag: Format-Table without | Out-Host leaked formatter wrapper objects into -PassThru pipeline (Total clusters processed = 44 vs 20 on a 20-row CSV). Added | Out-Host + defence-in-depth ClusterName -is [string] filter in Set-AzLocalClusterUpdateRingTagFromCsv. - Step.2 per-cluster Message now names the changed tags ("Tags updated: UpdateExcluded: 'False' -> 'True'") instead of always "UpdateRing tag updated successfully". - Step.2 summary table split into three independent collapsible buckets (Tag Updates Applied / Skipped or Failed / No Tag Updates). - Node.js 20 deprecation: bumped actions/upload-artifact@v4 -> @v6 in Step.0 GHA YAML (other steps already on v6). TESTS (11 new regression-guard It blocks across 7 Describe blocks) - @() wrap on unary-comma return helpers (Invoke-AzResourceGraphQuery, Get-AzLocalFleetHealth{Failures,Overview}, Read-AzLocalApplyUpdatesYamlCrons). - Step.3 .MatchingCrons strict-mode crash; Step.4 $matched if/else { @() } branch; Step.6 NotFound key on every $clustersToProcess builder; Step.0 $clusterRows variable-level @() coerce; Step.2 Format-Table | Out-Host. - GitHub Actions Node.js 20 deprecation (artifact action versions across every bundled GHA YAML). - 12 new cycle-calendar It blocks for backwards compat / both-params header / (+N) suffix / 95% boundary / case-insensitivity / -ClusterRingCounts coexistence. DRIFT - 20 bundled Step.{0..9}.yml templates bump GENERATED_AGAINST_MODULE_VERSION 0.8.5 -> 0.8.6. - Pester $expectedVersion bumped to 0.8.6. - Same 55 public exports; no parameter changes on existing cmdlets. * v0.8.6: trim ReleaseNotes under 10000-char PSGallery limit (9087/10000) CI Pester 'Should have ReleaseNotes within the PSGallery character limit' caught this: previous block measured 10087 chars (over by 87). Collapsed the 7 verbose 'NEW Pester regression guards' sub-bullets into a single dense line listing the guard topics. Functionally identical disclosure; no source / test / behaviour changes.
1 parent 629c501 commit 348c9c5

35 files changed

Lines changed: 1169 additions & 103 deletions

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.0_authentication-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ variables:
5959
# log if the YAML appears stale - prompting you to refresh via
6060
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
6161
- name: GENERATED_AGAINST_MODULE_VERSION
62-
value: '0.8.5'
62+
value: '0.8.6'
6363
# Resolution order for the module version pin (leave all unset to install the latest,
6464
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
6565
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.1_inventory-clusters.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ variables:
4242
# log if the YAML appears stale - prompting you to refresh via
4343
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
4444
- name: GENERATED_AGAINST_MODULE_VERSION
45-
value: '0.8.5'
45+
value: '0.8.6'
4646
# Resolution order for the module version pin (leave all unset to install the latest,
4747
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
4848
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.2_manage-updatering-tags.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ variables:
4545
# log if the YAML appears stale - prompting you to refresh via
4646
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
4747
- name: GENERATED_AGAINST_MODULE_VERSION
48-
value: '0.8.5'
48+
value: '0.8.6'
4949
# Resolution order for the module version pin (leave all unset to install the latest,
5050
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
5151
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.3_apply-updates-schedule-audit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ parameters:
8686
default: false
8787

8888
variables:
89-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
89+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
9090
REQUIRED_MODULE_VERSION: '${{ parameters.moduleVersion }}'
9191
reportsPath: '$(Build.ArtifactStagingDirectory)/reports'
9292

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.4_fleet-connectivity-status.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ variables:
109109
# the version actually installed and to the latest on PSGallery, and emits a warning
110110
# log if the YAML appears stale - prompting you to refresh via
111111
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
112-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
112+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
113113
# Resolution order for the module version pin (leave all unset to install the latest,
114114
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
115115
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.5_assess-update-readiness.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ variables:
6969
# the version actually installed and to the latest on PSGallery, and emits a warning
7070
# log if the YAML appears stale - prompting you to refresh via
7171
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
72-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
72+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
7373
# Resolution order for the module version pin (leave all unset to install the latest,
7474
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
7575
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.6_apply-updates.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ variables:
114114
# log if the YAML appears stale - prompting you to refresh via
115115
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
116116
- name: GENERATED_AGAINST_MODULE_VERSION
117-
value: '0.8.5'
117+
value: '0.8.6'
118118
# Resolution order for the module version pin (leave all unset to install the latest,
119119
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
120120
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.7_monitor-updates.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ parameters:
8383
default: ''
8484

8585
variables:
86-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
86+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
8787
REQUIRED_MODULE_VERSION: '${{ parameters.moduleVersion }}'
8888
reportsPath: '$(Build.ArtifactStagingDirectory)/reports'
8989

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.8_fleet-update-status.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ variables:
9292
# the version actually installed and to the latest on PSGallery, and emits a warning
9393
# log if the YAML appears stale - prompting you to refresh via
9494
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
95-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
95+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
9696
# Resolution order for the module version pin (leave all unset to install the latest,
9797
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
9898
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/Step.9_fleet-health-status.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ variables:
104104
# the version actually installed and to the latest on PSGallery, and emits a warning
105105
# log if the YAML appears stale - prompting you to refresh via
106106
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
107-
GENERATED_AGAINST_MODULE_VERSION: '0.8.5'
107+
GENERATED_AGAINST_MODULE_VERSION: '0.8.6'
108108
# Resolution order for the module version pin (leave all unset to install the latest,
109109
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
110110
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

0 commit comments

Comments
 (0)