Skip to content

Commit 74bdbd7

Browse files
committed
validate arm64 installer in CI
1 parent f04594c commit 74bdbd7

2 files changed

Lines changed: 67 additions & 5 deletions

File tree

.github/workflows/arm64-smoke.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: ARM64 Smoke Test
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
paths:
7+
- ".github/workflows/**"
8+
- ".cargo/**"
9+
- "Cargo.toml"
10+
- "Cargo.lock"
11+
- "build.rs"
12+
- "install.sh"
13+
- "src/**"
14+
workflow_dispatch:
15+
16+
env:
17+
CARGO_TERM_COLOR: always
18+
19+
jobs:
20+
arm64-linux:
21+
name: Native ARM64 Linux Smoke Test
22+
runs-on: ubuntu-24.04-arm
23+
24+
steps:
25+
- uses: actions/checkout@v4
26+
27+
- name: Setup Rust toolchain
28+
uses: dtolnay/rust-toolchain@master
29+
with:
30+
toolchain: stable
31+
32+
- name: Set up cargo cache
33+
uses: Swatinem/rust-cache@v2
34+
with:
35+
key: ubuntu-24.04-arm-smoke
36+
37+
- name: Build ARM64 binary
38+
run: cargo build --release
39+
40+
- name: Package expected release asset
41+
run: |
42+
mkdir -p dist
43+
cp target/release/popcorn-cli dist/popcorn-cli
44+
chmod +x dist/popcorn-cli
45+
tar -czf popcorn-cli-linux-aarch64.tar.gz -C dist popcorn-cli
46+
47+
- name: Verify packaged binary runs
48+
run: |
49+
mkdir -p smoke
50+
tar -xzf popcorn-cli-linux-aarch64.tar.gz -C smoke
51+
./smoke/popcorn-cli --version
52+
53+
- name: Verify installer path on ARM64
54+
run: |
55+
mkdir -p ci-home
56+
HOME="$PWD/ci-home" \
57+
SHELL=/bin/bash \
58+
TEMP_DIR="$PWD/ci-tmp" \
59+
INSTALL_DIR="$PWD/ci-home/.local/bin" \
60+
DOWNLOAD_URL="file://$PWD/popcorn-cli-linux-aarch64.tar.gz" \
61+
bash ./install.sh
62+
"$PWD/ci-home/.local/bin/popcorn" --version

install.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ fi
5454

5555
echo "✅ Detected OS: $OS ($(uname -m))"
5656

57-
# Download URL
58-
DOWNLOAD_URL="https://github.com/gpu-mode/popcorn-cli/releases/latest/download/popcorn-cli-${OS}${EXTENSION}"
59-
TEMP_DIR="/tmp/popcorn-cli-install"
60-
INSTALL_DIR="$HOME/.local/bin"
57+
# Allow overrides so CI can validate the installer against a locally built asset.
58+
DOWNLOAD_URL="${DOWNLOAD_URL:-https://github.com/gpu-mode/popcorn-cli/releases/latest/download/popcorn-cli-${OS}${EXTENSION}}"
59+
TEMP_DIR="${TEMP_DIR:-/tmp/popcorn-cli-install}"
60+
INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/bin}"
6161

6262
# Create directories
6363
mkdir -p "$TEMP_DIR"
@@ -154,4 +154,4 @@ echo " - ✅ All modes available: test, benchmark, leaderboard, profile"
154154
echo " - ✅ Clean user identification"
155155
echo ""
156156
echo "💡 Need help? Run: popcorn-cli --help"
157-
echo "🔗 Example: popcorn-cli submit --gpu MI300 --leaderboard amd-fp8-mm --mode test example.py"
157+
echo "🔗 Example: popcorn-cli submit --gpu MI300 --leaderboard amd-fp8-mm --mode test example.py"

0 commit comments

Comments
 (0)