Repository navigation
104 lines (101 loc) · 3.58 KB
/
Copy pathverify.yml
File metadata and controls
104 lines (101 loc) · 3.58 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
name: Verify
on:
workflow_call:
inputs:
require_tag:
type: boolean
default: false
live_feed:
type: boolean
default: false
permissions:
contents: read
jobs:
verify:
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
env:
VSCODE_TEST_VERSION: '1.100.0'
steps:
- uses: actions/checkout@v6
- uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
- name: Validate immutable release tag
if: inputs.require_tag
shell: bash
run: |
VERSION=$(node scripts/release-version.mjs --check)
test "$GITHUB_REF" = "refs/tags/v$VERSION"
- run: npm run version:check
- name: Release automation regressions
run: npm run test:release
- run: dotnet restore NuGetPackageManager.slnx
- run: dotnet format NuGetPackageManager.slnx --verify-no-changes --no-restore
- name: Engine regressions
run: dotnet test NuGetPackageManager.slnx --configuration Release --no-restore
- name: Pack global tool
run: dotnet pack dotnet/ManagedCode.NuGet.Tool/ManagedCode.NuGet.Tool.csproj --configuration Release --output artifacts
- name: Smoke install global tool
shell: bash
run: |
VERSION=$(node -p "require('./package.json').version")
dotnet tool install --tool-path "$RUNNER_TEMP/tools" --source artifacts nuget-manager --version "$VERSION"
"$RUNNER_TEMP/tools/nuget-manager" --help
if: runner.os != 'Windows'
- name: Smoke install global tool on Windows
shell: pwsh
run: |
$toolPath = Join-Path $env:RUNNER_TEMP 'tools'
$version = (Get-Content package.json | ConvertFrom-Json).version
dotnet tool install --tool-path $toolPath --source artifacts nuget-manager --version $version
& (Join-Path $toolPath 'nuget-manager.exe') --help
if: runner.os == 'Windows'
- name: Live feed CLI smoke check
if: inputs.live_feed && runner.os == 'Linux'
run: node scripts/verify-live-feed.mjs "$RUNNER_TEMP/tools/nuget-manager"
- run: npm ci
- run: npm run typecheck
- run: npm run build
- name: Bridge and renderer model regressions
run: npm test
- name: Install browser for renderer regressions
run: npx playwright install --with-deps chromium
if: runner.os == 'Linux'
- name: Rendered responsive UI regressions
run: npm run test:ui
if: runner.os == 'Linux'
- uses: actions/upload-artifact@v4
if: always() && runner.os == 'Linux'
with:
name: renderer-ui-evidence
path: test-results/ui/
if-no-files-found: ignore
- run: npm run format:check
- run: npm run package
- uses: actions/cache@v4
with:
path: .vscode-test/
key: vscode-host-${{ runner.os }}-${{ runner.arch }}-${{ env.VSCODE_TEST_VERSION }}
- name: VS Code host integration tests
run: xvfb-run -a npm run test:host
if: runner.os == 'Linux'
- name: VS Code host integration tests
run: npm run test:host
if: runner.os != 'Linux'
- uses: actions/upload-artifact@v4
if: runner.os == 'Linux'
with:
name: verified-packages
path: |
artifacts/*.vsix
artifacts/*.nupkg
if-no-files-found: error