ncnn

Форк
0
/
python.yml 
124 строки · 4.1 Кб
1
name: python
2
on:
3
  push:
4
    branches: [master]
5
    paths:
6
    - '.github/workflows/python.yml'
7
    - 'CMakeLists.txt'
8
    - 'cmake/**'
9
    - 'src/*'
10
    - 'src/layer/*'
11
    - 'src/layer/x86/**'
12
    - 'src/layer/vulkan/**'
13
    - 'python/**'
14
  pull_request:
15
    branches: [master]
16
    paths:
17
    - '.github/workflows/python.yml'
18
    - 'CMakeLists.txt'
19
    - 'cmake/**'
20
    - 'src/*'
21
    - 'src/layer/*'
22
    - 'src/layer/x86/**'
23
    - 'src/layer/vulkan/**'
24
    - 'python/**'
25
concurrency:
26
  group: python-${{ github.ref }}
27
  cancel-in-progress: true
28
env:
29
  DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer
30
  MAC_DEPLOYMENT_TARGET: '11.0'
31
  ENABLE_BITCODE: OFF
32
  ENABLE_ARC: OFF
33
  ENABLE_VISIBILITY: OFF
34
  CMAKE_BUILD_PARALLEL_LEVEL: 4
35
  UseMultiToolTask: true
36
permissions:
37
  contents: read
38

39
jobs:
40
  build:
41
    strategy:
42
      matrix:
43
        os: [ubuntu-latest, macos-13, windows-latest]
44
        python-version: [3.9, 3.12]
45

46
    runs-on: ${{ matrix.os }}
47

48
    steps:
49
    - uses: actions/checkout@v4
50
      with:
51
        submodules: true
52

53
    - name: cache-swiftshader
54
      if: matrix.os == 'ubuntu-latest'
55
      id: cache-swiftshader
56
      uses: actions/cache@v4
57
      with:
58
        path: swiftshader-install
59
        key: swiftshader-linux-install-20240622
60
    - name: checkout-swiftshader
61
      if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
62
      uses: actions/checkout@v4
63
      with:
64
        repository: google/swiftshader
65
        path: swiftshader
66
        ref: de870ac7518fe2b6bb651ecc22fc36647cf7b986
67
    - name: checkout-swiftshader-submodules
68
      if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
69
      run: |
70
        cd swiftshader
71
        git -c submodule."third_party/git-hooks".update=none submodule update --init --recursive
72
    - name: swiftshader
73
      if: matrix.os == 'ubuntu-latest' && steps.cache-swiftshader.outputs.cache-hit != 'true'
74
      run: |
75
        cd swiftshader
76
        mkdir -p build; cd build
77
        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 ..
78
        cmake --build . -j $(nproc)
79
        mkdir $GITHUB_WORKSPACE/swiftshader-install
80
        cp Linux/* $GITHUB_WORKSPACE/swiftshader-install
81

82
    - name: setup-python
83
      uses: actions/setup-python@v5
84
      with:
85
        python-version: ${{ matrix.python-version }}
86
    - name: install-deps
87
      run: |
88
        python -m pip install --upgrade pip
89
        pip install pytest setuptools wheel twine importlib-metadata
90

91
    - name: build
92
      if: matrix.os == 'ubuntu-latest'
93
      env:
94
        CC: clang
95
        CXX: clang++
96
      run: |
97
        mkdir build && cd build
98
        cmake -DNCNN_VULKAN=ON -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
99
        cmake --build . -j $(nproc)
100
    - name: build
101
      if: matrix.os == 'macos-13'
102
      run: |
103
        mkdir build && cd build
104
        cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/ios.toolchain.cmake -DPLATFORM=MAC -DARCHS="x86_64" \
105
            -DDEPLOYMENT_TARGET=$MAC_DEPLOYMENT_TARGET -DENABLE_BITCODE=$ENABLE_BITCODE -DENABLE_ARC=$ENABLE_ARC -DENABLE_VISIBILITY=$ENABLE_VISIBILITY \
106
            -DNCNN_VULKAN=OFF -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
107
        cmake --build . -j 4
108
    - name: build
109
      if: matrix.os == 'windows-latest'
110
      run: |
111
        mkdir build; cd build
112
        cmake -T v142,host=x64 -A x64 -DNCNN_VULKAN=OFF -DNCNN_PYTHON=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF ..
113
        cmake --build . --config Release -j 4
114
    - name: build-python
115
      run: cd python && pip install .
116
    - name: test
117
      if: matrix.os == 'ubuntu-latest'
118
      run: |
119
        export VK_ICD_FILENAMES="$GITHUB_WORKSPACE/swiftshader-install/vk_swiftshader_icd.json"
120
        cd python && pytest tests
121
    - name: test
122
      if: matrix.os != 'ubuntu-latest'
123
      run: |
124
        cd python && pytest tests
125

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.