Skip to content
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

Conversation

akashchi
Copy link
Contributor

@akashchi akashchi commented Nov 1, 2023

Tickets:

  • 123661

@akashchi akashchi added category: CI OpenVINO public CI WIP work in progress do not merge do_not_review do_not_merge github_actions Pull requests that update GitHub Actions code labels Nov 1, 2023
@akashchi akashchi added this to the 2023.3 milestone Nov 1, 2023
@@ -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
Copy link
Contributor Author

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)

Copy link
Contributor Author

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.

.gitignore Outdated Show resolved Hide resolved
if-no-files-found: 'warn'

# Ticket: 126379
# CPU_Functional_Tests:
Copy link
Contributor Author

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.

@akashchi akashchi removed the WIP work in progress label Nov 30, 2023
@akashchi
Copy link
Contributor Author

The full pipeline (what is left of it compared to linux.yml) was green: https://github.com/openvinotoolkit/openvino/actions/runs/7035925425. Only post-commit trigger is enabled.

@github-actions github-actions bot removed the category: dependency_changes Pull requests that update a dependency file label Dec 1, 2023
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
Copy link
Contributor

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 :)

Copy link
Contributor Author

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?

Copy link
Contributor

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

# ${{ env.INSTALL_TEST_DIR }}/TEST*.html
# if-no-files-found: 'error'

# TODO: Enable once they are ready for self-hosted runners
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor Author

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
Copy link
Contributor

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

@ilya-lavrenov ilya-lavrenov merged commit 62f5bd6 into openvinotoolkit:master Dec 5, 2023
71 of 73 checks passed
akuporos pushed a commit to akuporos/openvino that referenced this pull request Dec 8, 2023
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: CI OpenVINO public CI category: MO Model Optimizer category: ONNX FE OpenVINO ONNX FrontEnd category: PyTorch FE OpenVINO PyTorch Frontend category: samples OpenVINO Runtime Samples category: TF FE OpenVINO TensorFlow FrontEnd category: transformations OpenVINO Runtime library - Transformations github_actions Pull requests that update GitHub Actions code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants