Skip to content

Commit 188dbae

Browse files
Merge branch 'openvinotoolkit:develop' into develop
2 parents aebdc5f + f37b78e commit 188dbae

233 files changed

Lines changed: 43901 additions & 30686 deletions

File tree

Some content is hidden

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

.github/actionlint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ self-hosted-runner:
22
labels:
33
- windows-2025-8-core
44
- windows-2025-16-core
5-
- aks-linux-4-cores-28gb-gpu-tesla-t4
5+
- aks-linux-6-cores-55gb-gpu-a10

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ updates:
1414
assignees:
1515
- "AlexanderDokuchaev"
1616
open-pull-requests-limit: 10
17+
groups:
18+
github-actions:
19+
patterns:
20+
- "*"
1721

1822
# Python
1923
- package-ecosystem: pip

.github/workflows/api_changes_check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
echo '{"pr_number": "${{ github.event.pull_request.number }}", "action": "none"}' > api_status.json
6464
6565
- name: Upload artifact
66-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f #v7.0.0
66+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1
6767
with:
6868
name: api_status
6969
path: api_status.json

.github/workflows/api_set_label.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- name: Download artifact
2020
id: download-artifact
21-
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
21+
uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21
2222
with:
2323
run_id: ${{ github.event.workflow_run.id }}
2424
name: api_status
@@ -36,7 +36,7 @@ jobs:
3636
run: echo ${{ steps.status.outputs.action }} ${{ steps.status.outputs.pr_number }}
3737

3838
- name: Add label
39-
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
39+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
4040
if: ${{ steps.status.outputs.action == 'add' }}
4141
with:
4242
github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -49,7 +49,7 @@ jobs:
4949
})
5050
5151
- name: Remove label
52-
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
52+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
5353
if: ${{ steps.status.outputs.action == 'remove' }}
5454
with:
5555
github-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/assign_issue.yml

Lines changed: 119 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,129 @@
1-
name: Take Issue
2-
permissions: read-all
1+
name: Handle Issue Assignments
32

43
on:
54
issue_comment:
6-
types:
7-
- created
8-
- edited
5+
types: [created]
6+
issues:
7+
types: [assigned, unassigned]
8+
9+
permissions: read-all
910

1011
jobs:
11-
take-issue:
12-
name: Take issue
12+
handle-issue:
1313
runs-on: ubuntu-latest
14+
timeout-minutes: 10
1415
permissions:
1516
issues: write
16-
timeout-minutes: 10
17+
repository-projects: write
1718
steps:
18-
- name: take an issue
19-
uses: bdougie/take-action@1439165ac45a7461c2d89a59952cd7d941964b87 # v1.6.1
19+
- name: Process issue
20+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 #v6
2021
with:
21-
message: Thank you for looking into this issue! Please let us know if you have any questions or require any help.
22-
issueCurrentlyAssignedMessage: Thanks for being interested in this issue. It looks like this ticket is already assigned to a contributor. Please communicate with the assigned contributor to confirm the status of the issue.
23-
trigger: .take
24-
token: ${{ secrets.GITHUB_TOKEN }}
22+
github-token: ${{ secrets.GITHUB_TOKEN }}
23+
script: |
24+
const LABEL = "good first issue";
25+
const COLUMNS = {
26+
todo: "Contributors Needed",
27+
inProgress: "Assigned",
28+
done: "Closed"
29+
};
30+
31+
const issue = context.payload.issue;
32+
33+
async function getProjectId() {
34+
try {
35+
const projects = await github.rest.projects.listForRepo({
36+
owner: context.repo.owner,
37+
repo: context.repo.repo
38+
});
39+
const project = projects.data.find(p => p.name === "Good first issues");
40+
if (!project) throw new Error("Project not found");
41+
return project.id;
42+
} catch (err) {
43+
console.log("Error fetching project ID:", err);
44+
throw err;
45+
}
46+
}
47+
48+
async function moveIssue(columnName) {
49+
if (!issue.labels?.some(l => l.name.toLowerCase() === LABEL)) {
50+
console.log(`Issue #${issue.number} - not a good first issue, skipping`);
51+
return;
52+
}
53+
54+
try {
55+
const PROJECT_ID = await getProjectId();
56+
const columns = await github.rest.projects.listColumns({ project_id: PROJECT_ID });
57+
const column = columns.data.find(c => c.name === columnName);
58+
if (!column) throw new Error(`Can't find column ${columnName}`);
59+
60+
const cards = await github.rest.projects.listCards({ column_id: column.id });
61+
const existingCard = cards.data.find(c => c.content_url.endsWith(`/issues/${issue.number}`));
62+
63+
if (existingCard) {
64+
await github.rest.projects.moveCard({
65+
card_id: existingCard.id,
66+
position: "top",
67+
column_id: column.id
68+
});
69+
} else {
70+
await github.rest.projects.createCard({
71+
column_id: column.id,
72+
content_id: issue.id,
73+
content_type: "Issue"
74+
});
75+
}
76+
77+
console.log(`Updated issue #${issue.number} to ${columnName}`);
78+
} catch (err) {
79+
console.log(`Error updating issue #${issue.number}:`, err);
80+
throw err;
81+
}
82+
}
83+
84+
// Handle comment-based triggers (.take and .release)
85+
if (context.payload.comment) {
86+
const comment = context.payload.comment.body.trim();
87+
const user = context.payload.comment.user.login;
88+
89+
if (comment === ".take") {
90+
if (!issue.labels?.some(l => l.name.toLowerCase() === LABEL)) {
91+
console.log(`Issue #${issue.number} - not a good first issue, ignoring .take command`);
92+
return;
93+
}
94+
if (issue.assignees?.length) {
95+
const currentAssignee = issue.assignees[0].login;
96+
await github.rest.issues.createComment({
97+
owner: context.repo.owner,
98+
repo: context.repo.repo,
99+
issue_number: issue.number,
100+
body: `@${user} this issue is already assigned to a contributor.`
101+
});
102+
console.log(`Issue #${issue.number} already assigned to ${currentAssignee}, ignoring .take from ${user}`);
103+
return;
104+
}
105+
await github.rest.issues.addAssignees({
106+
owner: context.repo.owner,
107+
repo: context.repo.repo,
108+
issue_number: issue.number,
109+
assignees: [user]
110+
});
111+
// No need to move issue here as the assignment event will trigger that
112+
}
113+
114+
if (comment === ".release") {
115+
await github.rest.issues.removeAssignees({
116+
owner: context.repo.owner,
117+
repo: context.repo.repo,
118+
issue_number: issue.number,
119+
assignees: [user]
120+
});
121+
// No need to move issue here as the unassignment event will trigger that
122+
}
123+
}
124+
125+
// Handle assignment/unassignment events
126+
if (context.payload.action === "assigned" || context.payload.action === "unassigned") {
127+
const hasAssignee = issue.assignees?.length > 0;
128+
await moveIssue(hasAssignee ? COLUMNS.inProgress : COLUMNS.todo);
129+
}

.github/workflows/build_html_doc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Archive built HTMLs
2929
shell: bash
3030
run: tar -czf artifact.tar html_build/html
31-
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f #v7.0.0
31+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1
3232
with:
3333
name: html_doc_artifact
3434
path: artifact.tar

.github/workflows/call_precommit.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
with:
3434
python-version: ${{ inputs.python_version }}
3535
- name: Install uv
36-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
36+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
3737
- name: Override constraints
3838
if: ${{ inputs.override_requirements != '' }}
3939
run: python .github/scripts/override_constraints.py "${{ inputs.override_requirements }}"
@@ -61,7 +61,7 @@ jobs:
6161
with:
6262
python-version: ${{ inputs.python_version }}
6363
- name: Install uv
64-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
64+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
6565
- name: Override constraints
6666
if: ${{ inputs.override_requirements != '' }}
6767
run: python .github/scripts/override_constraints.py "${{ inputs.override_requirements }}"
@@ -89,7 +89,7 @@ jobs:
8989
with:
9090
python-version: ${{ inputs.python_version }}
9191
- name: Install uv
92-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
92+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
9393
- name: Override constraints
9494
if: ${{ inputs.override_requirements != '' }}
9595
run: python .github/scripts/override_constraints.py "${{ inputs.override_requirements }}"
@@ -117,7 +117,7 @@ jobs:
117117
with:
118118
python-version: ${{ inputs.python_version }}
119119
- name: Install uv
120-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
120+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
121121
- name: Install test requirements
122122
run: uv pip install --system . -r tests/tools/requirements.txt
123123
- name: Print installed modules
@@ -141,7 +141,7 @@ jobs:
141141
with:
142142
python-version: ${{ inputs.python_version }}
143143
- name: Install uv
144-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
144+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
145145
- name: Override constraints
146146
if: ${{ inputs.override_requirements != '' }}
147147
run: python .github/scripts/override_constraints.py "${{ inputs.override_requirements }}"
@@ -155,7 +155,7 @@ jobs:
155155

