-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (115 loc) · 3.39 KB
/
Copy pathe2e.yaml
File metadata and controls
132 lines (115 loc) · 3.39 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
name: Tauri E2E
on:
pull_request:
branches:
- main
- master
- dev
- release-*
paths:
- 'backend/**'
- 'frontend/**'
- 'tauri-e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.github/workflows/e2e.yaml'
push:
branches:
- main
- master
- dev
- release-*
paths:
- 'backend/**'
- 'frontend/**'
- 'tauri-e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.github/workflows/e2e.yaml'
workflow_dispatch:
inputs:
suite:
description: E2E suite to run (network/all require a configured WSL/LAN client and remain local-only)
required: true
default: critical
type: choice
options:
- smoke
- critical
- runtime
- profiles
- settings
- main
- hermetic
schedule:
- cron: '45 20 * * *'
concurrency:
group: tauri-e2e-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
desktop:
name: Desktop (${{ github.event_name }})
runs-on: windows-latest
timeout-minutes: 120
env:
E2E_SUITE: ${{ github.event_name == 'schedule' && 'hermetic' || github.event_name == 'workflow_dispatch' && inputs.suite || github.event_name == 'pull_request' && 'critical' || 'smoke' }}
CHIMERA_E2E_ARTIFACT_DIR: ${{ github.workspace }}/artifacts/e2e
steps:
- uses: actions/checkout@v7
- name: Install Rust
shell: pwsh
run: |
rustup toolchain install stable --profile minimal --no-self-update
rustup default stable
rustc --version
cargo --version
- name: Install Node.js
uses: actions/setup-node@v7
with:
node-version: 24
- uses: pnpm/action-setup@v6
name: Install pnpm
with:
run_install: false
- uses: Swatinem/rust-cache@v2
name: Cache Rust dependencies
with:
workspaces: |
backend -> target
cache-on-failure: true
- name: Get pnpm store directory
shell: pwsh
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $env:GITHUB_ENV
- uses: actions/cache@v6
name: Cache pnpm store
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Validate E2E harness
run: pnpm --filter @chimera/tauri-e2e test:unit
- name: Typecheck E2E harness
run: pnpm --filter @chimera/tauri-e2e typecheck
- name: Prepare sidecars and resources
run: pnpm check
- name: Build Tauri E2E binary
run: pnpm e2e:tauri:build
env:
NODE_OPTIONS: '--max_old_space_size=4096'
- name: Run ${{ env.E2E_SUITE }} suite
shell: pwsh
run: pnpm --filter @chimera/tauri-e2e exec wdio run ./wdio.conf.ts --suite $env:E2E_SUITE
- name: Upload E2E diagnostics
if: always()
uses: actions/upload-artifact@v4
with:
name: tauri-e2e-diagnostics-${{ github.run_id }}
path: ${{ github.workspace }}/artifacts/e2e
if-no-files-found: ignore