name: build on: push: branches: - main - feature/* tags: - '*' jobs: build-windows: runs-on: windows-latest strategy: matrix: python-version: ['3.6', '3.7', '3.8', '3.9', '3.10'] cuda-version: ['10.2', '11.1', '11.4'] steps: - uses: actions/checkout@master - 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 != '') ) || (env.CUDA_VERSION == '11.1' && 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')) ) || (env.CUDA_VERSION == '11.1' && 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 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.8'] # this version is only used for upload. cuda-version: ['102', '111', '114'] steps: - uses: actions/checkout@master - 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 PLAT: manylinux2014_x86_64 if: (github.event_name == 'push' && (startsWith(github.ref, 'refs/tags')) && (env.CUDA_VERSION != '') ) || env.CUDA_VERSION == '114' run: | docker run --rm -e PLAT=$PLAT -e CUMM_CUDA_VERSION=${{ matrix.cuda-version }} -v `pwd`:/io $DOCKER_IMAGE bash -c "/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 }}