### Details:
- Port of #24703
- The issue that was present on the release branches does not affect the
master branch yet but it could if, for example, a new folder is added to
the cache path.
### Tickets:
- *142372*
### Details:
We have introduced a new custom action that uploads and downloads cached
files as monolithic tarballs. It functions similarly to the GHA cache
action but utilizes mounted shared disks to save and restore caches.
The action searches for tarball files in the specified cache directory,
filters them by restore keys, and sorts them by access time. The most
recently accessed file will be downloaded and extracted to the runner
file system. As a post-action step, it archives files to the tarball and
uploads them to the remote share. Additionally, it provides the ability
to clean up old cache files.
It also includes the following separate actions:
- Restore
- Save
- Cleanup
These actions can be used individually in workflows
For example, its usage is demonstrated in the PR, which includes changes
to the .github/workflows/linux_riscv.yml file
### Tickets:
- *ticket-id*
* extract cpu func tests into a reusable workflow
* add needs
* check paths
* correct paths
* rm usage of setupvars
* extract samples
* use yaml string
* split mac workflow
* check variables
* try github workspace
* check full dir
* set variables
* try with sub directory
* Revert "try with sub directory"
This reverts commit d891ee3f28.
* extract c++ tests from linux
* change
* use cxx workflow in mac workflows
* add noninteractive
* extract cpu func tests
* rm unused
* enable mac
* fix reusable workflow name
* correct path for sparse-checkout
* extract python UT
* remove unnecessary asterisk
* remove another unnecessary asterisk
* use reusable action for linux cc
* add check for setupvars existence
* check with manually installed opencl
* add components input to samples workflow; rm pr triggers for mac workflows
* add missing needs
* add missing option for deps install script
* use disables in test themselves instead of ifs in workflows
* use reusable workflow for cxx tests in linux arm
* use python reusable workflow in linux arm
* add missing endif
* use self-hosted for samples, add x86_64 constraint for jax
* check paths
* find gompby partial name
* skip failing tests on arm; correct gomp finding for ovc
* check tests
* add debian packages job; use job_ prefix for reusable workflows with jobs
* extract tf hub model tests
* extract tf model hub perf tests
* extract pytorch models tests
* do not use container on GHA runners
* extract onnx runtime
* add missing deps
* skip test for linux arm
* rm always()s
* fix quotes
* correct paths
* correct ifs, check dir for onnxruntime
* correct path for onnxruntime utils folder; install python3
* use self-hosted as input
* check for self-hosted runner via name, pass version
* skip cpu plugin unittest
* check cxx tests
* rm pr trigger
* 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
* Add Smart CI for more pipelines. Refactor logic for workflow skip
Since different workflows may have different requirements for skipping them, I suggest to move these requirements to parameters instead of hardcoding them
* Use patterns for skipping pipeline for conformance-only
* Remove path filters for Android
* Return mistakenly deleted param
* Propagate params to Python script
* Add missing outputs mapping
* Return push trigger
* Skip CC CPU func when CPU is not affected
* Fix variable name
* Workaround for some non-repo components in Smart CI
* Add possibility to add all components as dependent
* Remove extra check
* Add test case for "all" key
* Try using a custom action directly from repo
* Run smart CI under ubuntu-latest
* Set output + add a sample step
* Update linux.yml
* Add components.yml
* Add some conditions
* Just to check if reference to "needs" work in job context
* Update linux.yml
* More example cases
* Dummy change to CPU
* Fix typo
* Fix SAMPLES_AFFECTED variable
* Use more correct dependents key
* Fighting with messy GHA conditions
* No brackets and no double quotes in conditions
* Revert "Dummy change to CPU"
This reverts commit 4eae09e5b5.
* Use refactored action
* Move action implementation to openvino repo
* Extend components.yml config
* Update labeler.yml
* Dummy change to TF FE
* Fix indentation
* Add missing needs
* Add missing records
* Allow missing records for components in validation
* install_openvino_dependencies as a separate step for Python_Unit_Tests
* Improve config validation
* Revert "Dummy change to TF FE"
This reverts commit 01190864d1.
* Dummy change to model hub tests
* Update CPU component config
* Dummy change to Python API
* Dummy change to Python API
* Revert "Dummy change to Python API"
This reverts commit 3fce0bb3fb.
* Dummy change to Python API
* Simplify conditions. Cover "no components changed" case
* Update components.yml
* Update .gitignore
* Revert "Dummy change to Python API"
This reverts commit e57ea9852c.
* Fix dependencies scopes
* Add simple unit tests for smart ci functionality
* Revert "Dummy change to model hub tests"
This reverts commit c3d6837e22.
* Use ghapi module with permissive license
* Cover install_build_dependencies.sh script by labeler
* More labels
* Use ghapi. Apply review comments
* Enable dot files to be matched by labeler
* Warning instead of error in artifacts upload where smart ci is enabled
* Fix master merge
* Fix condition for TF FE common tests
* Fix condition for Pytorch FE tests
* Remove condition for pytorch model tests
* Allow any label as a component
* Refactor tests log handling
* Allow any defined label as a component
* Rearrange config structure. Fill the config with actual data
* Run full scope on changes to non-matching files
* Add missing conditions
---------
Co-authored-by: Ilya Lavrenov <ilya.lavrenov@intel.com>
* add platform-agnostic setup python action
* use specific version
* rm debug message, checkout action
* correct path
* add checkout of the action, correct paths
* correct path; enclose into brackets
* transfer linux pipelines to local setup-python action
* transfer pipelines
* use newer version
* account for fedora, add missing cache path
* correct name
* use 3.9 for fedora
* rm python install from fedora
* mv fetch and setup together, set pip_cache_dir
* correct order
* rm triggers
* add missing pythonpaths
* correct path
* add one more pythonpath
* add paths to ov package libs
* Revert "add paths to ov package libs"
This reverts commit a775881f3e.