-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI] [GHA] Introduce the Linux ARM64 workflow #20809
[CI] [GHA] Introduce the Linux ARM64 workflow #20809
Conversation
…ntroduce-linux-arm64-self-hosted
@@ -31,8 +31,9 @@ runs: | |||
|
|||
- if: ${{ runner.os == 'Linux' && runner.arch == 'ARM64' }} | |||
name: Setup Python ${{ inputs.version }} | |||
uses: deadsnakes/action@v3.0.1 | |||
uses: akashchi/deadsnakes-action@c448323fa5caf174c8031875f5dbec027a4a3ce6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sadly, the original deadsnakes action does not work inside a container as it uses github.action_path
- it is incorrectly set if actions are executed inside containers: actions/runner#1762 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The fix is introduced here.
.github/workflows/linux_arm64.yml
Outdated
if-no-files-found: 'warn' | ||
|
||
# Ticket: 126379 | ||
# CPU_Functional_Tests: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ilya-lavrenov, you were right: these tests are inconsistent on Linux ARM with them failing differently each time they run.
The full pipeline (what is left of it compared to |
…ntroduce-linux-arm64-self-hosted
run: | | ||
/usr/bin/python3.8 -m pip install -U pip | ||
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | ||
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
workflow is called as Python 3.11
:)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
as the linux.yml
is called in which these steps are also present; I believe that there is a reason it is done via the 3.8 system Python but I cannot recall it( Do you suggest using the installed 3.11 Python?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose some dependencies are not available for newer python versions and 3.8 is a common denominator here.
My comment was about wrong name for workflow, because it mistakenly shows that we use 3.11 while 3.8 is used underneath
.github/workflows/linux_arm64.yml
Outdated
# ${{ env.INSTALL_TEST_DIR }}/TEST*.html | ||
# if-no-files-found: 'error' | ||
|
||
# TODO: Enable once they are ready for self-hosted runners |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are they not ready?
We run such tests on x64
BTW, can we uncomment all pipelines and adding if: ${{ 'false' }}
to disable them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These jobs are enabled for the x64 yet they run not on the self-hosted runners but on the GitHub-hosted, I believe due to memory/255 issues. I'm unsure whether they could work on the self-hosted arms.
I will do the if: ${{ 'false' }}
, it looks cleaner, thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changed the wording to indicate that the problems are with the machines and not the tests.
run: | | ||
/usr/bin/python3.8 -m pip install -U pip | ||
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | ||
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose some dependencies are not available for newer python versions and 3.8 is a common denominator here.
My comment was about wrong name for workflow, because it mistakenly shows that we use 3.11 while 3.8 is used underneath
* add arm as a matrix for build job * uncomment * comment * try inside pipeline * check location * another dirs * try to privide correct action path * use corrected action * use newer commit * use newer commit * use newer commit * use newer action commit * add setting * rm from pipeline, adapt action iteslf * add missing deps * enable samples and debian jobs * correct yml * correct image name * correct syntax, use self-hosted option * enable onnx runtime and c++, use newer action * enable Python and CPU Func tests * add missing deps for arm64 * increase timeout for python tests * disable some tests, add more time * skip failing tests * skip speech sample test on arm * dummy chang * skip mxnet mo on arm, run all tests * rm quotes * separate linux x86 and arm64 workflows * rm unused matrix refs, add timeouts * add skips for c++ tests and some Python tests * correct cache keys, extend timeout * skip more python tests * add more skips: for python and CPU func * extend cpu func list with skips * disable cpu func tests and python api 2.0 tests * rm disable job * styling, rm pr trigger, rm always(), rm unnecessary changes * revert * use ifs instead of comments, provide better wording for skips
Tickets: