name: Release bdist wheel on: workflow_dispatch: inputs: torch_version: type: string description: torch version, separated by comma required: true default: "all" cuda_version: type: string description: cuda version, separated by comma required: true github_ref: type: string description: Branch or Tag default: 'main' required: true jobs: matrix_preparation: name: Prepare Container List runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - id: set-matrix env: TORCH_VERSIONS: ${{ inputs.torch_version }} CUDA_VERSIONS: ${{ inputs.cuda_version }} run: | echo $TORCH_VERSIONS echo $CUDA_VERSIONS IFS=',' DOCKER_IMAGE=() for cv in $CUDA_VERSIONS do DOCKER_IMAGE+=("\"hpcaitech/cuda-conda:${cv}\"") done container=$( IFS=',' ; echo "${DOCKER_IMAGE[*]}" ) container="[${container}]" echo "$container" echo "::set-output name=matrix::{\"container\":$(echo "$container")}" build: name: Release bdist wheels needs: matrix_preparation if: github.repository == 'hpcaitech/ColossalAI' && contains(fromJson('["FrankLeeeee", "ver217", "feifeibear", "kurisusnowdeng"]'), github.actor) runs-on: [self-hosted, gpu] strategy: fail-fast: false matrix: ${{fromJson(needs.matrix_preparation.outputs.matrix)}} container: image: ${{ matrix.container }} options: --gpus all --rm steps: - uses: actions/checkout@v2 with: fetch-depth: 0 # cub is for cuda 10.2 - name: Copy scripts and checkout run: | cp -r ./.github/workflows/scripts/* ./ ln -s /github/home/pip_wheels ./pip_wheels git checkout $git_ref wget https://github.com/NVIDIA/cub/archive/refs/tags/1.8.0.zip unzip 1.8.0.zip env: git_ref: ${{ github.event.inputs.github_ref }} - name: Build bdist wheel run: | pip install beautifulsoup4 requests packaging python ./build_colossalai_wheel.py --torch_version $TORCH_VERSIONS env: TORCH_VERSIONS: ${{ inputs.torch_version }} - name: 🚀 Deploy uses: garygrossgarten/github-action-scp@release with: local: all_dist remote: ${{ secrets.PRIVATE_PYPI_DIR }} host: ${{ secrets.PRIVATE_PYPI_HOST }} username: ${{ secrets.PRIVATE_PYPI_USER }} password: ${{ secrets.PRIVATE_PYPI_PASSWD }}