Skip to content

WIP: fixed opencv archiveName #10

WIP: fixed opencv archiveName

WIP: fixed opencv archiveName #10

on:
push:
branches-ignore:
- main # This will run the build and test jobs for every push on all branches except for dev to main
pull_request:
branches:
- '*' # This will run the build and test jobs for pull requests to all branches
jobs:
set_env:
runs-on: windows-latest
env:
LATEST_RELEASED_SDK: v24.05.06
LATEST_OPENCV_VERSION: 4.10.0
outputs:
latest_sdk: ${{ steps.set-vars.outputs.latest_sdk }}
latest_opencv: ${{ steps.set-vars.outputs.latest_opencv }}
steps:
- name: Set environment variables
id: set-vars
run: |
echo "::set-output name=latest_sdk::${{ env.LATEST_RELEASED_SDK}}"
echo "::set-output name=latest_opencv::${{ env.LATEST_OPENCV_VERSION}}"
generate_config:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Setup Python
uses: actions/[email protected]
with:
python-version: "3.11.4"
- name: Create and enter the build directory
run: |
cd installer
mkdir build && cd build
python -m pip install --upgrade pip
pip install -r ${{ github.workspace }}/installer/src/requirements.txt
python ${{ github.workspace }}/installer/src/generate_config.py -p Windows
- name: Upload a Build Artifact
uses: actions/upload-artifact@v4
with:
name: install-test-for-windows
path: |
${{ github.workspace }}/build/config_Windows.json
${{ github.workspace }}/installer/tools/installer.ps1
${{ github.workspace }}/installer/test/cpp
test_installation:
runs-on: ${{ matrix.os }}
needs: [set_env, generate_config]
strategy:
matrix:
os: [windows-2019, windows-latest]
install_option : ["-version ${{ needs.set_env.outputs.latest_sdk }}", "-configPath config_Windows.json"]
with_openCV : ["", "-InstallOpenCV"]
# exclude:
# - os: windows-latest
# with_openCV: "-InstallOpenCV"
steps:
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
name: install-test-for-windows
path: download
- name: Set all items under test directory
run: |
New-Item -ItemType Directory -Path ${{ github.workspace }}/test | Out-Null
Move-Item -Path ${{ github.workspace }}/download/build/config_Windows.json -Destination ${{ github.workspace }}/test
Move-Item -Path ${{ github.workspace }}/download/installer/tools/installer.ps1 -Destination ${{ github.workspace }}/test
- name: Install with the script from Artifacts (general)
if: ${{ !((matrix.os == 'windows-latest') && (matrix.with_openCV == '-InstallOpenCV'))}}
run: |
cd ${{ github.workspace }}/test
powershell.exe -ExecutionPolicy Bypass -File .\installer.ps1 ${{ matrix.install_option }} ${{ matrix.with_openCV }}
- name: Install with the script from Artifacts (with the latest MSVC with OpenCV)
if: ${{(matrix.os == 'windows-latest') && (matrix.with_openCV == '-InstallOpenCV')}}
run: |
cd ${{ github.workspace }}/test
powershell.exe -ExecutionPolicy Bypass -File .\installer.ps1 ${{ matrix.install_option }}
$targetDir= [Environment]::GetEnvironmentVariable("SENSING_DEV_ROOT", "User")
Invoke-WebRequest -Uri https://github.com/opencv/opencv/releases/download/${{ needs.set_env.outputs.latest_opencv }}/opencv-${{ needs.set_env.outputs.latest_opencv }}-windows.exe -OutFile opencv-${{ needs.set_env.outputs.latest_opencv }}-windows.exe
Start-Process -FilePath opencv-${{ needs.set_env.outputs.latest_opencv }}-windows.exe -ArgumentList "-o`"$targetDir`" -y" -Wait
- name: Check if OpenCV exists on Windows
if: ${{ (matrix.with_openCV == '-InstallOpenCV') }}
id: check_opencv
run: |
$filePath = "${env:LOCALAPPDATA}\sensing-dev\opencv"
if (Test-Path $filePath) {
Write-Output "File exists: $filePath"
Write-Output "::set-output name=file_exists::true"
} else {
Write-Output "File does not exist: $filePath"
Write-Output "::set-output name=file_exists::false"
exit 1
}
- name: Check if version_info.json exists
run: |
$SENSING_DEV_ROOT= [Environment]::GetEnvironmentVariable("SENSING_DEV_ROOT", "User")
$target_file = Join-Path -Path "$SENSING_DEV_ROOT" -ChildPath "version_info.json"
if (Test-Path $target_file){
echo "version_info.json exists."
} else{
echo "version_info.json does not exist."
exit 1
}
- name: Test Aravis installation and Path
run: |
$PATH = [Environment]::GetEnvironmentVariable("PATH", "User")
$SENSING_DEV_ROOT= [Environment]::GetEnvironmentVariable("SENSING_DEV_ROOT", "User")
$env:PATH="$env:PATH;$PATH"
$env:SENSING_DEV_ROOT=${SENSING_DEV_ROOT}
cd ${{ github.workspace }}/download/installer/testcases/cpp/aravis_test && cmake ./
cmake --build . --config Release
cd Release && ls && ./aravis_test
echo "aravis test passed"
- name: Test ion-kit
run: |
$PATH = [Environment]::GetEnvironmentVariable("PATH", "User")
$SENSING_DEV_ROOT= [Environment]::GetEnvironmentVariable("SENSING_DEV_ROOT", "User")
$env:PATH="$env:PATH;$PATH"
$env:SENSING_DEV_ROOT=${SENSING_DEV_ROOT}
cd ${{ github.workspace }}/download/installer/testcases/cpp/ionkit_test && cmake ./
cmake --build . --config Release
cd Release && ls && ./ionkit_test
echo "ion-kit test passed"
- name: Test opencv
if: ${{ (matrix.with_openCV == '-InstallOpenCV') }}
run: |
$PATH = [Environment]::GetEnvironmentVariable("PATH", "User")
$SENSING_DEV_ROOT= [Environment]::GetEnvironmentVariable("SENSING_DEV_ROOT", "User")
$env:SENSING_DEV_ROOT=${SENSING_DEV_ROOT}
$env:PATH="$env:PATH;$PATH"
cd ${{ github.workspace }}/download/installer/testcases/cpp/opencv_test && cmake ./
cmake --build . --config Release
cd Release && ./opencv_test
echo "opencv test passed"