Skip to content

Commit

Permalink
build: Disable release pipeline
Browse files Browse the repository at this point in the history
We need to bootstrap first.
  • Loading branch information
bgins committed Sep 9, 2024
1 parent f705714 commit 86a5521
Showing 1 changed file with 177 additions and 177 deletions.
354 changes: 177 additions & 177 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,177 +1,177 @@
name: Release

on:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}

jobs:
release:
name: Create Release PR or Release
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- name: Get Release Bot Token
id: get-release-bot-token
uses: peter-murray/workflow-application-token-action@v1
with:
application_id: ${{ secrets.RELEASE_BOT_ID }}
application_private_key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}
organization: "Lilypad-Tech"

# Create release PR or release
# - PRs are created on user-facing changes (feat, fix, or any breaking changes).
# We merge these immediately in the merge job which pushes a release commit.
# - Releases are created when release-please finds an unpublished release commit
# from one of its PRs.
- name: Create Release PR or Release
id: release
uses: googleapis/release-please-action@v4
with:
token: ${{ steps.get-release-bot-token.outputs.token }}

outputs:
prs_created: ${{ steps.release.outputs.prs_created }}
releases_created: ${{ steps.release.outputs.releases_created }}
sha: ${{ steps.release.outputs.sha }}
tag_name: ${{ steps.release.outputs.tag_name }}

extend-notes:
if: needs.release.outputs.releases_created == 'true' && needs.release.outputs.prs_created == 'false'
name: Extend Release Notes
needs: release
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ needs.release.outputs.tag_name }}

- name: Get Release Bot Token
id: get-release-bot-token
uses: peter-murray/workflow-application-token-action@v1
with:
application_id: ${{ secrets.RELEASE_BOT_ID }}
application_private_key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}
organization: "Lilypad-Tech"

- name: Extend Release Notes
env:
GH_TOKEN: ${{ steps.get-release-bot-token.outputs.token }}
run: |
BODY=$(gh release view ${{ needs.release.outputs.tag_name }} --json body | jq -r '.body')
EXTENSION=$(cat .github/releases/release_notes.md)
# Build up notes from BODY and EXTENSION separated by two newlines
# https://trstringer.com/github-actions-multiline-strings/#option-2---environment-variable
NOTES=$(cat << EOF
$BODY
$EXTENSION
EOF
)
echo "NOTES<<EOF" >> $GITHUB_ENV
echo "$NOTES" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
gh release edit ${{ needs.release.outputs.tag_name }} --notes "$NOTES"
publish-binaries:
if: needs.release.outputs.releases_created == 'true' && needs.release.outputs.prs_created == 'false'
name: Build and Publish Binaries
needs: release
strategy:
matrix:
include:
- goos: linux
goarch: amd64
gpu: true
runner: ubuntu-latest
# - goos: linux
# goarch: arm64
# gpu: true
# runner: linux-arm64
- goos: darwin
goarch: amd64
gpu: false
runner: macos-13 # uses amd64
- goos: darwin
goarch: arm64
gpu: false
runner: macos-latest # uses M1
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ needs.release.outputs.tag_name }}

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: "1.22"

- name: Build for ${{ matrix.goos }}/${{ matrix.goarch }} CPU-only
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: 1
GH_TOKEN: ${{ github.token }}
run: |
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- start"
mkdir -p build
# Debug: Print environment variables for the build
echo "Building for ${GOOS}/${GOARCH} with GOOS=$GOOS, GOARCH=$GOARCH"
echo "Excluding CUDA. Use the 'cuda' build tag to include it."
go build -o "build/lilypad-${GOOS}-${GOARCH}-cpu" -v -ldflags="-X 'github.com/lilypad-tech/lilypad/pkg/system.Version=${{ needs.release.outputs.tag_name }}' -X 'github.com/lilypad-tech/lilypad/pkg/system.CommitSHA=${{ needs.release.outputs.sha }}'"
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- done"
# Upload binary to release
gh release upload ${{ needs.release.outputs.tag_name }} "build/lilypad-${GOOS}-${GOARCH}-cpu"
- name: Install NVIDIA CUDA Toolkit
if: ${{ matrix.gpu }}
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
sudo apt-get update || true # Ignore errors from this command
sudo apt-get install -y nvidia-cuda-toolkit
export PATH=/usr/local/cuda/bin:$PATH
- name: Build for ${{ matrix.goos }}/${{ matrix.goarch }} GPU
if: ${{ matrix.gpu }}
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: 1
CUDA_HOME: /usr/local/cuda
LD_LIBRARY_PATH: /usr/local/cuda/lib64:$LD_LIBRARY_PATH
GH_TOKEN: ${{ github.token }}
run: |
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- start"
mkdir -p build
# 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 "build/lilypad-${GOOS}-${GOARCH}-gpu" -v -tags cuda -ldflags="-X 'github.com/lilypad-tech/lilypad/pkg/system.Version=${{ needs.release.outputs.tag_name }}' -X 'github.com/lilypad-tech/lilypad/pkg/system.CommitSHA=${{ needs.release.outputs.sha }}'"
echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- done"
# Upload binary to release
gh release upload ${{ needs.release.outputs.tag_name }} "build/lilypad-${GOOS}-${GOARCH}-gpu"
# name: Release

# on:
# push:
# branches:
# - main

# concurrency:
# group: ${{ github.workflow }}-${{ github.ref }}

# jobs:
# release:
# name: Create Release PR or Release
# runs-on: ubuntu-latest
# permissions:
# pull-requests: write
# contents: write
# steps:
# - name: Get Release Bot Token
# id: get-release-bot-token
# uses: peter-murray/workflow-application-token-action@v1
# with:
# application_id: ${{ secrets.RELEASE_BOT_ID }}
# application_private_key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}
# organization: "Lilypad-Tech"

