Skip to content

Commit ec36d10

Browse files
author
git-action
committed
Merge remote-tracking branch 'origin/master' into release-to-master
2 parents d139e1e + 1a75113 commit ec36d10

File tree

237 files changed

+8140
-2668
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

237 files changed

+8140
-2668
lines changed

.github/pull_request_template.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,34 @@ Description of changes.
55
---
66

77
> [!IMPORTANT]
8-
> Please, **don't forget to run `rush change`** for the commits that introduce **new features** 🙏
8+
> Please, **don't forget to run `rush change`** for the commits that introduce **new features** or **significant changes** 🙏 This information is used to generate the [change log](https://github.com/gooddata/gooddata-ui-sdk/blob/master/libs/sdk-ui-all/CHANGELOG.md).
99
1010
---
1111

12-
Refer to [documentation](https://github.com/gooddata/gooddata-ui-sdk/blob/master/dev_docs/continuous_integration.md) to see how to run checks and tests in the pull request. This is the list of the most used commands:
12+
### Run extended test by pull request comment
13+
14+
Commands can be triggered by posting a comment with specific text on the pull request. It is possible to trigger multiple commands simultaneously.
1315

1416
```
15-
extended test - backstop
17+
extended-test --backstop | --integrated | --isolated | --record [--filter <file1>,<file2>,...,<fileN>]
1618
```
1719

20+
#### Explanation
21+
22+
- `--backstop` The command to run screen tests.
23+
- `--integrated` The command to run integrated tests against the live backend.
24+
- `--isolated` The command to run isolated tests against recordings.
25+
- `--record` The command to create new recordings for isolated tests.
26+
- `--filter` (Optional) A comma-separated list of test files to run. This parameter is valid only for the `--integrated`, `--isolated`, and `--record` commands.
27+
28+
#### Examples
29+
1830
```
19-
extended test - integrated
20-
extended test - isolated
21-
extended test - record
31+
extended-test --backstop
32+
extended-test --integrated
33+
extended-test --integrated --filter test1.spec.ts,test2.spec.ts
34+
extended-test --isolated
35+
extended-test --isolated --filter test1.spec.ts,test2.spec.ts
36+
extended-test --record
37+
extended-test --record --filter test1.spec.ts,test2.spec.ts
2238
```

.github/workflows/pull-request-comment.yaml

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
- created
66
jobs:
77
get-pr-info:
8-
if: github.event.issue.pull_request != null && startsWith(github.event.comment.body, 'extended test')
8+
if: github.event.issue.pull_request != null && startsWith(github.event.comment.body, 'extended-test')
99
runs-on:
1010
group: infra1-runners-arc
1111
labels: runners-small
@@ -27,7 +27,7 @@ jobs:
2727

2828
command-started:
2929
needs: [get-pr-info]
30-
if: ${{ startsWith(github.event.comment.body, 'extended test') }}
30+
if: ${{ startsWith(github.event.comment.body, 'extended-test') }}
3131
permissions:
3232
pull-requests: write
3333
runs-on:
@@ -51,45 +51,93 @@ jobs:
5151
env:
5252
COMMENT: ${{ github.event.comment.body }}
5353

54-
e2e-run-isolated:
54+
extract-filter:
5555
needs: [get-pr-info]
56-
if: ${{ github.event.comment.body == 'extended test - isolated' }}
56+
outputs:
57+
filter: ${{ steps.extract-filter.outputs.filter_output }}
58+
runs-on:
59+
group: infra1-runners-arc
60+
labels: runners-small
61+
steps:
62+
- name: Extract filter
63+
id: extract-filter
64+
run: |
65+
# Allowed commands
66+
commands=("extended-test --isolated" "extended-test --integrated" "extended-test --record")
67+
68+
# Check if the command matches one of the allowed commands
69+
is_valid_command=false
70+
for cmd in "${commands[@]}"; do
71+
if [[ $command_string == $cmd* ]]; then
72+
is_valid_command=true
73+
break
74+
fi
75+
done
76+
77+
# Initialize filter_value as empty
78+
filter_value=""
79+
80+
if $is_valid_command; then
81+
# Extract the --filter value if present
82+
filter_pattern="--filter ([^ ]+)"
83+
if [[ $command_string =~ $filter_pattern ]]; then
84+
filter_value=${BASH_REMATCH[1]}
85+
fi
86+
fi
87+
88+
# Output the filter value if set
89+
if [[ -n $filter_value ]]; then
90+
echo "Filter value: $filter_value"
91+
echo "filter_output=$filter_value" >> $GITHUB_OUTPUT
92+
else
93+
echo "No filter found."
94+
fi
95+
env:
96+
command_string: ${{ github.event.comment.body }}
97+
98+
99+
e2e-run-isolated:
100+
needs: [get-pr-info,extract-filter]
101+
if: ${{ startsWith(github.event.comment.body, 'extended-test --isolated') }}
57102
permissions:
58103
id-token: write
59104
contents: read
60105
pull-requests: read
61106
uses: ./.github/workflows/rw-rush-build-e2e-tests.yml
62107
with:
63108
source-ref: ${{ needs.get-pr-info.outputs.sha }}
109+
filter: ${{ needs.extract-filter.outputs.filter }}
64110
secrets: inherit
65111

66112
e2e-record:
67-
needs: [get-pr-info]
68-
if: ${{ github.event.comment.body == 'extended test - record' }}
113+
needs: [get-pr-info,extract-filter]
114+
if: ${{ startsWith(github.event.comment.body, 'extended-test --record') }}
69115
permissions:
70116
id-token: write
71117
contents: read
72118
pull-requests: read
73119
uses: ./.github/workflows/rw-rush-build-e2e-tests-record.yml
74120
with:
75121
source-ref: ${{ needs.get-pr-info.outputs.sha }}
122+
filter: ${{ needs.extract-filter.outputs.filter }}
76123
secrets: inherit
77124

78125
e2e-integrated:
79-
needs: [get-pr-info]
80-
if: ${{ github.event.comment.body == 'extended test - integrated' }}
126+
needs: [get-pr-info,extract-filter]
127+
if: ${{ startsWith(github.event.comment.body, 'extended-test --integrated') }}
81128
permissions:
82129
id-token: write
83130
contents: read
84131
pull-requests: read
85132
uses: ./.github/workflows/rw-rush-build-e2e-tests-integrated.yml
86133
with:
87134
source-ref: ${{ needs.get-pr-info.outputs.sha }}
135+
filter: ${{ needs.extract-filter.outputs.filter }}
88136
secrets: inherit
89137

90138
e2e-backstop:
91139
needs: [get-pr-info]
92-
if: ${{ github.event.comment.body == 'extended test - backstop' }}
140+
if: ${{ startsWith(github.event.comment.body, 'extended-test --backstop') }}
93141
permissions:
94142
id-token: write
95143
contents: read
@@ -103,7 +151,7 @@ jobs:
103151
permissions:
104152
pull-requests: write
105153
needs: [e2e-run-isolated,e2e-record,e2e-integrated,e2e-backstop]
106-
if: ${{ !cancelled() && startsWith(github.event.comment.body, 'extended test') }}
154+
if: ${{ !cancelled() && startsWith(github.event.comment.body, 'extended-test') }}
107155
runs-on:
108156
group: infra1-runners-arc
109157
labels: runners-small
@@ -117,16 +165,16 @@ jobs:
117165
const url = `https://github.com/${repository.owner}/${repository.repo}/actions/runs/${context.runId}`;
118166
119167
let testResult = "'command not recognized'";
120-
if (process.env.COMMENT === 'extended test - isolated') {
168+
if (process.env.COMMENT?.startsWith('extended-test --isolated')) {
121169
testResult = process.env.TEST_RESULT_ISOLATED;
122170
}
123-
if (process.env.COMMENT === 'extended test - record') {
171+
if (process.env.COMMENT?.startsWith('extended-test --record')) {
124172
testResult = process.env.TEST_RESULT_RECORD;
125173
}
126-
if (process.env.COMMENT === 'extended test - integrated') {
174+
if (process.env.COMMENT?.startsWith('extended-test --integrated')) {
127175
testResult = process.env.TEST_RESULT_INTEGRATED;
128176
}
129-
if (process.env.COMMENT === 'extended test - backstop') {
177+
if (process.env.COMMENT?.startsWith('extended-test --backstop')) {
130178
testResult = process.env.TEST_RESULT_BACKSTOP;
131179
}
132180

.github/workflows/push-e2e-integrated-tests.yaml

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,44 @@ on:
66
- release
77

88
jobs:
9+
pull-request-info:
10+
if: ${{ !(startsWith(github.event.head_commit.message, format('chore{0} bump versions to', ':')) || startsWith(github.event.head_commit.message, format('chore{0} update Hugo version to', ':'))) }}
11+
runs-on: [ubuntu-latest]
12+
outputs:
13+
author: ${{ steps.author.outputs.result }}
14+
steps:
15+
- uses: actions/github-script@v7
16+
id: author
17+
with:
18+
script: |
19+
const pullRequests = await github.rest.repos.listPullRequestsAssociatedWithCommit({
20+
commit_sha: context.sha,
21+
owner: context.repo.owner,
22+
repo: context.repo.repo,
23+
});
24+
25+
return pullRequests?.data[0]?.user?.login;
26+
result-encoding: string
27+
928
e2e-integrated:
10-
if: ${{ !(startsWith(github.event.head_commit.message, 'Release ') || startsWith(github.event.head_commit.message, format('chore{0} bump versions to', ':'))) }}
29+
needs: [pull-request-info]
1130
permissions:
1231
id-token: write
1332
contents: read
1433
pull-requests: read
1534
uses: ./.github/workflows/rw-rush-build-e2e-tests-integrated.yml
1635
secrets: inherit
36+
37+
notify-failed-to-slack:
38+
if: ${{ !cancelled() && needs.e2e-integrated.result == 'failure' }}
39+
needs: [e2e-integrated,pull-request-info]
40+
runs-on: [ubuntu-latest]
41+
steps:
42+
- name: Inform to slack when workflows failed
43+
uses: slackapi/[email protected]
44+
with:
45+
channel-id: "#javascript-notifications"
46+
slack-message: ":warning: post merge e2e in *gooddata-sdk-ui* initiated by ${{env.AUTHOR}} encountered an error during execution. Check the *<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|log here>* for further information."
47+
env:
48+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
49+
AUTHOR: ${{ needs.pull-request-info.outputs.author }}

.github/workflows/rw-rush-build-e2e-tests-backstop.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,14 @@ jobs:
8080
./common/scripts/ci/run_backstop_tests.sh
8181
env:
8282
GH_RUN_ID: ${{ github.run_id }}
83+
- name: Cleanup backstop artifacts
84+
if: ${{ !cancelled() && failure() }}
85+
run: |
86+
node libs/sdk-ui-tests/backstop/backstop-cleanup-artifacts.cjs
8387
- name: Archive the cypress test artifacts
8488
uses: actions/upload-artifact@v4
8589
if: ${{ !cancelled() && failure() }}
8690
with:
87-
name: backstop-test-artifacts
91+
name: backstop-test-artifacts-failed
8892
path: |
8993
libs/sdk-ui-tests/backstop/output/**/*

.stylelintrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"order/properties-order": null,
55
"max-nesting-depth": 4,
66
"value-keyword-case": ["lower", { "ignoreProperties": ["--gd-font-family"] }],
7-
"color-hex-length": null
7+
"color-hex-length": null,
8+
"declaration-empty-line-before": null
89
}
910
}

NOTICE

Lines changed: 102 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
99

10-
Date generated: 2024-12-12
10+
Date generated: 2024-12-20
1111

12-
Revision ID: 122ea873a7d2a0677994b41a1dd27ad5eee0f954
12+
Revision ID: 6544cd7bcc5304e094ab7788ea88129cbe5fbb6f
1313

1414
================================================================================
1515
================================================================================
@@ -206,6 +206,8 @@ Revision ID: 122ea873a7d2a0677994b41a1dd27ad5eee0f954
206206
- @seznam/compose-react-refs (1.0.6) [ISC]
207207
- @sidvind/better-ajv-errors (2.1.3) [Apache-2.0]
208208
- @sinclair/typebox (0.27.8) [MIT]
209+
- @tanstack/react-virtual (3.11.1) [MIT]
210+
- @tanstack/virtual-core (3.10.9) [MIT]
209211
- @tootallnate/once (2.0.0) [MIT]
210212
- @ts-morph/common (0.12.3) [Apache-2.0, MIT]
211213
- @types/body-parser (1.19.5) [MIT]
@@ -7897,6 +7899,78 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
78977899
SOFTWARE.
78987900

78997901

7902+
--------------------------------------------------------------------------------
7903+
Package Title: @tanstack/react-virtual (3.11.1)
7904+
7905+
Package Locator: npm+@tanstack/react-virtual$3.11.1
7906+
7907+
Package Depth: Direct
7908+
--------------------------------------------------------------------------------
7909+
7910+
* Declared Licenses *
7911+
MIT
7912+
7913+
7914+
MIT License
7915+
7916+
Copyright (c) 2021-present Tanner Linsley
7917+
7918+
Permission is hereby granted, free of charge, to any person obtaining a copy
7919+
of this software and associated documentation files (the "Software"), to deal
7920+
in the Software without restriction, including without limitation the rights
7921+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7922+
copies of the Software, and to permit persons to whom the Software is
7923+
furnished to do so, subject to the following conditions:
7924+
7925+
The above copyright notice and this permission notice shall be included in all
7926+
copies or substantial portions of the Software.
7927+
7928+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7929+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7930+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7931+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
7932+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
7933+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
7934+
SOFTWARE.
7935+
7936+
7937+
7938+
--------------------------------------------------------------------------------
7939+
Package Title: @tanstack/virtual-core (3.10.9)
7940+
7941+
Package Locator: npm+@tanstack/virtual-core$3.10.9
7942+
7943+
Package Depth: Transitive
7944+
--------------------------------------------------------------------------------
7945+
7946+
* Declared Licenses *
7947+
MIT
7948+
7949+
7950+
MIT License
7951+
7952+
Copyright (c) 2021-present Tanner Linsley
7953+
7954+
Permission is hereby granted, free of charge, to any person obtaining a copy
7955+
of this software and associated documentation files (the "Software"), to deal
7956+
in the Software without restriction, including without limitation the rights
7957+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7958+
copies of the Software, and to permit persons to whom the Software is
7959+
furnished to do so, subject to the following conditions:
7960+
7961+
The above copyright notice and this permission notice shall be included in all
7962+
copies or substantial portions of the Software.
7963+
7964+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7965+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7966+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7967+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
7968+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
7969+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
7970+
SOFTWARE.
7971+
7972+
7973+
79007974
--------------------------------------------------------------------------------
79017975
Package Title: @tootallnate/once (2.0.0)
79027976

@@ -67710,6 +67784,31 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
6771067784
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6771167785

6771267786

67787+
* MIT *
67788+
67789+
MIT License
67790+
67791+
Copyright (c) 2021-present Tanner Linsley
67792+
67793+
Permission is hereby granted, free of charge, to any person obtaining a copy
67794+
of this software and associated documentation files (the "Software"), to deal
67795+
in the Software without restriction, including without limitation the rights
67796+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
67797+
copies of the Software, and to permit persons to whom the Software is
67798+
furnished to do so, subject to the following conditions:
67799+
67800+
The above copyright notice and this permission notice shall be included in all
67801+
copies or substantial portions of the Software.
67802+
67803+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
67804+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
67805+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
67806+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
67807+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
67808+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
67809+
SOFTWARE.
67810+
67811+
6771367812
* MIT *
6771467813

6771567814
MIT License
@@ -72561,4 +72660,4 @@ POSSIBILITY OF SUCH DAMAGE.
7256172660
--------------------------------------------------------------------------------
7256272661
--------------------------------------------------------------------------------
7256372662

72564-
Report Generated by FOSSA on 2024-12-12
72663+
Report Generated by FOSSA on 2024-12-20

0 commit comments

Comments
 (0)