From ff14b7e0da8fa5f12a2bcdaa39cb042884f43b7a Mon Sep 17 00:00:00 2001 From: shimat Date: Sun, 15 Feb 2026 16:44:29 +0900 Subject: [PATCH 1/5] merge ubuntu workflows --- .github/workflows/publish_nuget.yml | 12 +- .../workflows/{ubuntu24.yml => ubuntu.yml} | 134 ++++++++++---- .github/workflows/ubuntu22.yml | 173 ------------------ 3 files changed, 106 insertions(+), 213 deletions(-) rename .github/workflows/{ubuntu24.yml => ubuntu.yml} (62%) delete mode 100644 .github/workflows/ubuntu22.yml diff --git a/.github/workflows/publish_nuget.yml b/.github/workflows/publish_nuget.yml index 27e6acb6ba..90b267ffac 100644 --- a/.github/workflows/publish_nuget.yml +++ b/.github/workflows/publish_nuget.yml @@ -22,7 +22,7 @@ jobs: uses: dawidd6/action-download-artifact@v14 with: github_token: ${{secrets.GITHUB_TOKEN}} - workflow: ubuntu22.yml + workflow: ubuntu.yml name: artifacts_ubuntu_22 branch: ${{ github.ref_name }} @@ -30,10 +30,18 @@ jobs: uses: dawidd6/action-download-artifact@v14 with: github_token: ${{secrets.GITHUB_TOKEN}} - workflow: ubuntu24.yml + workflow: ubuntu.yml name: artifacts_ubuntu_24 branch: ${{ github.ref_name }} + - name: Download linux x64 artifact + uses: dawidd6/action-download-artifact@v14 + with: + github_token: ${{secrets.GITHUB_TOKEN}} + workflow: ubuntu.yml + name: artifacts_linux_x64 + branch: ${{ github.ref_name }} + - name: Download ubuntu arm artifact uses: dawidd6/action-download-artifact@v14 with: diff --git a/.github/workflows/ubuntu24.yml b/.github/workflows/ubuntu.yml similarity index 62% rename from .github/workflows/ubuntu24.yml rename to .github/workflows/ubuntu.yml index 12b60fd7d9..47809a69a4 100644 --- a/.github/workflows/ubuntu24.yml +++ b/.github/workflows/ubuntu.yml @@ -1,4 +1,4 @@ -name: Ubuntu 24.04 +name: Ubuntu on: pull_request: @@ -10,12 +10,24 @@ on: env: DEBIAN_FRONTEND: noninteractive OPENCV_VERSION: 4.13.0 - OPENCV_CACHE_VERSION: 1 + OPENCV_CACHE_VERSION: 2 jobs: - build: + build_test: + strategy: + fail-fast: false + matrix: + include: + - ubuntu: "22.04" + runner: ubuntu-22.04 + gtk_package: libgtk2.0-dev + cache_suffix: ubuntu22 + - ubuntu: "24.04" + runner: ubuntu-24.04 + gtk_package: libgtk-3-dev + cache_suffix: ubuntu24 - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v6 @@ -34,7 +46,7 @@ jobs: cmake \ libtbb-dev \ libatlas-base-dev \ - libgtk-3-dev \ + ${{ matrix.gtk_package }} \ libavcodec-dev \ libavformat-dev \ libswscale-dev \ @@ -54,7 +66,7 @@ jobs: uses: actions/cache@v5 with: path: ${{ github.workspace }}/opencv_artifacts/ - key: opencv-${{ env.OPENCV_VERSION }}-ubuntu24-rev${{ env.OPENCV_CACHE_VERSION }} + key: opencv-${{ env.OPENCV_VERSION }}-${{ matrix.cache_suffix }}-rev${{ env.OPENCV_CACHE_VERSION }} - name: Checkout OpenCV if: steps.opencv-cache.outputs.cache-hit != 'true' @@ -74,12 +86,11 @@ jobs: - name: Build OpenCV if: steps.opencv-cache.outputs.cache-hit != 'true' run: | - mkdir opencv/build && cd opencv/build cmake \ - -S . \ - -B build \ + -S opencv \ + -B opencv/build \ -D CMAKE_BUILD_TYPE=Release \ - -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ + -D OPENCV_EXTRA_MODULES_PATH=${GITHUB_WORKSPACE}/opencv_contrib/modules \ -D BUILD_SHARED_LIBS=OFF \ -D ENABLE_CXX11=ON \ -D BUILD_EXAMPLES=OFF \ @@ -115,20 +126,22 @@ jobs: -D WITH_GSTREAMER=OFF \ -D WITH_ADE=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ - -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_artifacts .. - cmake --build build - cmake --install build + -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_artifacts + cmake --build opencv/build -j + cmake --install opencv/build sudo ldconfig - cd ${GITHUB_WORKSPACE} ls - name: Build OpenCvSharpExtern run: | - mkdir opencvsharp/src/build && cd $_ - cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/opencv_artifacts .. - make -j - ls OpenCvSharpExtern - cp OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/ + cmake \ + -S opencvsharp/src \ + -B opencvsharp/src/build \ + -D CMAKE_BUILD_TYPE=Release \ + -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/opencv_artifacts + cmake --build opencvsharp/src/build -j + ls opencvsharp/src/build/OpenCvSharpExtern + cp opencvsharp/src/build/OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/ - name: Check OpenCvSharpExtern run: | @@ -139,39 +152,84 @@ jobs: gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern LD_LIBRARY_PATH=. ./test + - name: Install .NET + uses: actions/setup-dotnet@v5 + with: + dotnet-version: '8.0.x' + + - name: Test + run: | + cd ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests + dotnet build -c Release -f net8.0 + cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/bin/Release/net8.0/ + cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/ + sudo cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so /usr/lib/ + LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f net8.0 --runtime linux-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null + + - name: Upload OpenCvSharpExtern + uses: actions/upload-artifact@v6 + with: + name: libOpenCvSharpExtern_ubuntu${{ matrix.ubuntu }} + path: ${{ github.workspace }}/opencvsharp/nuget/libOpenCvSharpExtern.so + + package: + needs: build_test + runs-on: ubuntu-24.04 + + steps: + - uses: actions/checkout@v6 + with: + path: opencvsharp + + - name: Download OpenCvSharpExtern (22.04) + uses: actions/download-artifact@v6 + with: + name: libOpenCvSharpExtern_ubuntu22.04 + path: ${{ github.workspace }}/opencvsharp/nuget/extern_22 + + - name: Download OpenCvSharpExtern (24.04) + uses: actions/download-artifact@v6 + with: + name: libOpenCvSharpExtern_ubuntu24.04 + path: ${{ github.workspace }}/opencvsharp/nuget/extern_24 + - name: Install .NET uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: Create NuGet package - env: + env: BETA: "" run: | yyyymmdd=`date '+%Y%m%d'` echo $yyyymmdd version="${OPENCV_VERSION}.${yyyymmdd}${BETA}" echo "Package version: $version" - + cd ${GITHUB_WORKSPACE}/opencvsharp - # Create Ubuntu 24.04 specific package - dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu -p:Version=$version - - # Create generic linux-x64 package for backward compatibility - dotnet pack nuget/OpenCvSharp4.official.runtime.linux-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu -p:Version=$version - - ls ${GITHUB_WORKSPACE}/artifacts_ubuntu + cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/extern_22/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so + dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu_22 -p:Version=$version + + cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/extern_24/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so + dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu_24 -p:Version=$version + dotnet pack nuget/OpenCvSharp4.official.runtime.linux-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_linux_x64 -p:Version=$version + + ls ${GITHUB_WORKSPACE}/artifacts_ubuntu_22 + ls ${GITHUB_WORKSPACE}/artifacts_ubuntu_24 + ls ${GITHUB_WORKSPACE}/artifacts_linux_x64 + + - uses: actions/upload-artifact@v6 + with: + name: artifacts_ubuntu_22 + path: artifacts_ubuntu_22 - uses: actions/upload-artifact@v6 with: name: artifacts_ubuntu_24 - path: artifacts_ubuntu - - - name: Test - run: | - cd ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests - dotnet build -c Release -f net8.0 - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/bin/Release/net8.0/ - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/ - sudo cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so /usr/lib/ - LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f net8.0 --runtime linux-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null + path: artifacts_ubuntu_24 + + - uses: actions/upload-artifact@v6 + with: + name: artifacts_linux_x64 + path: artifacts_linux_x64 diff --git a/.github/workflows/ubuntu22.yml b/.github/workflows/ubuntu22.yml deleted file mode 100644 index 1017e95ed5..0000000000 --- a/.github/workflows/ubuntu22.yml +++ /dev/null @@ -1,173 +0,0 @@ -name: Ubuntu 22.04 - -on: - pull_request: - types: [synchronize, opened] - push: - branches: - - main - -env: - DEBIAN_FRONTEND: noninteractive - OPENCV_VERSION: 4.13.0 - OPENCV_CACHE_VERSION: 2 - -jobs: - build: - - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v6 - with: - path: opencvsharp - - - name: Install dependencies - run: | - sudo apt-get update -y - sudo apt-get install -y --no-install-recommends \ - apt-transport-https \ - software-properties-common \ - ca-certificates \ - g++ \ - make \ - cmake \ - libtbb-dev \ - libatlas-base-dev \ - libgtk2.0-dev \ - libavcodec-dev \ - libavformat-dev \ - libswscale-dev \ - libdc1394-dev \ - libxine2-dev \ - libv4l-dev \ - libtheora-dev \ - libvorbis-dev \ - libxvidcore-dev \ - libopencore-amrnb-dev \ - libopencore-amrwb-dev \ - libx264-dev \ - libtesseract-dev - - - name: Cache OpenCV - id: opencv-cache - uses: actions/cache@v5 - with: - path: ${{ github.workspace }}/opencv_artifacts/ - key: opencv-${{ env.OPENCV_VERSION }}-ubuntu22-rev${{ env.OPENCV_CACHE_VERSION }} - - - name: Checkout OpenCV - if: steps.opencv-cache.outputs.cache-hit != 'true' - uses: actions/checkout@v6 - with: - repository: opencv/opencv - path: opencv - ref: ${{ env.OPENCV_VERSION }} - - name: Checkout OpenCV Contrib - if: steps.opencv-cache.outputs.cache-hit != 'true' - uses: actions/checkout@v6 - with: - repository: opencv/opencv_contrib - path: opencv_contrib - ref: ${{ env.OPENCV_VERSION }} - - - name: Build OpenCV - if: steps.opencv-cache.outputs.cache-hit != 'true' - run: | - mkdir opencv/build && cd opencv/build - cmake \ - -S . \ - -B build \ - -D CMAKE_BUILD_TYPE=Release \ - -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ - -D BUILD_SHARED_LIBS=OFF \ - -D ENABLE_CXX11=ON \ - -D BUILD_EXAMPLES=OFF \ - -D BUILD_DOCS=OFF \ - -D BUILD_PERF_TESTS=OFF \ - -D BUILD_TESTS=OFF \ - -D BUILD_JAVA=OFF \ - -D BUILD_opencv_apps=OFF \ - -D BUILD_opencv_barcode=OFF \ - -D BUILD_opencv_java_bindings_generator=OFF \ - -D BUILD_opencv_python_bindings_generator=OFF \ - -D BUILD_opencv_python_tests=OFF \ - -D BUILD_opencv_ts=OFF \ - -D BUILD_opencv_js=OFF \ - -D BUILD_opencv_js_bindings_generator=OFF \ - -D BUILD_opencv_bioinspired=OFF \ - -D BUILD_opencv_ccalib=OFF \ - -D BUILD_opencv_datasets=OFF \ - -D BUILD_opencv_dnn_objdetect=OFF \ - -D BUILD_opencv_dpm=OFF \ - -D BUILD_opencv_fuzzy=OFF \ - -D BUILD_opencv_gapi=ON \ - -D BUILD_opencv_intensity_transform=OFF \ - -D BUILD_opencv_mcc=OFF \ - -D BUILD_opencv_objc_bindings_generator=OFF \ - -D BUILD_opencv_rapid=OFF \ - -D BUILD_opencv_reg=OFF \ - -D BUILD_opencv_stereo=OFF \ - -D BUILD_opencv_structured_light=OFF \ - -D BUILD_opencv_surface_matching=OFF \ - -D BUILD_opencv_wechat_qrcode=ON \ - -D BUILD_opencv_videostab=OFF \ - -D WITH_GSTREAMER=OFF \ - -D WITH_ADE=OFF \ - -D OPENCV_ENABLE_NONFREE=ON \ - -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_artifacts .. - cmake --build build - cmake --install build - sudo ldconfig - cd ${GITHUB_WORKSPACE} - ls - - - name: Build OpenCvSharpExtern - run: | - mkdir opencvsharp/src/build && cd $_ - cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/opencv_artifacts .. - make -j - ls OpenCvSharpExtern - cp OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/ - - - name: Check OpenCvSharpExtern - run: | - cd ${GITHUB_WORKSPACE}/opencvsharp/nuget/ - ldd libOpenCvSharpExtern.so - nm libOpenCvSharpExtern.so - echo -ne "#include \n int core_Mat_sizeof(); int main(){ int i = core_Mat_sizeof(); printf(\"sizeof(Mat) = %d\", i); return 0; }" > test.c - gcc -I./ -L./ test.c -o test -lOpenCvSharpExtern - LD_LIBRARY_PATH=. ./test - - - name: Install .NET - uses: actions/setup-dotnet@v5 - with: - dotnet-version: '8.0.x' - - - name: Create NuGet package - env: - BETA: "" - run: | - yyyymmdd=`date '+%Y%m%d'` - echo $yyyymmdd - version="${OPENCV_VERSION}.${yyyymmdd}${BETA}" - echo "Package version: $version" - - cd ${GITHUB_WORKSPACE}/opencvsharp - dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu -p:Version=$version - - ls ${GITHUB_WORKSPACE}/artifacts_ubuntu - - - uses: actions/upload-artifact@v6 - with: - name: artifacts_ubuntu_22 - path: artifacts_ubuntu - - - name: Test - run: | - cd ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests - dotnet build -c Release -f net8.0 - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/bin/Release/net8.0/ - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/test/OpenCvSharp.Tests/ - sudo cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so /usr/lib/ - LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f net8.0 --runtime linux-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null From eba22bf4eb4c6e73e70b0cc4ecedd421b411b31f Mon Sep 17 00:00:00 2001 From: shimat Date: Sun, 15 Feb 2026 17:16:16 +0900 Subject: [PATCH 2/5] j 3 --- .github/workflows/ubuntu.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 47809a69a4..dc4d7ea37f 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -127,7 +127,7 @@ jobs: -D WITH_ADE=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_artifacts - cmake --build opencv/build -j + cmake --build opencv/build -j 3 cmake --install opencv/build sudo ldconfig ls From 882f6b0803ecee425e9f4dcddf3162aa8ad9f52c Mon Sep 17 00:00:00 2001 From: shimat Date: Sun, 15 Feb 2026 22:20:16 +0900 Subject: [PATCH 3/5] remove package job --- .github/workflows/linux-arm.yml | 2 +- .github/workflows/ubuntu.yml | 63 +++++---------------------------- .github/workflows/wasm.yml | 2 +- 3 files changed, 11 insertions(+), 56 deletions(-) diff --git a/.github/workflows/linux-arm.yml b/.github/workflows/linux-arm.yml index 0d5b1f8521..dee8352df2 100644 --- a/.github/workflows/linux-arm.yml +++ b/.github/workflows/linux-arm.yml @@ -146,7 +146,7 @@ jobs: - name: Create NuGet package env: - BETA: "" + BETA: "-beta" run: | yyyymmdd=`date '+%Y%m%d'` echo $yyyymmdd diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index dc4d7ea37f..ed9773769e 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -22,10 +22,12 @@ jobs: runner: ubuntu-22.04 gtk_package: libgtk2.0-dev cache_suffix: ubuntu22 + package_projects: "OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj" - ubuntu: "24.04" runner: ubuntu-24.04 gtk_package: libgtk-3-dev cache_suffix: ubuntu24 + package_projects: "OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj OpenCvSharp4.official.runtime.linux-x64.csproj" runs-on: ${{ matrix.runner }} @@ -166,41 +168,9 @@ jobs: sudo cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so /usr/lib/ LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f net8.0 --runtime linux-x64 --logger "trx;LogFileName=test-results.trx" < /dev/null - - name: Upload OpenCvSharpExtern - uses: actions/upload-artifact@v6 - with: - name: libOpenCvSharpExtern_ubuntu${{ matrix.ubuntu }} - path: ${{ github.workspace }}/opencvsharp/nuget/libOpenCvSharpExtern.so - - package: - needs: build_test - runs-on: ubuntu-24.04 - - steps: - - uses: actions/checkout@v6 - with: - path: opencvsharp - - - name: Download OpenCvSharpExtern (22.04) - uses: actions/download-artifact@v6 - with: - name: libOpenCvSharpExtern_ubuntu22.04 - path: ${{ github.workspace }}/opencvsharp/nuget/extern_22 - - - name: Download OpenCvSharpExtern (24.04) - uses: actions/download-artifact@v6 - with: - name: libOpenCvSharpExtern_ubuntu24.04 - path: ${{ github.workspace }}/opencvsharp/nuget/extern_24 - - - name: Install .NET - uses: actions/setup-dotnet@v5 - with: - dotnet-version: '8.0.x' - - name: Create NuGet package env: - BETA: "" + BETA: "-beta" run: | yyyymmdd=`date '+%Y%m%d'` echo $yyyymmdd @@ -208,28 +178,13 @@ jobs: echo "Package version: $version" cd ${GITHUB_WORKSPACE}/opencvsharp - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/extern_22/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so - dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu_22 -p:Version=$version - - cp ${GITHUB_WORKSPACE}/opencvsharp/nuget/extern_24/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp/nuget/libOpenCvSharpExtern.so - dotnet pack nuget/OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_ubuntu_24 -p:Version=$version - dotnet pack nuget/OpenCvSharp4.official.runtime.linux-x64.csproj -o ${GITHUB_WORKSPACE}/artifacts_linux_x64 -p:Version=$version + for project in ${{ matrix.package_projects }}; do + dotnet pack nuget/$project -o ${GITHUB_WORKSPACE}/artifacts -p:Version=$version + done - ls ${GITHUB_WORKSPACE}/artifacts_ubuntu_22 - ls ${GITHUB_WORKSPACE}/artifacts_ubuntu_24 - ls ${GITHUB_WORKSPACE}/artifacts_linux_x64 - - - uses: actions/upload-artifact@v6 - with: - name: artifacts_ubuntu_22 - path: artifacts_ubuntu_22 - - - uses: actions/upload-artifact@v6 - with: - name: artifacts_ubuntu_24 - path: artifacts_ubuntu_24 + ls ${GITHUB_WORKSPACE}/artifacts - uses: actions/upload-artifact@v6 with: - name: artifacts_linux_x64 - path: artifacts_linux_x64 + name: artifacts_ubuntu_${{ matrix.ubuntu }} + path: artifacts diff --git a/.github/workflows/wasm.yml b/.github/workflows/wasm.yml index b3d248f021..389c780efb 100644 --- a/.github/workflows/wasm.yml +++ b/.github/workflows/wasm.yml @@ -156,7 +156,7 @@ jobs: - name: Create NuGet package env: - BETA: "" + BETA: "-beta" run: | yyyymmdd=`date '+%Y%m%d'` echo $yyyymmdd From 3deaa7d0084ece34c68e3636e83a791f28892395 Mon Sep 17 00:00:00 2001 From: shimat Date: Tue, 17 Feb 2026 00:21:36 +0900 Subject: [PATCH 4/5] fix publish_nuget.yml --- .github/workflows/publish_nuget.yml | 12 +++------ .github/workflows/ubuntu.yml | 8 +++--- README.md | 5 ++-- docfx/articles/intro.md | 1 - ...CvSharp4.official.runtime.linux-x64.csproj | 27 ------------------- 5 files changed, 8 insertions(+), 45 deletions(-) delete mode 100644 nuget/OpenCvSharp4.official.runtime.linux-x64.csproj diff --git a/.github/workflows/publish_nuget.yml b/.github/workflows/publish_nuget.yml index 90b267ffac..b738261ddb 100644 --- a/.github/workflows/publish_nuget.yml +++ b/.github/workflows/publish_nuget.yml @@ -23,7 +23,7 @@ jobs: with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: ubuntu.yml - name: artifacts_ubuntu_22 + name: artifacts_ubuntu_22.04 branch: ${{ github.ref_name }} - name: Download ubuntu 24 artifact @@ -31,16 +31,10 @@ jobs: with: github_token: ${{secrets.GITHUB_TOKEN}} workflow: ubuntu.yml - name: artifacts_ubuntu_24 + name: artifacts_ubuntu_24.04 branch: ${{ github.ref_name }} - - name: Download linux x64 artifact - uses: dawidd6/action-download-artifact@v14 - with: - github_token: ${{secrets.GITHUB_TOKEN}} - workflow: ubuntu.yml - name: artifacts_linux_x64 - branch: ${{ github.ref_name }} + - name: Download ubuntu arm artifact uses: dawidd6/action-download-artifact@v14 diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index ed9773769e..64a9e9bf25 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -22,12 +22,12 @@ jobs: runner: ubuntu-22.04 gtk_package: libgtk2.0-dev cache_suffix: ubuntu22 - package_projects: "OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj" + package_project: "OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj" - ubuntu: "24.04" runner: ubuntu-24.04 gtk_package: libgtk-3-dev cache_suffix: ubuntu24 - package_projects: "OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj OpenCvSharp4.official.runtime.linux-x64.csproj" + package_project: "OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj" runs-on: ${{ matrix.runner }} @@ -178,9 +178,7 @@ jobs: echo "Package version: $version" cd ${GITHUB_WORKSPACE}/opencvsharp - for project in ${{ matrix.package_projects }}; do - dotnet pack nuget/$project -o ${GITHUB_WORKSPACE}/artifacts -p:Version=$version - done + dotnet pack "nuget/${{ matrix.package_project }}" -o ${GITHUB_WORKSPACE}/artifacts -p:Version=$version ls ${GITHUB_WORKSPACE}/artifacts diff --git a/README.md b/README.md index b3898a60e5..a07ac3d3a5 100644 --- a/README.md +++ b/README.md @@ -74,12 +74,12 @@ dotnet run ``` ### Other Linux distributions -Add `OpenCvSharp4` and `OpenCvSharp4.official.runtime.linux-x64` NuGet packages to your project. This package is built on Ubuntu 24.04 and may work on other recent Linux distributions. +Add `OpenCvSharp4` and the appropriate Ubuntu runtime package (for example `OpenCvSharp4.official.runtime.ubuntu.24.04-x64`) to your project. The Ubuntu runtime packages are built on the specified Ubuntu releases and may work on similar distributions. ``` dotnet new console -n ConsoleApp01 cd ConsoleApp01 dotnet add package OpenCvSharp4 -dotnet add package OpenCvSharp4.official.runtime.linux-x64 +dotnet add package OpenCvSharp4.official.runtime.ubuntu.24.04-x64 # -- edit Program.cs --- # dotnet run ``` @@ -162,7 +162,6 @@ http://shimat.github.io/opencvsharp/api/OpenCvSharp.html |---------|-------------|------| |**OpenCvSharp4.runtime.win**| Native bindings for Windows x64/x86 (except UWP) | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.runtime.win.svg)](https://badge.fury.io/nu/OpenCvSharp4.runtime.win) | |**OpenCvSharp4.runtime.uwp**| Native bindings for UWP (Universal Windows Platform) x64/x86/ARM | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.runtime.uwp.svg)](https://badge.fury.io/nu/OpenCvSharp4.runtime.uwp) | -|**OpenCvSharp4.official.runtime.linux-x64**| Native bindings for Linux x64 (built on Ubuntu 24.04) | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.linux-x64.svg)](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.linux-x64) | |**OpenCvSharp4.official.runtime.ubuntu.22.04-x64**| Native bindings for Ubuntu 22.04 x64 | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.ubuntu.22.04-x64.svg)](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.ubuntu.22.04-x64) | |**OpenCvSharp4.official.runtime.ubuntu.24.04-x64**| Native bindings for Ubuntu 24.04 x64 | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.ubuntu.24.04-x64.svg)](https://badge.fury.io/nu/OpenCvSharp4.official.runtime.ubuntu.24.04-x64) | |**OpenCvSharp4.runtime.linux-arm**| Native bindings for Linux Arm | [![NuGet version](https://badge.fury.io/nu/OpenCvSharp4.runtime.linux-arm.svg)](https://www.nuget.org/packages/OpenCvSharp4.runtime.linux-arm/) | diff --git a/docfx/articles/intro.md b/docfx/articles/intro.md index 06da0c0635..31e8f638e8 100644 --- a/docfx/articles/intro.md +++ b/docfx/articles/intro.md @@ -26,7 +26,6 @@ dotnet add package OpenCvSharp4 # Native bindings (choose one based on your platform) dotnet add package OpenCvSharp4.runtime.win # Windows dotnet add package OpenCvSharp4.runtime.ubuntu.24.04-x64 # Ubuntu 24.04 -dotnet add package OpenCvSharp4.official.runtime.linux-x64 # Linux (generic) ``` ### Quick Example diff --git a/nuget/OpenCvSharp4.official.runtime.linux-x64.csproj b/nuget/OpenCvSharp4.official.runtime.linux-x64.csproj deleted file mode 100644 index 076c6dbe09..0000000000 --- a/nuget/OpenCvSharp4.official.runtime.linux-x64.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - netstandard2.0;netstandard2.1;net8.0; - true - false - - - OpenCvSharp4.official.runtime.linux-x64 - OpenCvSharp native bindings for Generic Linux x64 - shimat - Apache-2.0 - https://github.com/shimat/opencvsharp - opencvsharp.png - Internal implementation package for OpenCvSharp to work on Generic Linux x64 - Image Processing OpenCV Wrapper FFI opencvsharp linux - Copyright 2008-2025 - - https://github.com/shimat/opencvsharp.git - git - false - - - - - - - From 0a07bf3d9d82cd725fd5b913383cad0157bc7479 Mon Sep 17 00:00:00 2001 From: shimat Date: Tue, 17 Feb 2026 00:33:30 +0900 Subject: [PATCH 5/5] decrease matrix parameters --- .github/workflows/ubuntu.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 64a9e9bf25..cd51b5f915 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -19,17 +19,11 @@ jobs: matrix: include: - ubuntu: "22.04" - runner: ubuntu-22.04 gtk_package: libgtk2.0-dev - cache_suffix: ubuntu22 - package_project: "OpenCvSharp4.official.runtime.ubuntu.22.04-x64.csproj" - ubuntu: "24.04" - runner: ubuntu-24.04 gtk_package: libgtk-3-dev - cache_suffix: ubuntu24 - package_project: "OpenCvSharp4.official.runtime.ubuntu.24.04-x64.csproj" - runs-on: ${{ matrix.runner }} + runs-on: ubuntu-${{ matrix.ubuntu }} steps: - uses: actions/checkout@v6 @@ -68,7 +62,7 @@ jobs: uses: actions/cache@v5 with: path: ${{ github.workspace }}/opencv_artifacts/ - key: opencv-${{ env.OPENCV_VERSION }}-${{ matrix.cache_suffix }}-rev${{ env.OPENCV_CACHE_VERSION }} + key: opencv-${{ env.OPENCV_VERSION }}-ubuntu-${{ matrix.ubuntu }}-rev${{ env.OPENCV_CACHE_VERSION }} - name: Checkout OpenCV if: steps.opencv-cache.outputs.cache-hit != 'true' @@ -178,7 +172,8 @@ jobs: echo "Package version: $version" cd ${GITHUB_WORKSPACE}/opencvsharp - dotnet pack "nuget/${{ matrix.package_project }}" -o ${GITHUB_WORKSPACE}/artifacts -p:Version=$version + package_project="OpenCvSharp4.official.runtime.ubuntu.${{ matrix.ubuntu }}-x64.csproj" + dotnet pack "nuget/${package_project}" -o ${GITHUB_WORKSPACE}/artifacts -p:Version=$version ls ${GITHUB_WORKSPACE}/artifacts