Skip to content

Move v4 CI from AppVeyor to GitHub Actions#2919

Open
nohwnd wants to merge 5 commits into
pester:rel/4.x.xfrom
nohwnd:v4-ci-gh-actions
Open

Move v4 CI from AppVeyor to GitHub Actions#2919
nohwnd wants to merge 5 commits into
pester:rel/4.x.xfrom
nohwnd:v4-ci-gh-actions

Conversation

@nohwnd

@nohwnd nohwnd commented Jul 20, 2026

Copy link
Copy Markdown
Member

The AppVeyor build for v4 is dead, so this moves the CI to GitHub Actions. We only test on Windows PowerShell 5.1 and PowerShell 7 (Windows and Ubuntu), nothing else is guaranteed on this branch. The goal is to keep the branch releasable in case a security fix needs to ship, release itself stays the manual release.ps1 process.

The workflow uses the same test invocation AppVeyor used: import Pester.psd1 from the repo root and run the suite with -ExcludeTag VersionChecks, StyleRules, Help. It also has workflow_dispatch so we can re-validate the branch on demand without pushing anything.

Removed the dead configs: .appveyor.yml, .travis.yml, and azure-pipelines.yml (that one depended on a self-hosted PS2/PS3 pool that no longer exists).

One test fix was needed: New-TimeSpan -mi in TestResults.Tests.ps1 became ambiguous because newer PowerShell 7 added -Milliseconds. Changed it to -Minutes.

Verified locally on pwsh 7.5.5 (macOS): 1023 passed, 0 failed. The 5.1 and Windows legs will be verified by this PR's checks.

🤖

nohwnd added 5 commits July 20, 2026 12:28
The AppVeyor build for v4 is dead. Replace it with a GitHub Actions
workflow that runs the test suite on Windows PowerShell 5.1 and
PowerShell 7 (Windows and Ubuntu), using the same invocation AppVeyor
used. Remove the AppVeyor, Travis and Azure DevOps configs, the Azure
one depended on a self-hosted PS2/PS3 pool that no longer exists.

Fix `New-TimeSpan -mi` in TestResults tests, newer PowerShell 7 added
-Milliseconds so -mi became ambiguous.

🤖
GitHub Actions runners set TEMP to the 8.3 short form
(C:\Users\RUNNER~1\...), but TestDrive paths resolve to the long form,
so the -like comparisons against $env:TEMP never match. Expand TEMP to
the long path via Scripting.FileSystemObject.

🤖
GitHub Actions runners set TEMP to the 8.3 short form
(C:\Users\RUNNER~1\...), but TestDrive is created via GetTempPath which
returns the long form, so the -like comparisons never match. Compare
against GetTempPath, the same API TestDrive uses.

🤖
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant