Skip to content

Commit

Permalink
[CI] [GHA] Transfer Mac workflow from Azure to GHA (#912)
Browse files Browse the repository at this point in the history
* transfer linux workflow

* provide ref

* install git-lfs

* install unzip

* correct path for log

* upload test results

* use gha runner

* rm sudo

* skip test

* rm unused env vars from linux; add win workflow

* configure msvc

* add build of ov_contrib

* use setupvars

* use quotes

* use ov repo

* use cmd

* call cmd setupvars

* add nvidia job

* add generator

* do not use dev package

* add missing ref

* allow downgrades

* allow change

* add dev package

* enable system

* use from fork

* rm system

* use hash

* update hash

* enable tests

* build dev targets, do not build tests

* enable tests

* use master

* add mac

* install gradle via brew

* upload test results

* use actions/cache

* unskip

* new line
  • Loading branch information
akashchi authored May 23, 2024
1 parent 9dcfd50 commit 7be7327
Showing 1 changed file with 149 additions and 0 deletions.
149 changes: 149 additions & 0 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: macOS (Python 3.11)
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
- 'releases/**'

concurrency:
# github.ref is not unique in post-commit
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-mac-main
cancel-in-progress: true

env:
PYTHON_VERSION: '3.11'

jobs:
Build_and_test:
name: Build and Test
timeout-minutes: 150
defaults:
run:
shell: bash
runs-on: 'macos-13-large'
env:
CMAKE_BUILD_TYPE: 'Release'
MACOSX_DEPLOYMENT_TARGET: '11.0'
OSX_ARCHITECTURES: 'x86_64'
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CMAKE_C_COMPILER_LAUNCHER: ccache
OPENVINO_REPO: ${{ github.workspace }}/openvino
OPENVINO_CONTRIB_REPO: ${{ github.workspace }}/openvino_contrib
TEST_DATA: ${{ github.workspace }}/testdata
INSTALL_DIR: ${{ github.workspace }}/openvino_install
INSTALL_DIR_JS: ${{ github.workspace }}/openvino_install/js
INSTALL_TEST_DIR: ${{ github.workspace }}/tests_install
BUILD_DIR: ${{ github.workspace }}/build
CCACHE_DIR: ${{ github.workspace }}/ccache
CCACHE_MAXSIZE: '2G'
GRADLE_VER: '7.1.1'
steps:
- name: Clone OpenVINO
uses: actions/checkout@v4
with:
repository: 'openvinotoolkit/openvino'
path: 'openvino'
submodules: 'true'
ref: 'master'

- name: Clone OpenVINO Contrib
uses: actions/checkout@v4
with:
path: 'openvino_contrib'

- name: Clone Testdata
uses: actions/checkout@v4
with:
repository: 'openvinotoolkit/testdata'
path: 'testdata'
lfs: 'true'
submodules: 'true'

#
# Dependencies
#

- name: Install build dependencies
run: brew install coreutils ninja scons automake gradle ccache

- name: Setup Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}

- name: Install python dependencies
run: python3 -m pip install -r ${{ env.OPENVINO_REPO }}/src/bindings/python/wheel/requirements-dev.txt

#
# Build
#

- name: Setup ccache
uses: actions/cache@v4
with:
# Should save cache only if run in the master branch of the base repo
# github.ref_name is 'ref/PR_#' in case of the PR, and 'branch_name' when executed on push
save-always: ${{ github.ref_name == 'master' && 'true' || 'false' }}
path: ${{ env.CCACHE_DIR }}
key: ${{ runner.os }}-${{ runner.arch }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-ccache
- name: CMake configure
run: |
cmake \
-GNinja \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} \
-DBUILD_nvidia_plugin=OFF \
-DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}/modules \
-DCMAKE_OSX_DEPLOYMENT_TARGET=${{ env.MACOSX_DEPLOYMENT_TARGET }} \
-DCMAKE_OSX_ARCHITECTURES=${{ env.OSX_ARCHITECTURES }} \
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \
-DENABLE_OV_PADDLE_FRONTEND=OFF \
-DENABLE_OV_TF_FRONTEND=OFF \
-DENABLE_OV_TF_LITE_FRONTEND=OFF \
-DENABLE_OV_PYTORCH_FRONTEND=OFF \
-DENABLE_CPPLINT=OFF \
-DENABLE_INTEL_NPU=OFF \
-S ${{ env.OPENVINO_REPO }} \
-B ${{ env.BUILD_DIR }}
- name: Cmake build
run: cmake --build ${{ env.BUILD_DIR }} --parallel

- name: Show ccache stats
run: ccache --show-stats

- name: Cmake install
run: cmake -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} -P ${{ env.BUILD_DIR }}/cmake_install.cmake

- name: Java tests
working-directory: ${{ env.OPENVINO_CONTRIB_REPO }}/modules/java_api
run: |
. ${{ env.INSTALL_DIR }}/setupvars.sh gradle clean build --info
for d in CPU HETERO:CPU; do
gradle test -Prun_tests -DMODELS_PATH=${{ env.TEST_DATA }} -Ddevice=$d --info;
done
- name: Check wheel installation
run: |
source ${{ env.INSTALL_DIR }}/setupvars.sh
python3 -m pip install -r ${{ env.OPENVINO_CONTRIB_REPO }}/modules/custom_operations/tests/requirements.txt
pushd ${{ env.INSTALL_DIR }}/tools
wheel_name=$(find . -name 'openvino-*.whl')
python3 -m pip install $wheel_name
popd
- name: Upload Test Results
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: test-results-java
path: ${{ env.OPENVINO_CONTRIB_REPO }}/modules/java_api/build/test-results
if-no-files-found: 'warn'

0 comments on commit 7be7327

Please sign in to comment.