update workflow: use download-artifact@v4 (#66) #59
Workflow file for this run
This file contains 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: Release Packages | |
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, ARM64] | |
image: ["dev-centos7-cu124:v1", "dev-centos8-arm:v2"] | |
enable_cuda: [0, 1] | |
exclude: | |
- arch: X64 | |
image: "dev-centos8-arm:v2" | |
- arch: ARM64 | |
image: "dev-centos7-cu124:v1" | |
- arch: ARM64 | |
enable_cuda: 1 | |
runs-on: [self-hosted, Linux, "${{ matrix.arch }}"] | |
container: | |
image: registry-1.docker.io/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, ARM64] | |
image: ["dev-centos7-cu124:v1", "dev-centos8-arm:v2"] | |
enable_cuda: [0, 1] | |
exclude: | |
- arch: X64 | |
image: "dev-centos8-arm:v2" | |
- arch: ARM64 | |
image: "dev-centos7-cu124:v1" | |
- arch: ARM64 | |
enable_cuda: 1 | |
runs-on: [self-hosted, Linux, "${{ matrix.arch }}"] | |
container: | |
image: registry-1.docker.io/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, ARM64] | |
enable_cuda: [0, 1] | |
exclude: | |
- arch: ARM64 | |
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/* |