Building Wheels #104
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Building Wheels | |
| on: [workflow_dispatch] | |
| jobs: | |
| wheel: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, macos-14, windows-2019, ubuntu-22.04-arm] | |
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] | |
| torch-version: [2.7.0] # [2.6.0] | |
| cuda-version: ['cpu', 'cu118', 'cu124', 'cu126', 'cu128'] | |
| exclude: | |
| - torch-version: 2.6.0 | |
| cuda-version: 'cu128' | |
| - torch-version: 2.7.0 | |
| cuda-version: 'cu124' | |
| - os: macos-14 | |
| cuda-version: 'cu118' | |
| - os: macos-14 | |
| cuda-version: 'cu124' | |
| - os: macos-14 | |
| cuda-version: 'cu126' | |
| - os: macos-14 | |
| cuda-version: 'cu128' | |
| - os: ubuntu-22.04-arm | |
| cuda-version: 'cu118' | |
| - os: ubuntu-22.04-arm | |
| cuda-version: 'cu124' | |
| - os: ubuntu-22.04-arm | |
| cuda-version: 'cu126' | |
| - os: ubuntu-22.04-arm | |
| cuda-version: 'cu128' | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Upgrade pip | |
| run: | | |
| pip install --upgrade setuptools | |
| - name: Free Disk Space (Ubuntu) | |
| if: ${{ runner.os == 'Linux' }} | |
| uses: jlumbroso/free-disk-space@main | |
| - name: Install CUDA ${{ matrix.cuda-version }} | |
| if: ${{ matrix.cuda-version != 'cpu' }} | |
| run: | | |
| bash .github/workflows/cuda/${{ matrix.cuda-version }}-${{ runner.os }}.sh | |
| - name: Install PyTorch ${{ matrix.torch-version }}+${{ matrix.cuda-version }} | |
| run: | | |
| pip install torch==${{ matrix.torch-version }} --extra-index-url https://download.pytorch.org/whl/${{ matrix.cuda-version }} | |
| python -c "import torch; print('PyTorch:', torch.__version__)" | |
| python -c "import torch; print('CUDA:', torch.version.cuda)" | |
| - name: Patch PyTorch static constexpr on Windows | |
| if: ${{ runner.os == 'Windows' }} | |
| run: | | |
| Torch_DIR=`python -c 'import os; import torch; print(os.path.dirname(torch.__file__))'` | |
| sed -i '31,38c\ | |
| TORCH_API void lazy_init_num_threads();' ${Torch_DIR}/include/ATen/Parallel.h | |
| shell: bash | |
| - name: Set version | |
| if: ${{ runner.os != 'macOS' }} | |
| run: | | |
| VERSION=`sed -n "s/^__version__ = '\(.*\)'/\1/p" torch_scatter/__init__.py` | |
| TORCH_VERSION=`echo "pt${{ matrix.torch-version }}" | sed "s/..$//" | sed "s/\.//g"` | |
| CUDA_VERSION=`echo ${{ matrix.cuda-version }}` | |
| echo "New version name: $VERSION+$TORCH_VERSION$CUDA_VERSION" | |
| sed -i "s/$VERSION/$VERSION+$TORCH_VERSION$CUDA_VERSION/" setup.py | |
| sed -i "s/$VERSION/$VERSION+$TORCH_VERSION$CUDA_VERSION/" torch_scatter/__init__.py | |
| shell: | |
| bash | |
| - name: Install main package for CPU | |
| if: ${{ matrix.cuda-version == 'cpu' }} | |
| run: | | |
| FORCE_ONLY_CPU=1 pip install -v -e . --no-build-isolation | |
| shell: | |
| bash | |
| - name: Install main package for GPU | |
| if: ${{ matrix.cuda-version != 'cpu' }} | |
| run: | | |
| source .github/workflows/cuda/${{ matrix.cuda-version }}-${{ runner.os }}-env.sh | |
| FORCE_CUDA=1 pip install -v -e . --no-build-isolation | |
| shell: | |
| bash | |
| - name: Test installation | |
| run: | | |
| python -c "import torch_scatter; print('torch-scatter:', torch_scatter.__version__)" | |
| - name: Build wheel | |
| run: | | |
| pip install wheel | |
| python setup.py bdist_wheel --dist-dir=dist | |
| - name: Configure AWS | |
| uses: aws-actions/configure-aws-credentials@v1 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: us-west-1 | |
| - name: Upload wheel | |
| run: | | |
| aws s3 sync dist s3://data.pyg.org/whl/torch-${{ matrix.torch-version }}+${{ matrix.cuda-version }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers |