name: cuda12.1-whl-release on: push: tags: - '*' workflow_dispatch: permissions: contents: write jobs: linux-build: strategy: matrix: pyver: [py38, py39, py310, py311] runs-on: ubuntu-latest env: PYTHON_VERSION: ${{ matrix.pyver }} PLAT_NAME: manylinux2014_x86_64 DOCKER_TAG: cuda12.1 OUTPUT_FOLDER: cuda12.1_dist CUDA_VER: 12.1 steps: - name: Free disk space uses: jlumbroso/free-disk-space@main with: # This might remove tools that are actually needed, if set to "true" but frees about 6 GB tool-cache: false docker-images: false # All of these default to true, but feel free to set to "false" if necessary for your workflow android: true dotnet: true haskell: true large-packages: true swap-storage: false - name: Checkout repository uses: actions/checkout@v3 - name: Build run: | echo ${PYTHON_VERSION} echo ${PLAT_NAME} echo ${DOCKER_TAG} echo ${OUTPUT_FOLDER} # remove -it sed -i 's/docker run --rm -it/docker run --rm/g' builder/manywheel/build_wheel.sh bash builder/manywheel/build_wheel.sh ${PYTHON_VERSION} ${PLAT_NAME} ${DOCKER_TAG} ${OUTPUT_FOLDER} - name: Upload Artifacts uses: actions/upload-artifact@v3 with: if-no-files-found: error path: builder/manywheel/${{ env.OUTPUT_FOLDER }}/* retention-days: 1 windows-build: strategy: matrix: pyver: ['3.8', '3.9', '3.10', '3.11'] runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up python uses: actions/setup-python@v4 with: python-version: ${{ matrix.pyver }} - name: Install python packages run: | pip install pybind11 wheel - uses: Jimver/cuda-toolkit@v0.2.11 id: cuda-toolkit with: cuda: '12.1.0' use-github-cache: false - name: Build wheel run: | mkdir build cd build pip install -U setuptools ..\builder\windows\generate.ps1 cmake --build . --config Release -- /m > build.log.txt cmake --install . --config Release cd .. rm build -Force -Recurse python setup.py bdist_wheel -d build/wheel - name: Upload Artifacts uses: actions/upload-artifact@v3 with: if-no-files-found: error path: build/wheel/* retention-days: 1 publish: runs-on: ubuntu-latest environment: 'prod' needs: - linux-build - windows-build steps: - name: Download artifacts uses: actions/download-artifact@v3 - name: Display artifacts run: ls artifact/ -lh - name: Publish uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: artifact/*