build: Update release_binaries.yml (#180) #10
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: Build linux-amd64 binary (GPU) | |
on: | |
push: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.22' | |
- name: Add NVIDIA package repository | |
run: | | |
sudo apt-get install -y gnupg2 curl | |
sudo mkdir -p /usr/share/keyrings | |
curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-drivers.gpg | |
echo "deb [signed-by=/usr/share/keyrings/nvidia-drivers.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /" | sudo tee /etc/apt/sources.list.d/nvidia-drivers.list | |
- name: Update package lists | |
run: sudo apt-get update || true # Ignore errors from this command | |
- name: Install NVIDIA CUDA Toolkit | |
run: | | |
sudo apt-get install -y nvidia-cuda-toolkit | |
export PATH=/usr/local/cuda/bin:$PATH | |
- name: Build for linux/amd64 | |
env: | |
GOOS: linux | |
GOARCH: amd64 | |
CGO_ENABLED: 1 | |
CUDA_HOME: /usr/local/cuda | |
LD_LIBRARY_PATH: /usr/local/cuda/lib64:$LD_LIBRARY_PATH | |
run: | | |
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- start" | |
output_dir="build/${GOOS}-${GOARCH}" | |
output_name="lilypad-${GOOS}-${GOARCH}" | |
mkdir -p "${output_dir}" | |
# Debug: Print environment variables for the build | |
echo "Building for ${GOOS}/${GOARCH} with GOOS=$GOOS, GOARCH=$GOARCH" | |
echo "CUDA_HOME: $CUDA_HOME" | |
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH" | |
go build -o "${output_dir}/${output_name}" -v -tags cuda -ldflags="-X 'github.com/lilypad-tech/lilypad/cmd/lilypad.VERSION=$(git describe --tags --abbrev=0)' -X 'github.com/lilypad-tech/lilypad/cmd/lilypad.COMMIT_SHA=$(git rev-parse HEAD)'" | |
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- done" | |
- name: Upload binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-amd64-binary | |
path: build/linux-amd64/lilypad-linux-amd64 | |
- name: Verify Build Output | |
run: | | |
ls -la build/linux-amd64 | |
echo "Build complete" |