Skip to content

Commit 27e3ec8

Browse files
committed
chore(ci): add manual e2e workflow and docs updates
1 parent 0fd8c94 commit 27e3ec8

2 files changed

Lines changed: 89 additions & 1 deletion

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Manual E2E Tests
2+
3+
env:
4+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
5+
6+
on:
7+
workflow_dispatch:
8+
inputs:
9+
confirm_destructive:
10+
description: Confirm this run is allowed to execute destructive E2E tests
11+
required: true
12+
default: false
13+
type: boolean
14+
15+
permissions:
16+
contents: read
17+
18+
concurrency:
19+
group: haloapi-manual-e2e
20+
cancel-in-progress: false
21+
22+
jobs:
23+
e2e:
24+
name: Run E2E Tests
25+
runs-on: windows-latest
26+
env:
27+
HaloTestingURL: ${{ secrets.HaloTestingURL }}
28+
HaloTestingClientID: ${{ secrets.HaloTestingClientID }}
29+
HaloTestingClientSecret: ${{ secrets.HaloTestingClientSecret }}
30+
HaloTestingTenant: ${{ secrets.HaloTestingTenant }}
31+
steps:
32+
- name: Validate destructive test confirmation
33+
shell: pwsh
34+
run: |
35+
$ErrorActionPreference = 'Stop'
36+
if ('${{ inputs.confirm_destructive }}' -ne 'true') {
37+
throw 'This workflow runs destructive E2E tests. Set confirm_destructive=true to proceed.'
38+
}
39+
40+
- name: Checkout repository
41+
uses: actions/checkout@v6
42+
43+
- name: Bootstrap environment
44+
shell: pwsh
45+
run: |
46+
$ErrorActionPreference = 'Stop'
47+
& "$env:GITHUB_WORKSPACE\Bootstrap.ps1"
48+
49+
- name: Run E2E tests
50+
shell: pwsh
51+
run: |
52+
$ErrorActionPreference = 'Stop'
53+
pwsh -NoProfile -File "$env:GITHUB_WORKSPACE\DevOps\Quality\test.ps1" -Suite E2E -Verbosity Detailed
54+
55+
- name: Upload E2E test results
56+
if: always()
57+
uses: actions/upload-artifact@v6
58+
with:
59+
name: pester-e2e-results
60+
path: .artifacts/TestResults.e2e.xml
61+
62+
- name: Publish E2E test results
63+
if: always()
64+
uses: dorny/test-reporter@v3
65+
with:
66+
name: Pester Tests (E2E)
67+
path: .artifacts/TestResults.e2e.xml
68+
reporter: java-junit

Docs/HaloAPI/development/index.mdx

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,27 @@ Do not invoke `Invoke-Pester` directly as the normal validation path in the VS C
4747
* Run `Bootstrap.ps1` after changing local dependencies.
4848
* Run `run-pssa.ps1` to validate PowerShell style and custom repo rules.
4949
* Run `test.ps1 -Suite Meta` for the safe baseline test suite.
50-
* Only run `Core` tests when the required Halo testing environment variables are available.
50+
* Only run `Live` tests when the required Halo testing environment variables are available.
51+
52+
## Manual E2E Workflow
53+
54+
Destructive end-to-end tests are executed through a dedicated manual workflow.
55+
56+
Workflow: `Manual E2E Tests`
57+
Path: `.github/workflows/manual-e2e-tests.yml`
58+
59+
Run steps:
60+
61+
1. Open **Actions** in GitHub and select **Manual E2E Tests**.
62+
2. Click **Run workflow**.
63+
3. Set `confirm_destructive` to `true`.
64+
4. Run the workflow and review published `Pester Tests (E2E)` results.
65+
66+
Notes:
67+
68+
* The workflow requires Halo test secrets (`HaloTestingURL`, `HaloTestingClientID`, `HaloTestingClientSecret`, `HaloTestingTenant`).
69+
* The workflow runs `DevOps\Quality\test.ps1 -Suite E2E` and uploads `.artifacts/TestResults.e2e.xml`.
70+
* Keep E2E runs manual/on-demand to avoid destructive test execution in normal PR CI.
5171

5272
## Release and Workflow Notes
5373

0 commit comments

Comments
 (0)