Skip to content

Commit 415a4bf

Browse files
Add prerelease flow test case
1 parent 03e904b commit 415a4bf

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

.github/workflows/Action-Test.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)