name: build on: push: branches: - main - develop - master - feature/* tags: - '*' jobs: build-windows: runs-on: windows-2019 strategy: matrix: python-version: ['3.7', '3.8', '3.9', '3.10'] cuda-version: ['11.1', '11.4'] steps: - uses: actions/checkout@master - uses: dorny/paths-filter@v2 id: changes with: filters: | nobuild: - 'README.md' - 'docs/**' - 'example/**' - 'spconv/pytorch/**' - name: Install CUDA env: CUDA_VERSION: ${{ matrix.cuda-version }} PYTHON_VERSION: ${{ matrix.python-version }} cuda: ${{ matrix.cuda-version }} if: (github.event_name == 'push' && (startsWith(github.ref, 'refs/tags')) && (env.CUDA_VERSION != '') ) || ((steps.changes.outputs.nobuild == 'false') && env.PYTHON_VERSION == '3.10') shell: powershell run: .\tools\install_windows_cuda.ps1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - uses: ilammy/msvc-dev-cmd@v1 - name: Install pep build run: | python -m pip install build --user python -m pip install --upgrade pip twine wheel python -m pip install pytest setuptools - name: Build a windows binary wheel env: CUDA_VERSION: ${{ matrix.cuda-version }} PYTHON_VERSION: ${{ matrix.python-version }} if: (github.event_name == 'push' && (startsWith(github.ref, 'refs/tags'))) || ((steps.changes.outputs.nobuild == 'false') && env.PYTHON_VERSION == '3.10') run: | $Env:CUMM_CUDA_VERSION = "${{ matrix.cuda-version }}" $Env:CUMM_CUDA_ARCH_LIST = "all" $Env:SPCONV_DISABLE_JIT = "1" pip install pccm pybind11 # ls "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v${{ matrix.cuda-version }}\include\thrust" python -m build --wheel --outdir dist/ . shell: powershell - name: Publish a Python distribution to PyPI if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags')) run: | $Env:TWINE_USERNAME = "__token__" $Env:TWINE_PASSWORD = "${{ secrets.pypi_password }}" twine upload dist/* shell: powershell build: # needs: build-windows runs-on: ubuntu-20.04 strategy: matrix: python-version: ['3.7', '3.8', '3.9', '3.10'] # this version is only used for upload. cuda-version: ['111', '114'] steps: - uses: actions/checkout@master - uses: dorny/paths-filter@v2 id: changes with: filters: | nobuild: - 'README.md' - 'docs/**' - 'example/**' - 'spconv/pytorch/**' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install pep build run: | python -m pip install build --user python -m pip install --upgrade pip twine wheel python -m pip install pytest setuptools - name: Build a cuda wheel env: CUDA_VERSION: ${{ matrix.cuda-version }} PYTHON_VERSION: ${{ matrix.python-version }} DOCKER_IMAGE: scrin/manylinux2014-cuda:cu${{ matrix.cuda-version }}-devel-1.0.0 PLAT: manylinux2014_x86_64 if: (github.event_name == 'push' && (startsWith(github.ref, 'refs/tags')) && (env.CUDA_VERSION != '') ) || ((steps.changes.outputs.nobuild == 'false') && (env.PYTHON_VERSION == '3.10')) run: | chmod +x tools/build-wheels.sh docker run --rm -e PLAT=$PLAT -e CUMM_CUDA_VERSION=${{ matrix.cuda-version }} -e SPCONV_PYTHON_LIST=${{env.PYTHON_VERSION}} -v `pwd`:/io $DOCKER_IMAGE bash -c "source /etc/bashrc && /io/tools/build-wheels.sh" - name: Publish a Python distribution to PyPI if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@master with: user: __token__ password: ${{ secrets.pypi_password }}