-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat support cuda worker & github action workflow --------- Co-authored-by: hunjixin <[email protected]> Co-authored-by: Richard Bremner <[email protected]>
- Loading branch information
1 parent
34182bb
commit e09ca12
Showing
19 changed files
with
56,682 additions
and
199 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
name: Build darwin-amd64 binary (no gpu) | ||
|
||
on: | ||
push: | ||
branches: | ||
- feat/cuda_binary | ||
|
||
jobs: | ||
build: | ||
runs-on: macos-13 #uses amd64 | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '1.22' | ||
|
||
- name: Check architecture | ||
run: uname -m | ||
|
||
- name: Build for darwin/amd64 | ||
env: | ||
GOOS: darwin | ||
GOARCH: amd64 | ||
CGO_ENABLED: 1 | ||
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 "excluding CUDA. specify 'cuda' build tag to include it." | ||
go build -o "${output_dir}/${output_name}" -v -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: darwin-amd64-binary | ||
path: build/darwin-amd64/lilypad-darwin-amd64 | ||
|
||
- name: Verify Build Output | ||
run: | | ||
ls -la build/darwin-amd64 | ||
echo "Build complete" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
name: Build darwin-arm64 binary (no gpu) | ||
|
||
on: | ||
push: | ||
branches: | ||
- feat/cuda_binary | ||
|
||
jobs: | ||
build: | ||
runs-on: macos-latest #uses M1 | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: '1.22' | ||
|
||
- name: Check architecture | ||
run: uname -m | ||
|
||
- name: Build for darwin/arm64 | ||
env: | ||
GOOS: darwin | ||
GOARCH: arm64 | ||
CGO_ENABLED: 1 | ||
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 "excluding CUDA. specify 'cuda' build tag to include it." | ||
go build -o "${output_dir}/${output_name}" -v -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: darwin-arm64-binary | ||
path: build/darwin-arm64/lilypad-darwin-arm64 | ||
|
||
- name: Verify Build Output | ||
run: | | ||
ls -la build/darwin-arm64 | ||
echo "Build complete" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: Build linux-amd64 binary (GPU) | ||
|
||
on: | ||
push: | ||
branches: | ||
- feat/cuda_binary | ||
|
||
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" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
name: Build linux-arm64 binary (GPU) | ||
|
||
on: | ||
push: | ||
branches: | ||
- feat/cuda_binary | ||
|
||
jobs: | ||
|
||
build: | ||
runs-on: linux-arm64 | ||
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/arm64 | ||
env: | ||
GOOS: linux | ||
GOARCH: arm64 | ||
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-arm64-binary | ||
path: build/linux-arm64/lilypad-linux-arm64 | ||
|
||
- name: Verify Build Output | ||
run: | | ||
ls -la build/linux-arm64 | ||
echo "Build complete" |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
name: Release binaries | ||
|
||
on: | ||
workflow_run: | ||
workflows: | ||
- linux_amd64.yml | ||
- linux_arm64.yml | ||
- darwin_amd64.yml | ||
- darwin_arm64.yml | ||
types: | ||
- completed | ||
|
||
jobs: | ||
release: | ||
if: github.ref == 'refs/heads/main' # Only run this job on the main branch | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Set up Git | ||
run: | | ||
git fetch --tags | ||
SHORTSHA=$(git rev-parse --short HEAD) | ||
echo "SHORTSHA=${SHORTSHA}" >> $GITHUB_ENV | ||
- name: Download linux-amd64 binary | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: linux-amd64-binary | ||
path: /tmp/build/lilypad-linux-amd64 | ||
|
||
- name: Download linux-arm64 binary | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: linux-arm64-binary | ||
path: /tmp/build/lilypad-linux-arm64 | ||
|
||
- name: Download darwin-amd64 binary | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: darwin-amd64-binary | ||
path: /tmp/build/lilypad-darwin-amd64 | ||
|
||
- name: Download darwin-arm64 binary | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: darwin-arm64-binary | ||
path: /tmp/build/lilypad-darwin-arm64 | ||
|
||
- name: Create Release | ||
id: create_release | ||
uses: actions/create-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
tag_name: v2.0.0-${{ env.SHORTSHA }} | ||
release_name: "Release v2.0.0-${{ env.SHORTSHA }}" | ||
body: "Release v2.0.0-${{ env.SHORTSHA }}" | ||
draft: false | ||
prerelease: false | ||
|
||
|
||
- name: Upload Release Asset - linux-amd64 | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
asset_path: /tmp/build/lilypad-linux-amd64 | ||
asset_name: lilypad-linux-amd64 | ||
asset_content_type: application/octet-stream | ||
|
||
- name: Upload Release Asset - linux-arm64 | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
asset_path: /tmp/build/lilypad-linux-arm64 | ||
asset_name: lilypad-linux-arm64 | ||
asset_content_type: application/octet-stream | ||
|
||
- name: Upload Release Asset - darwin-arm64 | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
asset_path: /tmp/build/lilypad-darwin-arm64 | ||
asset_name: lilypad-darwin-arm64 | ||
asset_content_type: application/octet-stream | ||
|
||
- name: Upload Release Asset - darwin-amd64 | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ steps.create_release.outputs.upload_url }} | ||
asset_path: /tmp/build/lilypad-darwin-amd64 | ||
asset_name: lilypad-darwin-amd64 | ||
asset_content_type: application/octet-stream |
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
Oops, something went wrong.