Skip to content

Commit 02d3bc5

Browse files
CI: optimize workflow for security updates (#31467)
Co-authored-by: Alex Lavrov <[email protected]>
1 parent e4f5cd2 commit 02d3bc5

File tree

9 files changed

+119
-27
lines changed

9 files changed

+119
-27
lines changed

.github/workflows/build_all.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
build:
10-
runs-on: devextreme-shr2
10+
runs-on: ubuntu-latest
1111

1212
steps:
1313
- name: Get sources
@@ -18,6 +18,11 @@ jobs:
1818
with:
1919
node-version: '20'
2020

21+
- name: Set up .NET
22+
uses: actions/setup-dotnet@v4
23+
with:
24+
dotnet-version: 6.0.x
25+
2126
- name: Install dependencies
2227
run: npm install
2328

.github/workflows/demos_unit_tests.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,27 @@ concurrency:
77
on:
88
pull_request:
99
push:
10-
branches:
11-
- "[0-9][0-9]_[0-9]"
10+
branches: [24_1]
11+
workflow_dispatch:
12+
13+
env:
14+
RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }}
1215

1316
jobs:
17+
check-should-run:
18+
name: Check if tests should run
19+
runs-on: devextreme-shr2
20+
outputs:
21+
should-run: ${{ steps.check.outputs.should-run }}
22+
steps:
23+
- name: Check RUN_TESTS flag
24+
id: check
25+
run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT
26+
1427
test:
1528
name: Run unit tests
29+
needs: check-should-run
30+
if: needs.check-should-run.outputs.should-run == 'true'
1631

1732
runs-on: ubuntu-latest
1833
timeout-minutes: 60

.github/workflows/demos_visual_tests.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,30 @@ concurrency:
77
on:
88
pull_request:
99
push:
10-
branches:
11-
- "[0-9][0-9]_[0-9]"
10+
branches: [24_1]
1211
workflow_dispatch:
1312

1413
env:
1514
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }}
1615
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
16+
RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }}
1717

1818
jobs:
19+
check-should-run:
20+
name: Check if tests should run
21+
runs-on: devextreme-shr2
22+
outputs:
23+
should-run: ${{ steps.check.outputs.should-run }}
24+
steps:
25+
- name: Check RUN_TESTS flag
26+
id: check
27+
run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT
28+
1929
build:
2030
runs-on: ubuntu-22.04
2131
name: Build devextreme
32+
needs: check-should-run
33+
if: needs.check-should-run.outputs.should-run == 'true'
2234
timeout-minutes: 20
2335

2436
steps:
@@ -47,8 +59,8 @@ jobs:
4759
npx nx build devextreme-main
4860
4961
testcafe:
50-
needs:
51-
- build
62+
needs: [check-should-run, build]
63+
if: needs.check-should-run.outputs.should-run == 'true'
5264
strategy:
5365
fail-fast: false
5466
matrix:

.github/workflows/demos_visual_tests_frameworks.yml

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,30 @@ concurrency:
77
on:
88
pull_request:
99
push:
10-
branches:
11-
- "[0-9][0-9]_[0-9]"
10+
branches: [24_1]
1211
workflow_dispatch:
1312

1413
env:
1514
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }}
1615
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
16+
RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }}
1717

1818
jobs:
19+
check-should-run:
20+
name: Check if tests should run
21+
runs-on: devextreme-shr2
22+
outputs:
23+
should-run: ${{ steps.check.outputs.should-run }}
24+
steps:
25+
- name: Check RUN_TESTS flag
26+
id: check
27+
run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT
28+
1929
build-devextreme:
2030
runs-on: ubuntu-22.04
2131
name: Build DevExtreme
32+
needs: check-should-run
33+
if: needs.check-should-run.outputs.should-run == 'true'
2234
timeout-minutes: 20
2335

2436
steps:
@@ -69,7 +81,8 @@ jobs:
6981
runs-on: ubuntu-22.04
7082
name: Build Demos
7183
timeout-minutes: 20
72-
needs: build-devextreme
84+
needs: [check-should-run, build-devextreme]
85+
if: needs.check-should-run.outputs.should-run == 'true'
7386

7487
steps:
7588

@@ -128,6 +141,8 @@ jobs:
128141
get-changes:
129142
runs-on: ubuntu-22.04
130143
name: Get changed demos
144+
needs: check-should-run
145+
if: needs.check-should-run.outputs.should-run == 'true'
131146
timeout-minutes: 5
132147

133148
steps:
@@ -151,9 +166,8 @@ jobs:
151166

152167
lint:
153168
name: ${{ matrix.name }}
154-
needs:
155-
- build-devextreme
156-
- get-changes
169+
needs: [check-should-run, build-devextreme, get-changes]
170+
if: needs.check-should-run.outputs.should-run == 'true'
157171

158172
runs-on: ubuntu-22.04
159173
timeout-minutes: 60
@@ -213,7 +227,8 @@ jobs:
213227
name: ${{ matrix.name }}
214228
runs-on: ubuntu-22.04
215229
timeout-minutes: 10
216-
needs: build-demos
230+
needs: [check-should-run, build-demos]
231+
if: needs.check-should-run.outputs.should-run == 'true'
217232

218233
strategy:
219234
fail-fast: false
@@ -285,7 +300,8 @@ jobs:
285300
fi
286301
287302
testcafe:
288-
needs: build-demos
303+
needs: [check-should-run, build-demos]
304+
if: needs.check-should-run.outputs.should-run == 'true'
289305
strategy:
290306
fail-fast: false
291307
matrix:

.github/workflows/qunit_tests-additional-renovation.yml

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,29 @@ on:
88
pull_request:
99
push:
1010
branches: [24_1]
11+
workflow_dispatch:
1112

1213
env:
1314
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }}
1415
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
16+
RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }}
1517

1618
jobs:
19+
check-should-run:
20+
name: Check if tests should run
21+
runs-on: devextreme-shr2
22+
outputs:
23+
should-run: ${{ steps.check.outputs.should-run }}
24+
steps:
25+
- name: Check RUN_TESTS flag
26+
id: check
27+
run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT
28+
1729
build:
1830
runs-on: devextreme-shr2
1931
name: Build
32+
needs: check-should-run
33+
if: needs.check-should-run.outputs.should-run == 'true'
2034
timeout-minutes: 25
2135

2236
steps:
@@ -62,7 +76,8 @@ jobs:
6276
retention-days: 1
6377

6478
qunit-tests-timezones:
65-
needs: build
79+
needs: [check-should-run, build]
80+
if: needs.check-should-run.outputs.should-run == 'true'
6681
runs-on: devextreme-shr2
6782
name: ${{ matrix.constel }}-${{ matrix.timezone }}
6883
timeout-minutes: 25
@@ -120,7 +135,8 @@ jobs:
120135
# useCsp: 'false'
121136

122137
qunit-tests-mobile-and-shadow-dom:
123-
needs: build
138+
needs: [check-should-run, build]
139+
if: needs.check-should-run.outputs.should-run == 'true'
124140
runs-on: devextreme-shr2
125141
name: ${{ matrix.constel }}-${{ matrix.kind }}
126142
timeout-minutes: 25
@@ -170,7 +186,8 @@ jobs:
170186
useCsp: 'true'
171187

172188
qunit-tests-firefox:
173-
needs: build
189+
needs: [check-should-run, build]
190+
if: needs.check-should-run.outputs.should-run == 'true'
174191
runs-on: devextreme-shr2
175192
name: ${{ matrix.constel }}-firefox
176193
timeout-minutes: 25
@@ -208,7 +225,8 @@ jobs:
208225
useCsp: 'true'
209226

210227
qunit-tests-common:
211-
needs: build
228+
needs: [check-should-run, build]
229+
if: needs.check-should-run.outputs.should-run == 'true'
212230
runs-on: devextreme-shr2
213231
name: ${{ matrix.constel }}-chrome
214232
timeout-minutes: 25
@@ -232,7 +250,8 @@ jobs:
232250
useCsp: 'true'
233251

234252
qunit-tests-no-csp:
235-
needs: build
253+
needs: [check-should-run, build]
254+
if: needs.check-should-run.outputs.should-run == 'true'
236255
runs-on: devextreme-shr2
237256
name: ${{ matrix.constel }}-no-csp
238257
timeout-minutes: 25

.github/workflows/testcafe_tests.yml

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,29 @@ on:
88
pull_request:
99
push:
1010
branches: [24_1]
11+
workflow_dispatch:
1112

1213
env:
1314
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }}
1415
NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }}
1516
BUILD_TEST_INTERNAL_PACKAGE: true
17+
RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }}
1618

1719
jobs:
20+
check-should-run:
21+
name: Check if tests should run
22+
runs-on: devextreme-shr2
23+
outputs:
24+
should-run: ${{ steps.check.outputs.should-run }}
25+
steps:
26+
- name: Check RUN_TESTS flag
27+
id: check
28+
run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT
29+
1830
build:
1931
name: build
32+
needs: check-should-run
33+
if: needs.check-should-run.outputs.should-run == 'true'
2034
strategy:
2135
fail-fast: false
2236

@@ -62,7 +76,8 @@ jobs:
6276

6377
testcafe:
6478
name: ${{ matrix.ARGS.name }}
65-
needs: [build]
79+
needs: [check-should-run, build]
80+
if: needs.check-should-run.outputs.should-run == 'true'
6681
strategy:
6782
fail-fast: false
6883
matrix:

.github/workflows/ts_declarations.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
fi
5151
5252
validate-declarations:
53-
runs-on: devextreme-shr2
53+
runs-on: ubuntu-latest
5454
timeout-minutes: 60
5555
steps:
5656
- name: Get sources
@@ -61,6 +61,11 @@ jobs:
6161
with:
6262
node-version: '20'
6363

64+
- name: Set up .NET
65+
uses: actions/setup-dotnet@v4
66+
with:
67+
dotnet-version: 6.0.x
68+
6469
- name: Restore npm cache
6570
uses: actions/cache@v4
6671
with:

.github/workflows/wrapper_tests.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ env:
1212

1313
jobs:
1414
test:
15-
runs-on: devextreme-shr2
15+
runs-on: ubuntu-22.04
1616
timeout-minutes: 60
1717

1818
steps:
@@ -24,6 +24,11 @@ jobs:
2424
with:
2525
node-version: '20'
2626

27+
- name: Set up .NET
28+
uses: actions/setup-dotnet@v4
29+
with:
30+
dotnet-version: 6.0.x
31+
2732
- name: Get npm cache directory
2833
id: npm-cache-dir
2934
shell: bash

packages/devextreme/testing/runner/runner.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0">
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<ItemGroup>
4-
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.27" />
5-
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.27" />
4+
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.19" />
5+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.19" />
66
</ItemGroup>
77

88
<PropertyGroup>
9-
<TargetFramework>net6</TargetFramework>
9+
<TargetFramework>net8.0</TargetFramework>
1010
<PreserveCompilationContext>true</PreserveCompilationContext>
1111
<StartupObject>Runner.Program</StartupObject>
1212
<OutputType>Exe</OutputType>

0 commit comments

Comments
 (0)