# # Create release PR or release
# # - PRs are created on user-facing changes (feat, fix, or any breaking changes).
# # We merge these immediately in the merge job which pushes a release commit.
# # - Releases are created when release-please finds an unpublished release commit
# # from one of its PRs.
# - name: Create Release PR or Release
# id: release
# uses: googleapis/release-please-action@v4
# with:
# token: ${{ steps.get-release-bot-token.outputs.token }}

# outputs:
# prs_created: ${{ steps.release.outputs.prs_created }}
# releases_created: ${{ steps.release.outputs.releases_created }}
# sha: ${{ steps.release.outputs.sha }}
# tag_name: ${{ steps.release.outputs.tag_name }}

# extend-notes:
# if: needs.release.outputs.releases_created == 'true' && needs.release.outputs.prs_created == 'false'
# name: Extend Release Notes
# needs: release
# runs-on: ubuntu-latest
# permissions:
# pull-requests: write
# contents: write
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# ref: ${{ needs.release.outputs.tag_name }}

# - name: Get Release Bot Token
# id: get-release-bot-token
# uses: peter-murray/workflow-application-token-action@v1
# with:
# application_id: ${{ secrets.RELEASE_BOT_ID }}
# application_private_key: ${{ secrets.RELEASE_BOT_PRIVATE_KEY }}
# organization: "Lilypad-Tech"

# - name: Extend Release Notes
# env:
# GH_TOKEN: ${{ steps.get-release-bot-token.outputs.token }}
# run: |
# BODY=$(gh release view ${{ needs.release.outputs.tag_name }} --json body | jq -r '.body')
# EXTENSION=$(cat .github/releases/release_notes.md)

# # Build up notes from BODY and EXTENSION separated by two newlines
# # https://trstringer.com/github-actions-multiline-strings/#option-2---environment-variable
# NOTES=$(cat << EOF
# $BODY

# $EXTENSION
# EOF
# )
# echo "NOTES<<EOF" >> $GITHUB_ENV
# echo "$NOTES" >> $GITHUB_ENV
# echo "EOF" >> $GITHUB_ENV

# gh release edit ${{ needs.release.outputs.tag_name }} --notes "$NOTES"

# publish-binaries:
# if: needs.release.outputs.releases_created == 'true' && needs.release.outputs.prs_created == 'false'
# name: Build and Publish Binaries
# needs: release
# strategy:
# matrix:
# include:
# - goos: linux
# goarch: amd64
# gpu: true
# runner: ubuntu-latest
# # - goos: linux
# # goarch: arm64
# # gpu: true
# # runner: linux-arm64
# - goos: darwin
# goarch: amd64
# gpu: false
# runner: macos-13 # uses amd64
# - goos: darwin
# goarch: arm64
# gpu: false
# runner: macos-latest # uses M1
# runs-on: ${{ matrix.runner }}
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# ref: ${{ needs.release.outputs.tag_name }}

# - name: Set up Go
# uses: actions/setup-go@v4
# with:
# go-version: "1.22"

# - name: Build for ${{ matrix.goos }}/${{ matrix.goarch }} CPU-only
# env:
# GOOS: ${{ matrix.goos }}
# GOARCH: ${{ matrix.goarch }}
# CGO_ENABLED: 1
# GH_TOKEN: ${{ github.token }}
# run: |
# echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- start"
# mkdir -p build

# # Debug: Print environment variables for the build
# echo "Building for ${GOOS}/${GOARCH} with GOOS=$GOOS, GOARCH=$GOARCH"
# echo "Excluding CUDA. Use the 'cuda' build tag to include it."

# go build -o "build/lilypad-${GOOS}-${GOARCH}-cpu" -v -ldflags="-X 'github.com/lilypad-tech/lilypad/pkg/system.Version=${{ needs.release.outputs.tag_name }}' -X 'github.com/lilypad-tech/lilypad/pkg/system.CommitSHA=${{ needs.release.outputs.sha }}'"

# echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- done"

# # Upload binary to release
# gh release upload ${{ needs.release.outputs.tag_name }} "build/lilypad-${GOOS}-${GOARCH}-cpu"

# - name: Install NVIDIA CUDA Toolkit
# if: ${{ matrix.gpu }}
# 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
# sudo apt-get update || true # Ignore errors from this command
# sudo apt-get install -y nvidia-cuda-toolkit
# export PATH=/usr/local/cuda/bin:$PATH

# - name: Build for ${{ matrix.goos }}/${{ matrix.goarch }} GPU
# if: ${{ matrix.gpu }}
# env:
# GOOS: ${{ matrix.goos }}
# GOARCH: ${{ matrix.goarch }}
# CGO_ENABLED: 1
# CUDA_HOME: /usr/local/cuda
# LD_LIBRARY_PATH: /usr/local/cuda/lib64:$LD_LIBRARY_PATH
# GH_TOKEN: ${{ github.token }}
# run: |
# echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- start"
# mkdir -p build

# # 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 "build/lilypad-${GOOS}-${GOARCH}-gpu" -v -tags cuda -ldflags="-X 'github.com/lilypad-tech/lilypad/pkg/system.Version=${{ needs.release.outputs.tag_name }}' -X 'github.com/lilypad-tech/lilypad/pkg/system.CommitSHA=${{ needs.release.outputs.sha }}'"

# echo "-------------- OS: ${GOOS} : Arch: ${GOARCH} ---------- done"

# # Upload binary to release
# gh release upload ${{ needs.release.outputs.tag_name }} "build/lilypad-${GOOS}-${GOARCH}-gpu"

0 comments on commit 86a5521

Please sign in to comment.