name: publish to pypi on: push: branches: - main paths: - "lmdeploy/version.py" workflow_dispatch: jobs: linux-build: strategy: matrix: pyver: [py310, py311, py312, py313, py314] runs-on: ubuntu-latest env: PYTHON_VERSION: ${{ matrix.pyver }} PLAT_NAME: manylinux_2_28_x86_64 DOCKER_TAG: manylinux_2_28-cuda12.8 OUTPUT_FOLDER: cuda12.8_dist steps: - name: Free disk space uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # 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@v4 with: if-no-files-found: error path: builder/manywheel/${{ env.OUTPUT_FOLDER }}/* retention-days: 1 name: linux-${{ matrix.pyver }} windows-build: strategy: matrix: pyver: ['3.10', '3.11', '3.12', '3.13', '3.14'] runs-on: windows-2022 steps: - name: Set git for windows run: | git config --global core.longpaths true - 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 build change-wheel-version - name: Setup CUDA Toolkit id: cuda-toolkit shell: pwsh run: ./builder/windows/setup_cuda.ps1 env: INPUT_CUDA_VERSION: '12.8.1' - name: Build wheel run: | python -m build --wheel -o build/wheel - name: Upload Artifacts uses: actions/upload-artifact@v4 with: if-no-files-found: error path: build/wheel/* retention-days: 1 name: windows-${{ matrix.pyver }} publish: runs-on: ubuntu-latest environment: 'prod' needs: - linux-build - windows-build steps: - name: Download artifacts uses: actions/download-artifact@v4 with: path: artifact merge-multiple: true - name: Display artifacts run: ls artifact/ -lh - name: Set up python 3.10 uses: actions/setup-python@v4 with: python-version: '3.10' - name: Upload to pypi run: | pip install twine twine upload artifact/* -u __token__ -p ${{ secrets.pypi_password }}