@@ -478,3 +478,102 @@ jobs:
478478 $failed = $true
479479 }
480480 if ($failed) { exit 1 }
481+
482+ ActionTest-Prerelease :
483+ name : Action-Test - [Prerelease]
484+ runs-on : ubuntu-latest
485+ steps :
486+ - name : Checkout repo
487+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
488+ with :
489+ persist-credentials : false
490+
491+ - name : Create fake PR event
492+ shell : pwsh
493+ run : |
494+ $event = @{
495+ pull_request = @{
496+ head = @{ ref = 'feat/add-prerelease-support' }
497+ labels = @(
498+ @{ name = 'minor' }
499+ )
500+ }
501+ } | ConvertTo-Json -Depth 5
502+ $event | Set-Content -Path "$env:RUNNER_TEMP/event.json"
503+ "GITHUB_EVENT_PATH=$env:RUNNER_TEMP/event.json" | Out-File -FilePath $env:GITHUB_ENV -Append
504+
505+ - name : Resolve-PSModuleVersion
506+ id : resolve
507+ uses : ./
508+ env :
509+ GH_TOKEN : ${{ github.token }}
510+ with :
511+ Settings : |
512+ {
513+ "Publish": {
514+ "Module": {
515+ "ReleaseType": "Prerelease",
516+ "AutoPatching": false,
517+ "IncrementalPrerelease": true,
518+ "DatePrereleaseFormat": "",
519+ "VersionPrefix": "v",
520+ "MajorLabels": "major",
521+ "MinorLabels": "minor",
522+ "PatchLabels": "patch",
523+ "IgnoreLabels": ""
524+ }
525+ }
526+ }
527+ EventJson : ' {"pull_request":{"head":{"ref":"feat/add-prerelease-support"},"labels":[{"name":"minor"}]}}'
528+
529+ - name : Verify - Prerelease
530+ shell : pwsh
531+ env :
532+ RESOLVE_CREATE_RELEASE : ${{ steps.resolve.outputs.CreateRelease }}
533+ RESOLVE_VERSION : ${{ steps.resolve.outputs.Version }}
534+ RESOLVE_PRERELEASE : ${{ steps.resolve.outputs.Prerelease }}
535+ RESOLVE_RELEASE_TYPE : ${{ steps.resolve.outputs.ReleaseType }}
536+ RESOLVE_FULL_VERSION : ${{ steps.resolve.outputs.FullVersion }}
537+ run : |
538+ Write-Host '--- Input ---'
539+ Write-Host "EventJson: {""pull_request"":{""head"":{""ref"":""feat/add-prerelease-support""},""labels"":[{""name"":""minor""}]}}"
540+ Write-Host "Settings: ReleaseType=Prerelease, AutoPatching=false, IncrementalPrerelease=true, MinorLabels=minor"
541+ Write-Host ''
542+ Write-Host '--- Expected vs Actual ---'
543+ Write-Host "CreateRelease: expected='true' actual='$env:RESOLVE_CREATE_RELEASE'"
544+ Write-Host "ReleaseType: expected='Prerelease' actual='$env:RESOLVE_RELEASE_TYPE'"
545+ Write-Host "Version: expected='non-empty' actual='$env:RESOLVE_VERSION'"
546+ Write-Host "Prerelease: expected='feataddprereleasesupport*' actual='$env:RESOLVE_PRERELEASE'"
547+ Write-Host "FullVersion: actual='$env:RESOLVE_FULL_VERSION'"
548+ Write-Host ''
549+
550+ $failed = $false
551+ if ($env:RESOLVE_CREATE_RELEASE -ne 'true') {
552+ Write-Error "CreateRelease: expected 'true', got '$env:RESOLVE_CREATE_RELEASE'"
553+ $failed = $true
554+ }
555+ if ($env:RESOLVE_RELEASE_TYPE -ne 'Prerelease') {
556+ Write-Error "ReleaseType: expected 'Prerelease', got '$env:RESOLVE_RELEASE_TYPE'"
557+ $failed = $true
558+ }
559+ if ([string]::IsNullOrEmpty($env:RESOLVE_VERSION)) {
560+ Write-Error "Version: expected non-empty, got empty"
561+ $failed = $true
562+ }
563+ if ([string]::IsNullOrEmpty($env:RESOLVE_PRERELEASE)) {
564+ Write-Error "Prerelease: expected non-empty (branch-derived tag), got empty"
565+ $failed = $true
566+ }
567+ if ($env:RESOLVE_PRERELEASE -notlike 'feataddprereleasesupport*') {
568+ Write-Error "Prerelease: expected to start with 'feataddprereleasesupport', got '$env:RESOLVE_PRERELEASE'"
569+ $failed = $true
570+ }
571+ if ([string]::IsNullOrEmpty($env:RESOLVE_FULL_VERSION)) {
572+ Write-Error "FullVersion: expected non-empty, got empty"
573+ $failed = $true
574+ }
575+ if ($env:RESOLVE_FULL_VERSION -notlike '*-*') {
576+ Write-Error "FullVersion: expected to contain '-' (prerelease separator), got '$env:RESOLVE_FULL_VERSION'"
577+ $failed = $true
578+ }
579+ if ($failed) { exit 1 }
0 commit comments