-
-
Notifications
You must be signed in to change notification settings - Fork 371
89 lines (69 loc) · 3.55 KB
/
e2e_process_dependent_files.yaml
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
# This workflow runs system tests: Use the Rector application from the source
# checkout to process "fixture" projects in e2e/ directory
# to see if those can be processed successfully
name: End to End tests processing dependent files
on:
pull_request:
branches:
- main
push:
branches:
- main
env:
# see https://github.com/composer/composer/issues/9368#issuecomment-718112361
COMPOSER_ROOT_VERSION: "dev-main"
jobs:
end_to_end:
runs-on: ubuntu-latest
timeout-minutes: 3
strategy:
fail-fast: false
matrix:
php_version: ['8.2']
directory:
- 'e2e/process-dependent-files'
name: End to end test processing dependent files - ${{ matrix.directory }}
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php_version }}
coverage: none
# run in root rector-src
- run: composer install --ansi
# run in e2e subdir
- run: composer install --ansi
working-directory: ${{ matrix.directory }}
# initial run without cache to start from fresh, should find an issue in the dependency file
- run: php ../e2eTestRunner.php
working-directory: ${{ matrix.directory }}
# running without cache should now provide the same result
- run: php ../e2eTestRunnerWithCache.php
working-directory: ${{ matrix.directory }}
# we modify the dependency file where rector found some issues
- run: patch -u src/DependencyTestClass.php -i patches/DependencyTestClass.php.patch
working-directory: ${{ matrix.directory }}
# when we run rector now, it should find the issue in the dependent file
- run: php ../e2eTestRunnerWithCache.php --diff expected-output-2.diff
working-directory: ${{ matrix.directory }}
# if we run rector again, it should continue finding the issue in the dependent file
- run: php ../e2eTestRunnerWithCache.php --diff expected-output-2.diff
working-directory: ${{ matrix.directory }}
# we remove the dependent file
- run: mv src/DependentTestClass.php src/DependentTestClass.php.bak
working-directory: ${{ matrix.directory }}
# when we run rector now, it should not find any changes
- run: php ../e2eTestRunnerWithCache.php --diff expected-output-3.diff
working-directory: ${{ matrix.directory }}
# we recover the dependent file
- run: mv src/DependentTestClass.php.bak src/DependentTestClass.php
working-directory: ${{ matrix.directory }}
# if we run rector again, it should continue finding the issue in the dependent file
- run: php ../e2eTestRunnerWithCache.php --diff expected-output-2.diff
working-directory: ${{ matrix.directory }}
# we undo the changes in the dependency
- run: patch -R -u src/DependencyTestClass.php -i patches/DependencyTestClass.php.patch
working-directory: ${{ matrix.directory }}
# it should now find the issue in the dependency again and not show the issue in the dependent file
- run: php ../e2eTestRunnerWithCache.php
working-directory: ${{ matrix.directory }}