@@ -2,8 +2,9 @@ name: release
22
33on :
44 push :
5- tags :
6- - " v*.*.*"
5+ branches : [master]
6+ paths :
7+ - " Cargo.toml"
78
89permissions :
910 contents : write
@@ -20,18 +21,24 @@ jobs:
2021 if : github.repository == 'EricLBuehler/candle-vllm'
2122 outputs :
2223 version : ${{ steps.version.outputs.version }}
24+ changed : ${{ steps.version.outputs.changed }}
2325 steps :
2426 - uses : actions/checkout@v4
25- - name : Validate tag matches Cargo.toml version
27+ with :
28+ fetch-depth : 2
29+ - name : Detect version change in Cargo.toml
2630 id : version
2731 run : |
2832 cargo_version="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n 1)"
29- expected_tag="v${cargo_version}"
30- if [ "${{ github.ref_name }}" != "$expected_tag" ]; then
31- echo "Tag ${{ github.ref_name }} must match Cargo.toml version $expected_tag" >&2
32- exit 1
33- fi
33+ prev_version="$(git show HEAD~1:Cargo.toml 2>/dev/null | sed -n 's/^version = "\(.*\)"/\1/p' | head -n 1)" || prev_version=""
3434 echo "version=${cargo_version}" >> "$GITHUB_OUTPUT"
35+ if [ "$cargo_version" != "$prev_version" ] && [ -n "$prev_version" ]; then
36+ echo "Version changed: ${prev_version} -> ${cargo_version}"
37+ echo "changed=true" >> "$GITHUB_OUTPUT"
38+ else
39+ echo "Version unchanged (${cargo_version}), skipping release."
40+ echo "changed=false" >> "$GITHUB_OUTPUT"
41+ fi
3542
3643 # ---------------------------------------------------------------------------
3744 # CUDA legacy builds: SM70/SM75 on GitHub free runners (no flashinfer/cutlass)
4148 name : cuda-${{ matrix.sm_name }}
4249 runs-on : ubuntu-latest
4350 needs : validate
51+ if : needs.validate.outputs.changed == 'true'
4452 strategy :
4553 fail-fast : false
4654 matrix :
@@ -133,6 +141,7 @@ jobs:
133141 name : cuda-${{ matrix.sm_name }}
134142 runs-on : ubuntu-latest
135143 needs : validate
144+ if : needs.validate.outputs.changed == 'true'
136145 strategy :
137146 fail-fast : false
138147 max-parallel : 1
@@ -150,6 +159,10 @@ jobs:
150159 sm_name : sm90
151160 cuda_version : " 13.0.0"
152161 features : " cuda,nccl,flashinfer,cutlass"
162+ - sm : " 100"
163+ sm_name : sm100
164+ cuda_version : " 13.0.0"
165+ features : " cuda,nccl,flashinfer,cutlass"
153166 - sm : " 120"
154167 sm_name : sm120
155168 cuda_version : " 13.0.0"
@@ -233,6 +246,7 @@ jobs:
233246 name : metal-darwin-arm64
234247 runs-on : macos-latest
235248 needs : validate
249+ if : needs.validate.outputs.changed == 'true'
236250 steps :
237251 - uses : actions/checkout@v4
238252 - uses : dtolnay/rust-toolchain@stable
@@ -262,6 +276,7 @@ jobs:
262276 name : checksums
263277 runs-on : ubuntu-latest
264278 needs : [validate, cuda-legacy, cuda, metal]
279+ if : needs.validate.outputs.changed == 'true'
265280 steps :
266281 - uses : actions/download-artifact@v4
267282 with :
@@ -280,10 +295,10 @@ jobs:
280295 name : candle-vllm-release-artifacts
281296 path : dist/*
282297
283- - name : Upload artifacts to release
298+ - name : Create tag and upload artifacts to release
284299 uses : softprops/action-gh-release@v2
285300 with :
286- tag_name : ${{ github.ref_name }}
301+ tag_name : v ${{ needs.validate.outputs.version }}
287302 name : candle-vllm v${{ needs.validate.outputs.version }}
288303 generate_release_notes : true
289304 files : |
@@ -298,13 +313,17 @@ jobs:
298313 name : publish-pages
299314 runs-on : ubuntu-latest
300315 needs : [validate, checksums]
316+ if : needs.validate.outputs.changed == 'true'
301317 permissions :
302318 contents : read
303319 pages : write
304320 id-token : write
305321 environment :
306322 name : github-pages
307323 url : ${{ steps.deploy.outputs.page_url }}
324+ concurrency :
325+ group : pages
326+ cancel-in-progress : false
308327 steps :
309328 - uses : actions/checkout@v4
310329 with :
@@ -314,7 +333,6 @@ jobs:
314333 env :
315334 VERSION : ${{ needs.validate.outputs.version }}
316335 REPO : ${{ github.repository }}
317- TAG : ${{ github.ref_name }}
318336 run : |
319337 mkdir -p site
320338 OWNER="$(echo "${REPO}" | cut -d/ -f1)"
@@ -340,7 +358,7 @@ jobs:
340358 fi
341359 if ! command -v nvidia-smi &>/dev/null; then
342360 echo "ERROR: No NVIDIA GPU detected and no platform specified." >&2
343- echo " Set CANDLE_VLLM_PLATFORM=sm80 (or sm70/sm75/sm89/sm90/sm120) and re-run." >&2
361+ echo " Set CANDLE_VLLM_PLATFORM=sm80 (or sm70/sm75/sm89/sm90/sm100/ sm120/sm121 ) and re-run." >&2
344362 exit 1
345363 fi
346364 local cc
@@ -351,8 +369,9 @@ jobs:
351369 80|86|87) echo "sm80" ;;
352370 89) echo "sm89" ;;
353371 90|90a) echo "sm90" ;;
354- 100|110) echo "sm90" ;;
355- 120) echo "sm120" ;;
372+ 100|100a) echo "sm100" ;;
373+ 120|120a) echo "sm120" ;;
374+ 121|121a) echo "sm121" ;;
356375 *) echo "sm80" ;;
357376 esac
358377 }
@@ -388,7 +407,9 @@ jobs:
388407
389408 install_deb() {
390409 local variant="$1"
391- local deb="candle-vllm-linux-x64-${variant}.deb"
410+ local cpu_arch="x64"
411+ if [ "$variant" = "sm121" ]; then cpu_arch="arm64"; fi
412+ local deb="candle-vllm-linux-${cpu_arch}-${variant}.deb"
392413 local url="${RELEASE_BASE}/${deb}"
393414 local tmp
394415 tmp="$(mktemp -d)"
@@ -446,8 +467,11 @@ jobs:
446467 echo "Installing candle-vllm (Metal/macOS)..."
447468 install_tarball "$TARBALL"
448469 else
449- DEB="candle-vllm-linux-x64-${PLATFORM}.deb"
450- TARBALL="candle-vllm-${VERSION}-linux-x64-${PLATFORM}.tar.gz"
470+ if [ "$PLATFORM" = "sm121" ]; then
471+ TARBALL="candle-vllm-${VERSION}-linux-arm64-sm121.tar.gz"
472+ else
473+ TARBALL="candle-vllm-${VERSION}-linux-x64-${PLATFORM}.tar.gz"
474+ fi
451475 echo "Install options:"
452476 echo " 1) deb package — installs 'candle-vllm' system-wide (Linux)"
453477 echo " 2) binary — installs 'candle-vllm' to /usr/local/bin"
@@ -472,9 +496,10 @@ jobs:
472496 fi
473497 SCRIPT
474498
499+ OWNER_LC="$(echo "${OWNER}" | tr '[:upper:]' '[:lower:]')"
475500 sed -i "s|__VERSION__|${VERSION}|g" site/install.sh
476501 sed -i "s|__REPO__|${REPO}|g" site/install.sh
477- sed -i "s|__OWNER__|${OWNER }|g" site/install.sh
502+ sed -i "s|__OWNER__|${OWNER_LC }|g" site/install.sh
478503 sed -i 's/^ //' site/install.sh
479504 chmod +x site/install.sh
480505
0 commit comments