Skip to content

Fix in folder name

Fix in folder name #25

name: Windows build
on: push
jobs:
build-windows-bindings:
name: Build Windows bindings
runs-on: windows-2019-16-core
steps:
# Step 1: Checkout the repository
- name: Checkout repository
uses: actions/checkout@v4
# Step 2: Install Visual Studio Build Tools (only needed on windows-latest or runners without VS2019)
# - name: Install Visual Studio Build Tools
# run: |
# choco install visualstudio2019buildtools -y
# choco install visualstudio2019-workload-vctools -y
# shell: cmd
# Step 3: Install Python 3.13
- name: Install Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Add Python to PATH
run: |
setx PATH "%PATH%;C:\hostedtoolcache\windows\Python\3.13.0\x64"
shell: cmd
# Step 4: Add Python to PATH
- name: Install numpy
run: |
C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe -m pip install numpy
shell: cmd
# Step 5: Install MSYS2
- name: Install MSYS2
run: |
choco install msys2 -y
setx PATH "%PATH%;C:\tools\msys64\usr\bin"
shell: cmd
- name: Initialize MSYS2
run: |
C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Syuu --noconfirm"
C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Sy --noconfirm"
shell: cmd
# Step 6: Install Bazelisk
- name: Install Bazelisk
run: |
choco install bazelisk -y
shell: cmd
# Step 7: Set up Bazel environment variables
- name: Set up Bazel environment variables
env:
BAZEL_VC: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC
BAZEL_VS: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
BAZEL_VC_FULL_VERSION: 14.29.30133
BAZEL_SH: C:\msys64\usr\bin\bash.exe
run: echo "Bazel environment variables set."
# Step 8: Download and Install OpenCV
- name: Download OpenCV
run: |
curl -L -o opencv.exe https://github.com/opencv/opencv/releases/download/4.9.0/opencv-4.9.0-windows.exe
start /wait opencv.exe -suppresslaunch -y -gm2 -o"C:\"
shell: cmd
# Step 9: Install vcpkg and ffmpeg
- name: Install vcpkg and ffmpeg
run: |
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
C:\vcpkg\bootstrap-vcpkg.bat
C:\vcpkg\vcpkg install ffmpeg
shell: cmd
# Step 10: Download and Install OpenVINO Runtime
- name: Download and Install OpenVINO Runtime 24.5.0
shell: powershell
run: |
Invoke-WebRequest -Uri https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/nightly/2025.0.0.0.dev20241105/openvino_genai_windows_2025.0.0.0.dev20241105_x86_64.zip -OutFile openvino_runtime.zip
Expand-Archive -Path openvino_runtime.zip -DestinationPath C:/Intel/
Rename-Item -Path "C:/Intel/openvino_genai_windows_2024.5.0.0_x86_64" -NewName "openvino_2024.5.0"
dir C:/Intel/openvino_2024.5.0/
# Step 11: Install Mediapipe Requirements
- name: Install Mediapipe Requirements
run: |
C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Sy --noconfirm git patch unzip"
shell: bash
# Step 12: Build with Bazel
- name: Build Windows Bindings with Bazel
env:
PYTHON_BIN_PATH: "C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe"
run: |
cd openvino_bindings
bazel build -c opt :windows_bindings --action_env PYTHON_BIN_PATH="C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe"
shell: bash
# Step 13: Verify the DLLs
- name: Verify DLLs in Bazel Output
run: |
dir openvino_bindings/bazel-out/x64_windows-opt/bin/windows_bindings.tar
# Step 14: Upload release artifact
- name: Upload Release Artifact
uses: actions/upload-artifact@v4
with:
name: windows_bindings.tar
path: openvino_bindings/bazel-out/x64_windows-opt/bin/windows_bindings.tar
build-windows-ui:
name: Build Windows UI
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
flutter-version: '3.24.0'
- name: Install project dependencies
run: flutter pub get
- name: Generate intermediates
run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Enable windows build
run: flutter config --enable-windows-desktop
- name: Copy bindings # Todo
run: |
mkdir bindings
New-Item -ItemType File -Path "bindings\\fake.dll" -Force
- name: Build artifacts
run: flutter build windows --release
- name: Archive Release artifact
uses: thedoctor0/zip-release@master
with:
type: 'zip'
filename: "OpenVINO-TestDrive-no-bindings-windows.zip"
path: build/windows/x64/runner/Release
- name: Upload Release Artifact
uses: actions/upload-artifact@v4
with:
name: "OpenVINO-TestDrive-no-bindings-windows.zip"
path: build\\windows\\x64\\runner\\Release
package:
name: Package combined Windows release
runs-on: ubuntu-22.04
needs: [ build-windows-bindings, build-windows-ui ] # Waits for both jobs to succeed
steps:
# Step 1: Check out the repository
- name: Checkout repository
uses: actions/checkout@v4
# Step 2: Set filename for release
- name: Set safe filename
id: set_filename
run: |
SAFE_REF_NAME=${GITHUB_REF_NAME//\//_}
echo "SANITIZED_FILENAME=OpenVINO-TestDrive-${SAFE_REF_NAME}-windows.zip" >> $GITHUB_ENV
# Step 3: Download artifact from build-windows-ui
- name: Download bindings build artifact
uses: actions/download-artifact@v4
with:
name: "windows_bindings.tar" # Matches the artifact name from build-windows-ui
path: ./bindings # Directory to store the downloaded artifact
# Step 4: Download artifact from build-windows-ui
- name: Download flutter build artifact
uses: actions/download-artifact@v4
with:
name: "OpenVINO-TestDrive-no-bindings-windows.zip" # Matches the artifact name from build-windows-ui
path: ./flutter # Directory to store the downloaded artifact
# Step 5: Combine artifacts
- name: Combine artifacts
run: |
ls -la ./
ls -la ./bindings
ls -la ./flutter
rm -rf ./flutter/fake.dll
tar -xvf ./bindings/windows_bindings.tar -C ./bindings
rm ./bindings/windows_bindings.tar
ls -la ./bindings
mv ./bindings/* ./flutter/
# Step 5: Archive combined folder
- name: Archive Release artifact
uses: thedoctor0/zip-release@master
with:
type: 'zip'
filename: ${{ env.SANITIZED_FILENAME }}
path: ./flutter/
# Step 5: Upload new artifact
- name: Upload Release Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.SANITIZED_FILENAME }}
path: ./flutter/
# Step 6: Update release
- name: Windows Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ${{ env.SANITIZED_FILENAME }}