1+ name : Wrappers E2E Tests
2+
3+ concurrency :
4+ group : wf-${{github.event.pull_request.number || github.sha}}-${{github.workflow}}
5+ cancel-in-progress : true
6+
7+ on :
8+ pull_request :
9+ paths-ignore :
10+ - ' apps/**/*.md'
11+ push :
12+ branches : [24_2, 25_*, 26_*]
13+ workflow_dispatch :
14+
15+ env :
16+ NX_CLOUD_ACCESS_TOKEN : ${{ secrets.NX_TOKEN }}
17+ NX_SKIP_NX_CACHE : ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
18+ BUILD_TEST_INTERNAL_PACKAGE : true
19+
20+ jobs :
21+ build-packages :
22+ runs-on : devextreme-shr2
23+ name : Build DevExtreme and Wrappers
24+ timeout-minutes : 40
25+
26+ steps :
27+ - name : Get sources
28+ uses : actions/checkout@v4
29+
30+ - name : Use Node.js
31+ uses : actions/setup-node@v4
32+ with :
33+ node-version : ' 20'
34+
35+ - uses : pnpm/action-setup@v3
36+ with :
37+ version : 9
38+ run_install : false
39+
40+ - name : Get pnpm store directory
41+ shell : bash
42+ run : |
43+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
44+
45+ - uses : actions/cache@v4
46+ name : Setup pnpm cache
47+ with :
48+ path : |
49+ ${{ env.STORE_PATH }}
50+ .nx/cache
51+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
52+ restore-keys : |
53+ ${{ runner.os }}-pnpm-store
54+
55+ - name : Install dependencies
56+ run : pnpm install
57+
58+ - name : Build all DevExtreme packages
59+ env :
60+ BUILD_TEST_INTERNAL_PACKAGE : true
61+ run : pnpm run all:build-dev
62+
63+ - name : Build wrappers apps
64+ working-directory : e2e/wrappers
65+ run : |
66+ pnpm run build:all
67+ mkdir -p builds-artifacts
68+ 7z a -tzip -mx3 -mmt2 builds-artifacts/react19-build.zip ./builders/react19/dist/*
69+ 7z a -tzip -mx3 -mmt2 builds-artifacts/vue3-build.zip ./builders/vue3/dist/*
70+ 7z a -tzip -mx3 -mmt2 builds-artifacts/angular19-build.zip ./builders/angular19/dist/*
71+
72+ - name : Upload wrappers builds
73+ uses : actions/upload-artifact@v4
74+ with :
75+ name : wrappers-builds
76+ path : e2e/wrappers/builds-artifacts
77+ retention-days : 1
78+
79+ test-wrappers :
80+ needs : build-packages
81+ runs-on : devextreme-shr2
82+ name : Test ${{ matrix.framework }}
83+ timeout-minutes : 30
84+ strategy :
85+ fail-fast : false
86+ matrix :
87+ framework : [react19, vue3, angular19]
88+
89+ steps :
90+ - name : Get sources
91+ uses : actions/checkout@v4
92+
93+ - name : Download wrappers builds
94+ uses : actions/download-artifact@v4
95+ with :
96+ name : wrappers-builds
97+ path : ./wrappers-builds
98+
99+ - name : Unpack wrapper build for ${{ matrix.framework }}
100+ run : |
101+ 7z x wrappers-builds/${{ matrix.framework }}-build.zip -o./e2e/wrappers/builders/${{ matrix.framework }}/dist
102+
103+ - name : Setup Chrome
104+ uses : ./.github/actions/setup-chrome
105+ with :
106+ chrome-version : ' 133.0.6943.53'
107+
108+ - name : Use Node.js
109+ uses : actions/setup-node@v4
110+ with :
111+ node-version : ' 20'
112+
113+ - uses : pnpm/action-setup@v3
114+ with :
115+ version : 9
116+ run_install : false
117+
118+ - name : Get pnpm store directory
119+ shell : bash
120+ run : |
121+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
122+
123+ - uses : actions/cache@v4
124+ name : Setup pnpm cache
125+ with :
126+ path : |
127+ ${{ env.STORE_PATH }}
128+ .nx/cache
129+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
130+ restore-keys : |
131+ ${{ runner.os }}-pnpm-store
132+
133+ - name : Install dependencies
134+ run : pnpm install
135+
136+ - name : Start server for ${{ matrix.framework }}
137+ working-directory : e2e/wrappers
138+ run : |
139+ pnpm run start:${{ matrix.framework }} &
140+ sleep 10
141+
142+ - name : Run tests for ${{ matrix.framework }}
143+ working-directory : e2e/wrappers
144+ run : pnpm run test:${{ matrix.framework }}
145+
146+ - name : Upload test artifacts on failure
147+ if : ${{ failure() }}
148+ uses : actions/upload-artifact@v4
149+ with :
150+ name : test-fails-${{matrix.framework}}
151+ path : e2e/wrappers/screenshots
152+ if-no-files-found : ignore
0 commit comments