Skip to content

Release Binaries

Release Binaries #14

name: Release Binaries
on:
workflow_dispatch:
push:
tags:
- 'v*.*.*'
jobs:
build:
name: Build and Upload Release Assets
runs-on: ubuntu-latest
container: golang:1.24.2-bullseye
strategy:
matrix:
goosarch:
- "linux/amd64"
- "linux/arm64"
- "windows/amd64"
- "darwin/amd64"
- "darwin/arm64"
env:
GO111MODULE: on
CGO_ENABLED: 0
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build ${{ matrix.goosarch }} binary
run: |
apt update
apt -y install zip
export GOOSARCH=${{ matrix.goosarch }}
export GOOS=${GOOSARCH%/*}
export GOARCH=${GOOSARCH#*/}
git config --global --add safe.directory /__w/cql-proxy/cql-proxy
mkdir -p artifacts
if [ "$GOOS" = "windows" ]; then
go build -o cql-proxy.exe
zip -vr cql-proxy-${GOOS}-${GOARCH}-0.2.0.zip cql-proxy.exe LICENSE
sha256sum cql-proxy-${GOOS}-${GOARCH}-0.2.0.zip | cut -d ' ' -f 1 > cql-proxy-${GOOS}-${GOARCH}-0.2.0-sha256.txt
else
go build -o cql-proxy
tar cvfz cql-proxy-${GOOS}-${GOARCH}-0.2.0.tgz cql-proxy LICENSE
sha256sum cql-proxy-${GOOS}-${GOARCH}-0.2.0.tgz | cut -d ' ' -f 1 > cql-proxy-${GOOS}-${GOARCH}-0.2.0-sha256.txt
fi
mv cql-proxy-* artifacts
- name: Store generated binaries
uses: actions/upload-artifact@v4
with:
name: cql-proxy-0.2.0-${{ github.run_number }}-${{ strategy.job-index }}
path: artifacts/*