Skip to content

Init

Init #1

Workflow file for this run

name: Go Cross-Platform Build
on:
push:
branches: [ "main" ]
pull_request:
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.24.3'
- name: Build for multiple platforms
run: |
platforms=("linux/amd64" "linux/arm64" "windows/amd64" "windows/arm64" "darwin/amd64" "darwin/arm64")
for platform in "${platforms[@]}"
do
IFS="/" read -r GOOS GOARCH <<< "$platform"
output_name="pingmc-${GOOS}-${GOARCH}"
[ "$GOOS" = "windows" ] && output_name+=".exe"
env GOOS=$GOOS GOARCH=$GOARCH go build -o "$output_name"
done
- name: Upload Linux amd64
uses: actions/upload-artifact@v4
with:
name: pingmc-linux-amd64
path: pingmc-linux-amd64
- name: Upload Linux arm64
uses: actions/upload-artifact@v4
with:
name: pingmc-linux-arm64
path: pingmc-linux-arm64
- name: Upload Windows amd64
uses: actions/upload-artifact@v4
with:
name: pingmc-windows-amd64
path: pingmc-windows-amd64.exe
- name: Upload Windows arm64
uses: actions/upload-artifact@v4
with:
name: pingmc-windows-arm64
path: pingmc-windows-arm64.exe
- name: Upload macOS amd64
uses: actions/upload-artifact@v4
with:
name: pingmc-darwin-amd64
path: pingmc-darwin-amd64
- name: Upload macOS arm64
uses: actions/upload-artifact@v4
with:
name: pingmc-darwin-arm64
path: pingmc-darwin-arm64