-
Notifications
You must be signed in to change notification settings - Fork 2.1k
202 lines (171 loc) · 5.41 KB
/
tests.yml
File metadata and controls
202 lines (171 loc) · 5.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
name: Run Tests
on:
push:
branches:
- master
- development
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
pull_request:
branches:
- master
- development
paths-ignore:
- '**/*.md'
- '**/*.txt'
- '.github/**'
- '**/.gitignore'
defaults:
run:
shell: cmd
permissions:
contents: read
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
tests:
runs-on: windows-latest
continue-on-error: false
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Summary - Test execution started
shell: pwsh
run: |
# Get Cmder version
. scripts/utils.ps1
$cmderVersion = Get-VersionStr
$summary = @"
## ✅ Run Tests - Workflow Summary
### Test Environment
| Property | Value |
| --- | --- |
| Repository | ``${{ github.repository }}`` |
| Branch | ``${{ github.ref_name }}`` |
| Commit | ``${{ github.sha }}`` |
| Runner OS | ``${{ runner.os }}`` |
| Cmder Version | **$cmderVersion** |
| PowerShell Version | **$($PSVersionTable.PSVersion)** |
| Event | ``${{ github.event_name }}`` |
"@
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Initialize vendors
shell: pwsh
working-directory: scripts
run: .\build.ps1 -verbose
- name: Summary - Vendor initialization
if: success()
shell: pwsh
run: |
# Get vendor versions from sources.json
$vendorInfo = @()
$sources = Get-Content "vendor\sources.json" -Raw | ConvertFrom-Json
foreach ($source in $sources) {
$dir = $source.name
if (-not $dir) {
continue
}
$versionFile = "vendor/$dir/.cmderver"
if (Test-Path $versionFile) {
$version = Get-Content $versionFile -Raw
$vendorInfo += "- **$dir**: $($version.Trim())"
}
}
$summary = @"
### ⚙️ Vendor Initialization
✅ Vendor dependencies initialized successfully.
**Vendor Versions:**
"@
$(
if ($vendorInfo.Count -eq 0) {
$summary += "_No vendor version information available._"
} else {
$summary += $vendorInfo -join "`n"
}
)
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Summary - Test results table header
if: success()
shell: pwsh
run: |
$summary = @"
### 📋 Test Results
| Test | Status | Duration |
| --- | --- | --- |
"@
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Testing Clink Shell
id: test-clink
shell: pwsh
run: |
$startTime = Get-Date
cmd /c vendor\init.bat /v /d /t
$duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2)
echo "duration=$duration" >> $env:GITHUB_OUTPUT
- name: Summary - Clink Shell test
if: success()
shell: pwsh
run: |
$duration = "${{ steps.test-clink.outputs.duration }}"
if ($duration) {
$duration = "$duration s"
} else {
$duration = "N/A"
}
"| Clink Shell | ✅ Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Testing PowerShell
id: test-powershell
shell: pwsh
run: |
$startTime = Get-Date
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "$env:CMDER_DEBUG='1'; . 'vendor\profile.ps1'"
$duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2)
echo "duration=$duration" >> $env:GITHUB_OUTPUT
- name: Summary - PowerShell test
if: success()
shell: pwsh
run: |
$duration = "${{ steps.test-powershell.outputs.duration }}"
if ($duration) {
$duration = "$duration s"
} else {
$duration = "N/A"
}
"| PowerShell | ✅ Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Testing Bash
id: test-bash
shell: pwsh
run: |
$startTime = Get-Date
bash vendor/cmder.sh
$duration = [math]::Round(((Get-Date) - $startTime).TotalSeconds, 2)
echo "duration=$duration" >> $env:GITHUB_OUTPUT
- name: Summary - Bash test
if: success()
shell: pwsh
run: |
$duration = "${{ steps.test-bash.outputs.duration }}"
if ($duration) {
$duration = "$duration s"
} else {
$duration = "N/A"
}
"| Bash | ✅ Passed | $duration |" | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8
- name: Summary - All tests completed
if: success()
shell: pwsh
run: |
$summary = @"
### ✅ All Tests Completed
All shell environments tested successfully!
**Test Coverage:**
- ✅ Clink shell environment (Windows cmd.exe with Clink)
- ✅ PowerShell environment (with Cmder profile)
- ✅ Bash environment (Git Bash integration)
"@
$summary | Add-Content -Path $env:GITHUB_STEP_SUMMARY -Encoding utf8