mirror of
https://github.com/Tencent/ncnn.git
synced 2026-10-18 13:42:18 +08:00
127 lines
4.2 KiB
YAML
127 lines
4.2 KiB
YAML
name: python
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
paths:
|
|
- '.github/workflows/python.yml'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'src/*'
|
|
- 'src/layer/*'
|
|
- 'src/layer/x86/**'
|
|
- 'src/layer/vulkan/**'
|
|
- 'python/**'
|
|
- 'glslang'
|
|
pull_request:
|
|
branches: [master]
|
|
paths:
|
|
- '.github/workflows/python.yml'
|
|
- 'CMakeLists.txt'
|
|
- 'cmake/**'
|
|
- 'src/*'
|
|
- 'src/layer/*'
|
|
- 'src/layer/x86/**'
|
|
- 'src/layer/vulkan/**'
|
|
- 'python/**'
|
|
- 'glslang'
|
|
concurrency:
|
|
group: python-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
env:
|
|
DEVELOPER_DIR: /Applications/Xcode_16.4.0.app/Contents/Developer
|
|
MAC_DEPLOYMENT_TARGET: '11.0'
|
|
ENABLE_BITCODE: OFF
|
|
ENABLE_ARC: OFF
|
|
ENABLE_VISIBILITY: OFF
|
|
CMAKE_BUILD_PARALLEL_LEVEL: 4
|
|
UseMultiToolTask: true
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-15-intel, windows-latest]
|
|
python-version: [3.9, 3.12]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
with:
|
|
submodules: true
|
|
|
|
- name: cache-swiftshader
|
|
if: matrix.os == 'ubuntu-latest'
|
|
id: cache-swiftshader
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: swiftshader-install
|
|
key: swiftshader-linux-install-20260917
|
|
- name: checkout-swiftshader
|
|
if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
uses: actions/checkout@v7
|
|
with:
|
|
repository: google/swiftshader
|
|
path: swiftshader
|
|
ref: 1e80438d2b93ef36a7c05f8d2b81233bac0e3d16
|
|
- name: checkout-swiftshader-submodules
|
|
if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
git -c submodule."third_party/git-hooks".update=none submodule update --init --recursive
|
|
- name: swiftshader
|
|
if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
|
|
run: |
|
|
cd swiftshader
|
|
mkdir -p build; cd build
|
|
cmake -DCMAKE_INSTALL_PREFIX=install -DSWIFTSHADER_BUILD_EGL=FALSE -DSWIFTSHADER_BUILD_GLESv2=FALSE -DSWIFTSHADER_BUILD_GLES_CM=FALSE -DSWIFTSHADER_BUILD_VULKAN=TRUE -DSWIFTSHADER_BUILD_PVR=FALSE -DSWIFTSHADER_BUILD_TESTS=FALSE -DSWIFTSHADER_ENABLE_ASTC=FALSE -DSWIFTSHADER_WARNINGS_AS_ERRORS=FALSE -DREACTOR_BACKEND=Subzero -DREACTOR_DEFAULT_OPT_LEVEL=Default -DCMAKE_BUILD_TYPE=Release ..
|
|
cmake --build . -j $(nproc)
|
|
mkdir $GITHUB_WORKSPACE/swiftshader-install
|
|
cp Linux/* $GITHUB_WORKSPACE/swiftshader-install
|
|
|
|
- name: setup-python
|
|
uses: actions/setup-python@v7
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: install-deps
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pytest setuptools wheel twine importlib-metadata
|
|
|
|
- name: build
|
|
if: matrix.os == 'ubuntu-latest'
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake -DNCNN_VULKAN=ON -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
cmake --build . -j $(nproc)
|
|
- name: build
|
|
if: matrix.os == 'macos-15-intel'
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
|
|
-DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
|
|
-DNCNN_VULKAN=OFF -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
cmake --build . -j 4
|
|
- name: build
|
|
if: matrix.os == 'windows-latest'
|
|
run: |
|
|
mkdir build; cd build
|
|
cmake -T v142,host=x64 -A x64 -DNCNN_VULKAN=OFF -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
|
|
cmake --build . --config Release -j 4
|
|
- name: build-python
|
|
run: cd python && pip install .
|
|
- name: test
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: |
|
|
export VK_ICD_FILENAMES="$GITHUB_WORKSPACE/swiftshader-install/vk_swiftshader_icd.json"
|
|
cd python && pytest tests
|
|
- name: test
|
|
if: matrix.os != 'ubuntu-latest'
|
|
run: |
|
|
cd python && pytest tests
|