Repository navigation
[EP]: Add NUMA-aware NIC selection tie-breaker (#848) #27
This file contains hidden or 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: UCCL Build & Test (L4) | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| types: [labeled, synchronize, reopened] | |
| concurrency: | |
| group: l4-uccl-build | |
| cancel-in-progress: false | |
| jobs: | |
| build-on-l4: | |
| if: > | |
| github.event_name == 'push' || | |
| (github.event_name == 'pull_request' && | |
| contains(github.event.pull_request.labels.*.name, 'run-benchmark')) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout (for artifacts/consistency) | |
| uses: actions/checkout@v4 | |
| - name: Setup SSH for l4-sky-test-01 | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| mkdir -p ~/.ssh | |
| echo "${{ secrets.L4_SSH_KEY }}" > ~/.ssh/l4_key | |
| chmod 600 ~/.ssh/l4_key | |
| cat >> ~/.ssh/config <<EOF | |
| Host l4-sky-test-01 | |
| HostName "${{ secrets.UCCL_DEV_L4_HOST0 }}" | |
| User skytestuser | |
| IdentityFile ~/.ssh/l4_key | |
| IdentitiesOnly yes | |
| EOF | |
| ssh-keyscan -H "${{ secrets.UCCL_DEV_L4_HOST0 }}" >> ~/.ssh/known_hosts | |
| - name: Sync PR code to remote | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| git submodule update --init --recursive thirdparty/nccl | |
| rsync -az --delete \ | |
| -e "ssh -o BatchMode=yes" \ | |
| ./ep ./collective/rdma ./p2p \ | |
| ./ l4-sky-test-01:/home/skytestuser/uccl-test/ | |
| - name: Build & verify UCCL on remote | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| ssh -o BatchMode=yes l4-sky-test-01 'bash -lc " | |
| set -euo pipefail | |
| # Explicitly load the right conda init | |
| source \$HOME/miniconda3/etc/profile.d/conda.sh | |
| if ! command -v conda >/dev/null 2>&1; then | |
| echo \"conda not found even after sourcing\" >&2 | |
| exit 1 | |
| fi | |
| # Create env if missing | |
| conda info --envs | awk \x27{print \$1}\x27 | grep -qx uccl || conda create -y -n uccl python=3.12 | |
| conda activate uccl | |
| cd /home/skytestuser/uccl-test | |
| TORCH_CUDA_ARCH_LIST="9.0" ./build.sh cu12 all 3.12 --install 2>&1 | tee build.log | |
| grep -q \"Successfully installed uccl-\" build.log | |
| "' | |
| - name: Fetch remote build.log | |
| if: always() | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| scp -o BatchMode=yes l4-sky-test-01:/home/skytestuser/uccl-test/build.log ./build.log || true | |
| - name: Upload build.log artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-log-l4 | |
| path: build.log |