Skip to content

Unit/opt flow

Unit/opt flow #1021

Workflow file for this run

name: opencv-rust
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
jobs:
src:
strategy:
fail-fast: false
matrix:
os-image:
- ubuntu-22.04
- macos-13
opencv-version:
- 3.4.20
- 4.10.0
linkage:
- dynamic
include:
- os-image: ubuntu-22.04
opencv-version: 4.10.0
linkage: static
runs-on: ${{ matrix.os-image }}
env:
Atlas_ROOT_DIR: /usr/include/ # for cmake to find lapacke.h
OPENCV_VERSION: ${{ matrix.opencv-version }}
OPENCV_LINKAGE: ${{ matrix.linkage }}
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
CMAKE_C_COMPILER_LAUNCHER: "sccache"
CMAKE_CXX_COMPILER_LAUNCHER: "sccache"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: mozilla-actions/sccache-action@v0.0.5
- uses: actions/cache@v4
with:
path: ~/dist
key: dist-${{ matrix.opencv-version }}
- uses: actions/cache@v4
with:
path: ~/build
key: build-${{ matrix.opencv-version }}-${{ matrix.linkage }}-${{ matrix.os-image }}
- name: Install dependencies
run: ci/install.sh
shell: bash
- name: Test project
run: ci/script.sh
shell: bash
vcpkg:
strategy:
fail-fast: false
matrix:
os-image:
- ubuntu-22.04
- windows-2022
- macos-14
vcpkg-version:
- 2024.07.12
runs-on: ${{ matrix.os-image }}
env:
VCPKG_VERSION: ${{ matrix.vcpkg-version }}
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: mozilla-actions/sccache-action@v0.0.5
- uses: actions/cache@v4
with:
path: ~/build
key: vcpkg-${{ matrix.vcpkg-version }}-${{ matrix.os-image }}
- name: Install dependencies
run: ci/install.sh
shell: bash
- name: Test project
run: ci/script.sh
shell: bash
bin:
strategy:
fail-fast: false
matrix:
os-image:
- windows-2022
version:
- opencv: 3.4.16
- opencv: 4.10.0
include:
- os-image: ubuntu-22.04
version:
opencv: 4.5.4
- os-image: ubuntu-20.04
version:
opencv: 4.2.0
- os-image: macos-14
version:
brew: "@4"
runs-on: ${{ matrix.os-image }}
env:
OPENCV_VERSION: ${{ matrix.version.opencv }}
BREW_OPENCV_VERSION: ${{ matrix.version.brew }}
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: mozilla-actions/sccache-action@v0.0.5
- name: Install dependencies
run: ci/install.sh
shell: bash
- name: Test project
run: ci/script.sh
shell: bash
docs-rs:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Run a documentation generation test
run: ci/docs-rs.sh
shell: bash
msrv:
runs-on: ubuntu-20.04
env:
OPENCV_VERSION: 4.10.0
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
CMAKE_C_COMPILER_LAUNCHER: "sccache"
CMAKE_CXX_COMPILER_LAUNCHER: "sccache"
steps:
- uses: actions/checkout@v4
- uses: mozilla-actions/sccache-action@v0.0.5
- uses: actions/cache@v4
with:
path: ~/dist
key: dist-${{ env.OPENCV_VERSION }}
- uses: actions/cache@v4
with:
path: ~/build
key: build-${{ env.OPENCV_VERSION }}-ubuntu-20.04
- name: Get MSRV package metadata
id: metadata
run: cargo metadata --no-deps --format-version 1 | jq -r '"msrv="+(.packages[]|select(.name=="opencv").rust_version)' >> $GITHUB_OUTPUT
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ steps.metadata.outputs.msrv }}
- name: Install dependencies
run: ci/install.sh
shell: bash
- name: Check project
run: ci/msrv.sh
shell: bash