156156
pytorch-cuda:
157157
timeout-minutes: 40
158-
runs-on: aks-linux-4-cores-28gb-gpu-tesla-t4
158+
runs-on: aks-linux-6-cores-55gb-gpu-a10
159159
if: ${{ inputs.gpu_enabled == true }}
160160
defaults:
161161
run:
@@ -183,7 +183,7 @@ jobs:
183183
with:
184184
python-version: ${{ inputs.python_version }}
185185
- name: Install uv
186-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
186+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
187187
- name: Override constraints
188188
if: ${{ inputs.override_requirements != '' }}
189189
run: python .github/scripts/override_constraints.py "${{ inputs.override_requirements }}"

.github/workflows/conformance_weight_compression.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
with:
5454
python-version: ${{ env.PYTHON_VERSION }}
5555
- name: Install uv
56-
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
56+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
5757
- name: cpuinfo
5858
run: cat /proc/cpuinfo
5959
- name: Install NNCF and test requirements
@@ -77,14 +77,14 @@ jobs:
7777
run: column -s, -t < tmp/results.csv || echo "no file"
7878
- name: Upload artifact
7979
if: ${{ !cancelled() }}
80-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f #v7.0.0
80+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a #v7.0.1
8181
with:
8282
name: wc_results_${{ matrix.group }}
8383
path: tmp/results.csv
8484
if-no-files-found: ignore
8585
- name: Upload test results
8686
if: ${{ !cancelled() }}
87-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
87+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
8888
with:
8989
name: weight-compression-pytest-results-${{ matrix.group }}
9090
path: ${{ env.RESULT_XML }}

.github/workflows/examples.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,15 @@ jobs:
8686
[ $ret -eq 5 ] && [ -n "${{ inputs.pytest_args || '' }}" ] && exit 0 || exit $ret
8787
- name: Upload test results
8888
if: ${{ !cancelled() }}
89-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
89+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
9090
with:
9191
name: examples-cpu-pytest-results-${{ matrix.group }}
9292
path: ${{ env.RESULT_XML }}
9393
retention-days: 7
9494

9595
examples-cuda:
9696
name: Test examples CUDA [${{ matrix.group }}/1]
97-
runs-on: aks-linux-4-cores-28gb-gpu-tesla-t4
97+
runs-on: aks-linux-6-cores-55gb-gpu-a10
9898
timeout-minutes: 40
9999
if: ${{ !inputs.skip_gpu }}
100100
strategy:
@@ -145,7 +145,7 @@ jobs:
145145
[ $ret -eq 5 ] && [ -n "${{ inputs.pytest_args || '' }}" ] && exit 0 || exit $ret
146146
- name: Upload test results
147147
if: ${{ !cancelled() }}
148-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
148+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
149149
with:
150150
name: examples-cuda-pytest-results-${{ matrix.group }}
151151
path: ${{ env.RESULT_XML }}
@@ -199,7 +199,7 @@ jobs:
199199
[ $ret -eq 5 ] && [ -n "${{ inputs.pytest_args || '' }}" ] && exit 0 || exit $ret
200200
- name: Upload test results
201201
if: ${{ !cancelled() }}
202-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
202+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
203203
with:
204204
name: examples-win-cpu-pytest-results-${{ matrix.group }}
205205
path: ${{ env.RESULT_XML }}

.github/workflows/executorch.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: ExecuTorch
2+
permissions: read-all
3+
4+
on:
5+
workflow_dispatch:
6+
schedule:
7+
- cron: '0 0 * * *'
8+
pull_request:
9+
paths:
10+
- 'tests/executorch/*'
11+
- 'src/nncf/experimental/torch/fx/*'
12+
- 'src/nncf/quantization/algorithms/*'
13+
14+
jobs:
15+
executorch:
16+
timeout-minutes: 40
17+
runs-on: ubuntu-latest-8-cores
18+
defaults:
19+
run:
20+
shell: bash
21+
env:
22+
DEBIAN_FRONTEND: noninteractive
23+
steps:
24+
- name: Install dependencies
25+
run : |
26+
sudo apt-get update
27+
sudo apt-get --assume-yes install gcc g++ build-essential ninja-build libgl1-mesa-dev libglib2.0-0
28+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
29+
with:
30+
lfs: true
31+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
32+
with:
33+
python-version: "3.10.14"
34+
- name: Install uv
35+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
36+
- name: Runner info
37+
continue-on-error: true
38+
run: |
39+
cat /etc/*release
40+
cat /proc/cpuinfo
41+
- name: Install NNCF and test requirements
42+
run: |
43+
pip install . -r tests/executorch/requirements.txt
44+
- name: Print installed modules
45+
run: pip list
46+
- name: Run PyTorch precommit test scope
47+
run: |
48+
pytest -ra tests/executorch

0 commit comments

Comments
 (0)