Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 179 additions & 0 deletions .github/workflows/release_packages_cuda_only.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
name: Release Packages
# docker download mirror should setup in self host machine.
# the mirror status can be found at : https://status.daocloud.io/status/docker
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
workflow_dispatch:

# Needed to create release and upload assets
permissions:
contents: write

jobs:
build-tgz:
strategy:
matrix:
arch: [X64]
image: ["dev-centos7-cu124:v1"]
enable_cuda: [1]

runs-on: [self-hosted, Linux, "${{ matrix.arch }}"]
container:
image: dashinfer/${{ matrix.image }}
env:
# force use node16 instead of node20
# otherwise it may cause GLIBCXX_2.27 not found
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
ENABLE_CUDA: ${{ matrix.enable_cuda }}
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out code
uses: actions/checkout@v3
with:
lfs: false

- name: Pull LFS
run: |
git lfs install --force
git lfs pull

- name: Init submodule
run: |
git submodule init
git submodule update

- name: Build tgz package
shell: bash
run: |
source /root/.bashrc
if [ -f "/miniconda/etc/profile.d/conda.sh" ]; then
source /miniconda/etc/profile.d/conda.sh
fi
source activate ds_py

git fetch --tags
TAG_NAME=$(git describe --tags $(git rev-list --tags --max-count=1))
VERSION_NUMBER=$(echo "$TAG_NAME" | sed 's/^v//')

export AS_RELEASE_VERSION=$VERSION_NUMBER
export AS_BUILD_PACKAGE=ON

echo "ENABLE_CUDA value: $ENABLE_CUDA"

# export ENABLE_MULTINUMA="ON"
if [[ "${{ matrix.arch }}" == "ARM64" ]]; then
export AS_PLATFORM="armclang"
bash build.sh
else
if [ "$ENABLE_CUDA" -eq "1" ];
then
export AS_PLATFORM="cuda"
export AS_CUDA_SM="'70;75;80;86;89;90a'"
bash scripts/release/cpp_build_cuda.sh
else
export AS_PLATFORM="x86"
bash build.sh
fi
fi

- name: Upload tgz package
uses: actions/upload-artifact@v4
with:
name: dashinfer-tgz-${{ matrix.arch }}-${{ matrix.enable_cuda }}
path: build/*.tar.gz


build-wheels:
strategy:
matrix:
arch: [X64]
image: ["dev-centos7-cu124:v1"]
enable_cuda: [1]
runs-on: [self-hosted, Linux, "${{ matrix.arch }}"]
container:
image: dashinfer/${{ matrix.image }}
env:
# force use node16 instead of node20
# otherwise it may cause GLIBCXX_2.27 not found
# ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
ENABLE_CUDA: ${{ matrix.enable_cuda }}
steps:
- name: Check out code
uses: actions/checkout@v3
with:
lfs: false

- name: Pull LFS
run: |
git lfs install --force
git lfs pull

- name: Init submodule
run: |
git submodule init
git submodule update

- name: Build manylinux wheels
shell: bash
run: |
source /root/.bashrc
if [ -f "/miniconda/etc/profile.d/conda.sh" ]; then
source /miniconda/etc/profile.d/conda.sh
fi

git fetch --tags
TAG_NAME=$(git describe --tags $(git rev-list --tags --max-count=1))
VERSION_NUMBER=$(echo "$TAG_NAME" | sed 's/^v//')

export AS_RELEASE_VERSION=$VERSION_NUMBER

echo "ENABLE_CUDA value: $ENABLE_CUDA"

if [[ "${{ matrix.arch }}" == "ARM64" ]]; then
bash scripts/release/python_manylinux_build.sh
else
if [ "$ENABLE_CUDA" -eq "1" ];
then
export AS_PLATFORM="cuda"
export AS_CUDA_SM="'70;75;80;86;89;90a'"
bash scripts/release/python_manylinux_build_cuda.sh
else
bash scripts/release/python_manylinux_build.sh
fi
fi

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: python-manylinux-wheels-${{ matrix.arch }}-${{ matrix.enable_cuda }}
path: python/wheelhouse/*-manylinux*.whl

publish:
runs-on: [self-hosted, Linux]
needs: [build-tgz, build-wheels]
strategy:
matrix:
arch: [X64]
enable_cuda: [1]

steps:
- name: Download tgz packages
uses: actions/download-artifact@v4
with:
name: dashinfer-tgz-${{ matrix.arch }}-${{ matrix.enable_cuda }}
path: release/

- name: Download python wheels
uses: actions/download-artifact@v4
with:
name: python-manylinux-wheels-${{ matrix.arch }}-${{ matrix.enable_cuda }}
path: release/

- name: Release all packages
uses: softprops/action-gh-release@v1
with:
files: release/*